DVAデプロイ

開発者がAWS Lambda関数を本番運用しており、新バージョンを段階的に公開したいと考えています。CodeDeployは使わず、Lambda単体の機能だけで「新バージョンに10%、旧バージョンに90%」のトラフィック分割を実現する最も適切な方法はどれですか。

A
Lambdaエイリアスを作成し、ルーティング設定(加重エイリアス)で2つのバージョンへの割合を指定する
✓ 正解
加重エイリアスは1つのエイリアスから2バージョンへ割合(例:10%/90%)でルーティングでき、CodeDeploy不要でLambda単体の手動カナリアを実現する。要件に直接合致する。
B
プロビジョニングされた同時実行数を新バージョンに10%だけ割り当てる
プロビジョニングされた同時実行数はコールドスタートを抑えるために実行環境を事前初期化する機能で、トラフィックの割合分割とは無関係。段階公開には使えない。
C
関数URLを2つ発行し、CloudFrontで重み付けルーティングを構成する
関数URL2つとCloudFrontでも分割自体は可能だが構成が過剰で、Lambda単体機能という条件から外れ外部サービスへ依存する。最小構成ではない。
D
予約された同時実行数を新旧バージョンで9対1に分割設定する
予約された同時実行数は関数全体の同時実行数を確保/上限設定する機能で、特定バージョンへトラフィック比率を割り当てる用途には使えない。

解説

Lambdaエイリアスはルーティング設定(weighted alias)により、1つのエイリアスから2つの関数バージョンへトラフィックを割合指定で振り分けられます。これによりCodeDeployを使わずともLambda単体で加重的な段階公開(手動カナリア)が可能です。 クライアントはエイリアスARNを呼び出すだけでよく、割合を変えるだけで段階的に切り替えられます。 選択肢Bのプロビジョニングされた同時実行数は、コールドスタート対策のための事前初期化機能でありトラフィック分割の機能ではない。 選択肢Cの関数URL+CloudFrontは実現可能でも構成が過剰で、Lambda単体機能というより外部サービス依存になる。 選択肢Dの予約された同時実行数は、関数の同時実行上限を確保・制限する機能でありバージョン間のトラフィック比率制御はできない。

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

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

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