バージョン/エイリアス(CodeDeployによる自動トラフィックシフト)難易度 高無料
AWS CodeDeployを使ってLambda関数の新バージョンへのトラフィックシフトを自動化したい。CodeDeployのLambdaデプロイに関する正しい記述を2つ選べ。
- ACodeDeployはLambda向けにCanary(一部トラフィックを流した後に残り全部を切替)、Linear(段階的に均等割合で切替)、AllAtOnce(即時全量切替)のデプロイ設定を提供する
- BデプロイにCloudWatchアラームと検証用フック(
BeforeAllowTraffic/AfterAllowTraffic)を関連付けておくと、問題検知時にCodeDeployが自動的にエイリアスを旧バージョンへロールバックできる - CCodeDeployのトラフィックシフトは
$LATESTを直接の対象にでき、発行済みバージョンやエイリアスを介さずに切り替えられる - DCanary/Linearのいずれの設定でも、重みの移行は必ず人手による承認アクションを都度行わない限り一切進まない
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
CodeDeployはLambdaのデプロイにおいて、エイリアスが指す新旧バージョン間のトラフィック移行を自動化する。
- あらかじめ用意されたデプロイ設定として、Canary(一定割合を流した後、一定時間経過で残り全部を切替)、 Linear(一定間隔で均等な割合ずつ段階的に切替)、AllAtOnce(即時に全トラフィックを切替)がある。
- デプロイ前後のフック(
BeforeAllowTraffic/AfterAllowTraffic)として検証用Lambda関数を設定でき、 さらにCloudWatchアラームを関連付けておくと、アラームが発報した場合にCodeDeployが自動的にエイリアスを旧バージョンへロールバックする。 - トラフィックシフトの対象は発行済みバージョンを指すエイリアスであり、常に可変な
$LATESTを直接のシフト対象にすることはできない。
- Cトラフィックシフトの対象は発行済みバージョンを指すエイリアスであり、常に変化し得る
$LATESTを直接の対象にはできない。 - D誤り。Canary/Linearは設定した時間間隔・増分に従いCodeDeployが自動的に重みを進める。人手の承認ステップは必須要件ではない。
ひっかけ: 「トラフィックシフトの対象は
$LATESTにできる(C)」「重みの移行は手動承認のたびにしか進まない(D)」はいずれも誤り。
CodeDeployのLambdaデプロイは発行済みバージョンを指すエイリアスに対して、設定した時間間隔で自動的に重みを進めるのが基本動作である。公式ドキュメント・関連AWS CodeDeploy User Guide ― Working with deployment configurations for Lambda deployments↗AWS Lambda Developer Guide ― Using AWS CodeDeploy to implement traffic shifting↗
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)