ラボ概要
S3 ソース→CodeBuild のパイプラインを作り、EventBridge ルールで成功/失敗を捕捉して SNS でメール通知する監視を構築します。
シンプルな CI パイプライン(S3 ソース → CodeBuild)を作成し、その実行結果の状態変化(成功 SUCCEEDED / 失敗 FAILED)を Amazon EventBridge(旧 Amazon CloudWatch Events)のルールで捕捉して、Amazon SNS のメール通知に変換する監視を構築します。CodePipeline はステージや実行の状態変化を自動的に EventBridge へ送出するため、ポーリングなしでイベント駆動の通知基盤を組めます。最後にビルドをわざと失敗させ、「失敗を見逃さない」監視が動くことを体感します。
> このラボのタイトルにある「CloudWatch」は、CodePipeline の状態変化イベントを処理する CloudWatch Events(現在の名称は Amazon EventBridge) を指します。CloudWatch のメトリクスやアラームは使いません。本ラボの監視の中核は EventBridge ルールです。
学習目標
- CodePipeline で S3 ソース → CodeBuild のシンプルなパイプラインを構築できる
- CodePipeline が EventBridge(既定イベントバス)へ送出する状態変化イベントの構造を理解する
- EventBridge のイベントパターンで、特定パイプラインの SUCCEEDED / FAILED だけを絞り込める
- 入力トランスフォーマーでイベント JSON を読みやすい通知本文に整形できる
- SNS トピック + メール購読でアラートを受信し、トピックポリシーの発行権限の要点を理解する
- 失敗時に通知が届くことを検証し、運用監視の基本パターンを把握する
前提
- 学習者は
cloud_user ロールで東京リージョンのコンソールにサインイン済みです(フェデレーテッドサインイン)。
- すべての操作は東京リージョン(ap-northeast-1)で行います。CodePipeline / CodeBuild が使う IAM サービスロールは、このラボの手順内で「新しいサービスロール」として自動作成します(IAM ロールはグローバルサービスである IAM 上に作られますが、操作自体は東京リージョンのコンソールから行います)。
- 受信できるメールアドレスを 1 つ用意してください(SNS の購読確認メールと、成功/失敗の通知メールを受け取るため)。
- このラボのリソースはすべて学習者自身がコンソールと CloudShell で作成します。事前構築済みのインフラや外部リポジトリは不要です。