ひとことで言うと
EC2/オンプレミスのインスタンス、Lambda 関数、Amazon ECS サービスへのアプリケーションデプロイを自動化するサービスです。
要するに、引っ越しの段取り屋です。荷物(新バージョン)をどれだけの速さで、どの部屋(インスタンスやトラフィック)に運ぶかを、あらかじめ決めたルール通りに進めてくれます。
何に使うか
| デプロイ先 | 方式 |
|---|---|
| EC2/オンプレミス | インプレース(順次入れ替え)またはブルー/グリーン(新インスタンス群に切替) |
| Lambda | 新旧バージョン間のトラフィックシフト(カナリア/リニア/全量一括) |
| Amazon ECS | タスクセットの入れ替え(ブルー/グリーン。カナリア/リニア/全量一括) |
試験でどう問われるか
主役では出ません。出るとすれば、Lambda 関数の新バージョンを段階的に、安全に切り替えたいというシナリオの選択肢としてです。
| 問われ方 | 正解に寄る条件 | 引っかけ |
|---|---|---|
| 「新しいLambda関数のバージョンを一部トラフィックだけで試したい」 | カナリア設定(例: CodeDeployDefault.LambdaCanary10Percent5Minutes。最初に10%、5分後に残り90%) | 全量一括(AllAtOnce)を選んでしまう |
| 「デプロイ失敗時は自動でロールバックしたい」 | CodeDeploy のデプロイ設定にあるロールバック条件を使う | 手動での再デプロイ運用を選ぶ |
取り違えやすいもの
| 迷う相手 | 切り分けの一言 |
|---|---|
| CodeBuild | CodeBuild は成果物を作る、CodeDeploy はそれを配る |
| 手動でのインスタンス入れ替え | 自分で作業すると、ロールバック・トラフィック制御・進捗監視を毎回書くことになる。CodeDeploy はこれを設定として定義できる |
想起チェック
Q1. Lambda関数のデプロイで「10%だけ試して5分後に残りを切り替える」設定は?
カナリア方式のデプロイ設定です(例: CodeDeployDefault.LambdaCanary10Percent5Minutes)。最初に10%のトラフィックを新バージョンに向け、指定した時間後に残り90%を切り替えます。