Q35 — AWS SAA-C03 第8章
第 35/65 問 | ← 第8章
Q530. ある企業は、Amazon API Gateway をバックエンドとするフロントエンドアプリケーションをホストしています。この API は AWS Lambda 関数と統合されており、API がリクエストを受信すると、Lambda 関数は多数のライブラリを読み込み、その後 Amazon RDS データベースに接続してデータを処理し、フロントエンドアプリケーションに結果を返します。企業は、すべてのユーザーに対して応答遅延をできる限り短く保ちたいと考えており、そのために運用への変更を最小限に抑えたいとしています。これらの要件を満たす解決策はどれですか?
- A. フロントエンドアプリケーションとデータベースの間に直接接続を確立し、API を経由せずにクエリを実行することで応答速度を向上させる。
- B. リクエストを処理する Lambda 関数に対してプロビジョニング済み同時実行数(provisioned concurrency)を設定する。 ✓
- C. クエリ結果を Amazon S3 にキャッシュして、類似したデータセットの高速な取得を可能にする。
- D. データベースのサイズを拡大し、Lambda が同時に確立できる接続数を増やす。
正解: B. リクエストを処理する Lambda 関数に対してプロビジョニング済み同時実行数(provisioned concurrency)を設定する。
解説
Lambda 関数の起動時(cold start)におけるライブラリ読み込みや初期化処理、および RDS への接続確立は、応答遅延の主な原因となります。プロビジョニング済み同時実行数を設定すると、関数の事前初期化(プリウォーム)が行われ、冷たい起動(cold start)による遅延を大幅に削減できます。これは、コードやアーキテクチャの変更を最小限に抑えつつ、応答性を向上させる最も効果的かつシンプルな方法です。選択肢 A はセキュリティおよびアーキテクチャ上の問題(例:VPC 外からの直接 DB アクセス、認証・認可の複雑化)を引き起こし、推奨されません。選択肢 C は S3 が低レイテンシなキャッシュストアではなく、またクエリ結果の有効期限管理や一貫性の担保が困難です。選択肢 D は RDS の接続数制限を緩和する効果は限定的であり、Lambda 側の初期化遅延やネットワークラウンドトリップの問題には対応できません。