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

開発チームが AWS SAM を使用して Lambda 関数をデプロイしています。本番環境での安全なリリースのため、最初は新バージョンに 10% のトラフィックを流し、10 分後に問題がなければ残り 90% を一括で切り替えるデプロイを行いたいと考えています。CloudWatch アラームと連動した自動ロールバックも必要です。SAM テンプレートの正しい設定はどれですか?

A
AutoPublishAlias を設定し、DeploymentPreference の Type に Canary10Percent10Minutes を指定する
✓ 正解
SAMのAutoPublishAliasとDeploymentPreferenceを組み合わせることでCodeDeployによるトラフィックシフティングを実現します。Canary10Percent10Minutesは10%を新バージョンに転送、10分後に残り90%を一括切り替える方式。CloudWatchアラーム設定で自動ロールバック可能です。
B
AutoPublishAlias を設定し、DeploymentPreference の Type に Linear10PercentEvery10Minutes を指定する
Linear10PercentEvery10Minutesは一定割合ずつ段階的に増加する方式であり、「10分後に全量切り替え」という要件と異なります。
C
Lambda コンソールでバージョンのエイリアスを作成し、加重ルーティングを手動で 10:90 に設定する
手動でのエイリアス・加重ルーティング設定はCodeDeployによる自動化を活用できず、アラーム連携・自動ロールバックが困難です。
D
API Gateway のカナリアリリース設定を使用して、10% のリクエストのみ新バージョンに転送する
API GatewayのカナリアリリースはAPI Gatewayステージレベルの機能で、Lambda関数のカナリア方式トラフィックシフティングには非対応です。

解説

SAM の AutoPublishAlias を設定するとデプロイごとに新しい Lambda バージョンが発行され、DeploymentPreference と組み合わせることで CodeDeploy によるトラフィックシフティングが実現する。Canary10Percent10Minutes は最初に 10% を新バージョンへ転送し、10 分後に残り 90% を一括切り替えるカナリア方式であり、Alarms セクションに CloudWatch アラームを指定することで問題検知時の自動ロールバックが可能になる。 選択肢Bの Linear10PercentEvery10Minutes は 10% ずつ段階的にトラフィックを増加させる方式で、10 分ごとに 10%・20%・30%...と漸増するため、10 分後に残り 90% を一括切り替える要件とは異なる。 選択肢Cの Lambda コンソールでの手動加重ルーティング設定は SAM による自動化・再現性を損ない、CloudWatch アラームとの自動ロールバック連動も実現しないため要件を満たせない。 選択肢Dの API Gateway カナリアリリースはフロントエンドのリクエストルーティングを制御する機能であり、Lambda 関数バージョン間のトラフィックシフティングとは独立した仕組みで、SAM の DeploymentPreference が担う Lambda デプロイ要件を代替できない。

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

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

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