無限ノック › DVA 練習問題一覧 › 問題
DVAトラブルシューティングと最適化

API Gateway REST APIとLambda関数で構築されたレポート生成サービスがあります。ほとんどのリクエストは数秒で完了しますが、大規模データセットのレポート生成には35〜50秒かかる場合があり、ユーザーが504 Gateway Timeoutエラーを受け取っています。この問題を根本的に解決するアーキテクチャとして最も適切なものはどれですか?

A
Lambda関数のメモリを最大の10,240MBに増やしてCPU割り当てを向上させ、35〜50秒かかるレポート生成処理が29秒以内に収まるよう処理速度を改善する
Lambdaメモリを増やすことでCPU処理速度は向上するが、35〜50秒かかる大規模なデータ処理が確実に29秒以内に完了する保証はない。ハードリミットを回避できないため根本的な解決策にはならず、問題が再発するリスクが残る。
B
API GatewayコンソールでLambda統合タイムアウトを29秒から60秒以上に変更し、大規模データセットのレポート生成処理が完了するまでAPIがレスポンスを待てるよう構成する
API Gateway REST APIの統合タイムアウトは29秒がハードリミットであり、コンソールからも設定APIからも60秒に変更することは不可能。この制約はAWSサービス仕様として変更できない。
C
API GatewayのREST APIをHTTP APIに移行する。HTTP APIはREST APIより統合タイムアウトの上限が高く設定されており、35〜50秒かかる大規模レポートのリクエストも正常に完了できる
API Gateway HTTP APIの統合タイムアウト上限は30秒であり、REST APIの29秒とほぼ差はない。35〜50秒かかる処理には対応できず、移行しても504エラーは解消されない。
D
Lambda関数を非同期呼び出しに変更してAPIがジョブIDをすぐに返し、クライアントが別エンドポイントをポーリングするかSNS・WebSocketで完了通知を受け取る非同期アーキテクチャに変更する
✓ 正解
非同期パターンに変更することでAPI Gatewayのタイムアウト制約を回避できる。即時レスポンスでジョブIDを返すことでSLAを満たしつつ、Lambda内ではタイムアウト上限の15分まで処理を継続でき、任意の処理時間のレポート生成に対応できる根本的な解決策。

解説

API Gateway REST APIの統合タイムアウトは最大29秒のハードリミットがあり、コンソールからもAWS APIからも変更できない。HTTP APIも最大30秒が上限。35〜50秒かかる処理には非同期パターンへの変更が必要。Lambda関数を非同期呼び出し(InvocationType=Event)に変更してAPIが即時ジョブIDを返し、クライアントが別APIエンドポイントへのポーリングかSNS/WebSocket通知で結果を受け取るパターンがこの問題の標準的な解決策。 選択肢AのLambdaメモリ最大化でCPU性能は向上するが、35〜50秒かかる複雑なデータ処理が確実に29秒以内に収まる保証はなく、根本的な解決策にならない。 選択肢BのAPI Gatewayタイムアウト変更は29秒がサービス仕様のハードリミットであり、コンソール・API・CLIのいずれからも29秒を超える値は設定できない。 選択肢CのHTTP APIへの移行はタイムアウト上限が30秒であり、35〜50秒の処理には依然として対応できない。REST APIからHTTP APIへの移行ではこの問題は解消されない。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る