API Gateway REST API と Lambda 統合を使用したマイクロサービスで、一部のリクエストが 504 Gateway Timeout エラーを返しています。Lambda の CloudWatch ログを確認すると、該当リクエストの REPORT 行に Duration: 29100ms のような値が記録されており、関数自体は正常に完了しています。この 504 エラーの根本原因として最も可能性が高いのはどれですか?
正解: API Gateway REST API のバックエンド統合タイムアウトは最大 29 秒であり、それを超えた応答に対して 504 が返される。 API Gateway REST API のバックエンド統合タイムアウトは最大 29 秒です。Lambda 関数自体は最大 15 分実行できますが、API Gateway 経由の場合は 29 秒を超えると API Gateway が先に 504 エラーを返します。Lambda の REPORT が 29 秒超を示していることがこれを裏付けます。対策は処理を非同期化(SQS + Lambda)して API Gateway から切り離すか、処理を最適化する設計変更が必要です。 選択肢Aは Lambda 関数のアカウントレベルの同時実行上限に達してスロットリングが発生している場合は 429 エラーが返されます。 選択肢Cは Lambda 関数のメモリが不足して実行が強制終了(OOM Kill)されている場合は CloudWatch に OOM Kill として記録されます。 選択肢Dは API Gateway の WAF(Web Application Firewall)がリクエストをブロックする場合は 403 Forbidden が返されるため、504 の原因にはなりません。