ひとことで言うと
ソースコードの変更からビルド・テスト・デプロイまでのリリース工程を、ステージとアクションの組み合わせでモデル化し自動化するオーケストレーションサービスです。
要するに、ベルトコンベアです。各ステージ(ソース→ビルド→デプロイ)に何を置くかは自由で、CodeBuild や CodeDeploy はそのコンベアに乗せる作業台の一つです。
何に使うか
| 用途 | 使い方 |
|---|---|
| リリース工程の自動化 | source/build/test/deploy/approval/invoke の各アクションをステージに配置する |
| 手動承認を挟んだ段階的なリリース | approval アクションで人の確認を待ってから次のステージへ進める |
| 失敗時の巻き戻し | ステージの条件(Conditions/Rules)でCloudWatchアラーム等の状態を評価し、自動でロールバックする |
試験でどう問われるか
| 問われ方 | 正解に寄る条件 | 引っかけ |
|---|---|---|
| 「モデル/プロンプトの新バージョンを、承認を経てから本番に出したい」 | CodePipeline の approval アクションを承認ステージに挟む | Lambda 内で承認待ちのポーリングを自作する案 |
| 「デプロイ後にアラームが出たら自動でロールバックしたい」 | On Success 条件で CloudWatchAlarm ルールを評価し、失敗ならロールバックする | 監視ダッシュボードを見て手動でロールバックする運用 |
取り違えやすいもの
| 迷う相手 | 切り分けの一言 |
|---|---|
| CodeBuild / CodeDeploy | CodePipeline は工程全体を編成する側。CodeBuild(ビルド)・CodeDeploy(デプロイ)はその中に配置される実行役 |
| Step Functions | Step Functions はアプリ実行時のワークフロー(エージェントのReAct等)を扱う。CodePipeline はコードのリリースという開発工程のワークフローを扱う |
想起チェック
Q1. デプロイ後にアラームが出たときステージを自動で巻き戻す仕組みは?
ステージの条件(Conditions)です。On Success 条件に CloudWatchAlarm ルールを設定すると、成功後でもアラームがあればロールバックするという判定ができます。
Q2. 人の承認を待ってから次のステージに進めたいときのアクション種別は?
approval アクションです。source/build/test/deploy/approval/invoke のうちの一つとして、ステージ内に配置します。