DVA-C02開発MEDIUM単一選択

ある金融サービス企業が、Lambdaを使ってオンプレミスのデータベース(プライベートサブネット内のRDS PostgreSQL)にアクセスするAPIを構築している。Lambdaをプライベートサブネットに配置してVPCに接続したところ、関数の初回実行(コールドスタート)のレイテンシが急増した。VPCアタッチメントによるコールドスタートのレイテンシ増加を最小化しつつ、引き続きRDSに安全にアクセスするための対策として最も適切なものはどれか。

  1. A. プロビジョニング済み同時実行数(Provisioned Concurrency)を設定して関数インスタンスをウォーム状態に保つ
  2. B. Lambda関数をVPCに接続せず、RDSをパブリックサブネットに移動してインターネット経由でアクセスする
  3. C. Lambdaのタイムアウト値を最大(15分)に設定してコールドスタートの時間制限を緩和する
  4. D. Lambda関数を複数のAZにわたるパブリックサブネットに配置し、NAT Gatewayを経由してRDSにアクセスする
解答と解説を見る

正解: A

プロビジョニング済み同時実行は、指定した数のLambda関数インスタンスを初期化済みの状態で常時保持する機能である。VPC接続時のコールドスタートにはENI(弾性ネットワークインターフェイス)の確立時間が含まれるが、プロビジョニング済みインスタンスはこれを事前に完了させた状態で待機するため、レイテンシを大幅に削減できる。なお、AWSは2019年以降にVPCインフラを刷新(Hyperplane ENIを採用)しており、最新環境ではVPCコールドスタートのオーバーヘッド自体が以前より小さくなっているが、厳格なレイテンシ要件には依然としてプロビジョニング済み同時実行が有効である。選択肢BはRDSをパブリックに晒すため重大なセキュリティリスクであり、金融サービスの要件に反する。選択肢Cのタイムアウト延長はコールドスタートそのものを短縮しない。選択肢Dのパブリックサブネット配置はプライベートRDSへのアクセスに必要なVPC内ルーティングを変えないためレイテンシ改善にならず、NAT Gatewayのコストも増大する。

▸ この試験を本気で演習する(全150問・無料)