Developer Tools

AWS CodePipeline

ソースからデプロイまでのリリース工程をステージとアクションでモデル化し自動化するオーケストレーションサービスです。承認ゲートや失敗時ロールバックの土台にもなります。

  • C|周辺
  • D2 実装と統合
  • D5 テスト・検証・トラブルシュート

ひとことで言うと

ソースコードの変更からビルド・テスト・デプロイまでのリリース工程を、ステージとアクションの組み合わせでモデル化し自動化するオーケストレーションサービスです。

要するに、ベルトコンベアです。各ステージ(ソース→ビルド→デプロイ)に何を置くかは自由で、CodeBuild や CodeDeploy はそのコンベアに乗せる作業台の一つです。

何に使うか

用途使い方
リリース工程の自動化source/build/test/deploy/approval/invoke の各アクションをステージに配置する
手動承認を挟んだ段階的なリリースapproval アクションで人の確認を待ってから次のステージへ進める
失敗時の巻き戻しステージの条件(Conditions/Rules)でCloudWatchアラーム等の状態を評価し、自動でロールバックする

試験でどう問われるか

問われ方正解に寄る条件引っかけ
「モデル/プロンプトの新バージョンを、承認を経てから本番に出したい」CodePipeline の approval アクションを承認ステージに挟むLambda 内で承認待ちのポーリングを自作する案
「デプロイ後にアラームが出たら自動でロールバックしたい」On Success 条件で CloudWatchAlarm ルールを評価し、失敗ならロールバックする監視ダッシュボードを見て手動でロールバックする運用

取り違えやすいもの

迷う相手切り分けの一言
CodeBuild / CodeDeployCodePipeline は工程全体を編成する側。CodeBuild(ビルド)・CodeDeploy(デプロイ)はその中に配置される実行役
Step FunctionsStep Functions はアプリ実行時のワークフロー(エージェントのReAct等)を扱う。CodePipeline はコードのリリースという開発工程のワークフローを扱う

想起チェック

Q1. デプロイ後にアラームが出たときステージを自動で巻き戻す仕組みは?

ステージの条件(Conditions)です。On Success 条件に CloudWatchAlarm ルールを設定すると、成功後でもアラームがあればロールバックするという判定ができます。

Q2. 人の承認を待ってから次のステージに進めたいときのアクション種別は?

approval アクションです。source/build/test/deploy/approval/invoke のうちの一つとして、ステージ内に配置します。

出典(AWS公式)