無限ノック › DVA 練習問題一覧 › 問題
DVAデプロイ

ある企業がAWS Lambdaで金融取引処理APIを運用しています。コールドスタートによるレイテンシーが問題となっており、Lambdaエイリアス「production」に対してProvisioned Concurrencyを設定することで対処しています。新バージョンをデプロイし、一部のトラフィックを新バージョンに段階的にルーティングしながらウォームスタートを維持したい場合、最も適切なアプローチはどれですか?

A
Lambdaエイリアスのルーティング設定(Weighted Alias)で新旧バージョンへのトラフィック分割を設定し、各バージョンに独立してProvisioned Concurrencyを設定することでウォームスタートを維持する
✓ 正解
Lambdaエイリアスのルーティング設定(Weighted Alias)で2バージョンへのトラフィック分割が可能。各バージョンに独立してProvisioned Concurrencyを設定することで、移行中もコールドスタートなしのウォームスタートを両バージョンで維持できる唯一の手法。
B
API GatewayのカナリアデプロイでAPIステージ変数を使い新旧バージョンのLambda ARNを切り替え、段階的なパーセンテージ移行と並行してProvisioned Concurrencyを両バージョンに設定する
API GatewayのカナリアデプロイはAPIステージレベルのトラフィック分割機能だが、ステージ変数によるLambda ARN切り替えはLambdaエイリアスのWeighted Aliasより管理が複雑。Provisioned ConcurrencyはLambdaエイリアス/バージョンへの直接設定が推奨であり、API Gateway経由では間接的になる。
C
EventBridgeのスケジュールルールで新バージョンのLambdaを1分ごとに定期呼び出しでウォームアップし、十分に安定したことを確認してから全トラフィックを新バージョンに切り替える
定期的な呼び出しによるウォームアップはProvisioned Concurrencyと異なりウォームスタートを保証しない。また全量即時切り替えは段階的トラフィック移行という要件に反しており、問題発生時のリスクが高い。
D
CloudFrontのオリジングループで新旧Lambdaバージョンの関数URLをプライマリ・セカンダリに設定し、フェイルオーバー動作を利用して段階的にトラフィックを新バージョンに移行する
CloudFrontのオリジングループはプライマリ障害時のフェイルオーバー構成であり、重み付きトラフィック分割(例:90%/10%)を目的とした機能ではない。Lambda関数URLとの組み合わせでも細かいパーセンテージ制御はできない。

解説

Lambdaエイリアスのルーティング設定(Weighted Alias)を使用すると、1つのエイリアスで2つのバージョンに重み付きでトラフィックを分割できます(例:90%旧バージョン・10%新バージョン)。Provisioned ConcurrencyはLambdaエイリアスまたは特定バージョンに設定できるため、新旧両バージョンにそれぞれ設定することで、移行中もどちらのバージョンもウォームスタートを維持できます。段階的なトラフィック移行とレイテンシー保証を両立できる唯一の組み合わせです。 選択肢BのAPI GatewayカナリアデプロイはAPIステージレベルのトラフィック分割機能ですが、ステージ変数によるLambda ARN切り替えはLambdaエイリアスのWeighted Aliasより管理が複雑で、Provisioned Concurrencyとの統合も間接的になります。 選択肢Cの定期的なウォームアップ呼び出しはProvisioned Concurrencyの保証を代替できず、全量即時切り替えは段階的ロールアウトという要件を満たしません。 選択肢DのCloudFrontオリジングループはフェイルオーバー目的の機能であり、重み付きトラフィック分割には設計されていません。

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

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

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