🍳 AWS CI/CDパイプライン

レシピ開発から出版まで - 初心者向け完全ガイド

📖 ストーリー

あなたは料理研究家です。新しいレシピを開発し、テストを重ね、最終的に料理本として出版するまでのプロセスを、AWSのサービスを使って自動化してみましょう!

📝

ソース: レシピノート

AWS CodeCommit

技術的説明

  • 📁 CodeCommit: Gitベースのソースコード管理
  • 🔄 バージョン管理とブランチ機能
  • 🔒 セキュアなプライベートリポジトリ
git push origin main # → パイプライン自動実行トリガー

🍳 レシピ開発に例えると...

レシピノート として機能します。

  • 📋 レシピの材料リストや手順を記録
  • 🔄 改良版のレシピを履歴として保存
  • 👥 複数の料理人が同時に開発可能
  • 🔒 企業秘密のレシピを安全に管理

💡 初心者ポイント

レシピを更新するたびに、自動的に「品質チェック工程」が開始されます!

⬇️
🧪

Stage1: テストキッチン

AWS CodeBuild

技術的説明

  • ⚙️ CodeBuild: マネージドビルドサービス
  • 🔧 cdk synth: CDKをCloudFormationに変換
  • cfn-lint: CloudFormationテンプレート検証
  • 📦 S3: ビルド成果物のバージョニング保存
# buildspec.yml phases: build: commands: - cdk synth - cfn-lint template.yaml - aws s3 cp artifacts/ s3://bucket/

🍳 レシピ開発に例えると...

テストキッチン での品質チェック工程です。

  • 🧪 レシピの材料が正しく揃っているかチェック
  • 📏 分量や手順に間違いがないか検証
  • 👨‍🍳 プロの料理人による味見テスト
  • 📚 合格したレシピを「レシピ保管庫」に版番号付きで保存
✅ 成功時: 検証済みレシピがS3保管庫に安全に格納されます
❌ 失敗時: 問題が見つかった場合、パイプラインを停止して修正を促します
⬇️
🍽️

Stage2: 社内試食会

CloudFormation Deploy (dev → stg)

技術的説明

  • 🚀 CloudFormation: インフラの自動デプロイ
  • 🔄 dev環境 → stg環境への段階的デプロイ
  • 自動実行(承認不要)
  • 📊 デプロイ状況の自動監視
# CloudFormation Action ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: 1

🍳 レシピ開発に例えると...

社内試食会 での段階的テストです。

  • 👨‍🍳 dev(開発者食堂): 料理人自身が味見
  • 👥 stg(社員食堂): 社員みんなで試食
  • 🔄 自動的に両方の食堂でテスト料理を提供
  • 📝 フィードバックを収集して品質を確認
🎯 目的: 本格的な出版前に、社内で十分に検証すること
⬇️

Stage3: 編集長の最終チェック

Manual Approval

技術的説明

  • ⏸️ ManualApproval: パイプライン一時停止
  • 👤 承認者への通知(SNS/Email)
  • 承認 または ❌ 却下の選択
  • ⏱️ タイムアウト設定可能
# Manual Approval設定 ActionTypeId: Category: Approval Owner: AWS Provider: Manual Version: 1

🍳 レシピ開発に例えると...

編集長による最終判断 の段階です。

  • 📧 編集長にメール通知が届く
  • 📋 社内試食会の結果レポートを確認
  • 🤔 「このレシピは本として出版する価値があるか?」を判断
  • ✅ GO! または ❌ NG の決定を下す
⚠️ 重要: ここで承認されない限り、本番環境(出版)には進めません

💡 ビジネス的意義

人間による最終判断で、ビジネスリスクを最小限に抑えます

⬇️
📚

Stage4: 本の出版

CloudFormation ChangeSets + Cross-Account

技術的説明

  • 📋 CreateChangeSet: 変更内容をプレビュー
  • 🚀 ExecuteChangeSet: 実際にデプロイ実行
  • 🔐 Cross-Account Role: 別アカウントへの安全な操作
  • Rollback: 問題発生時の自動復旧
# Cross-Account Role arn:aws:iam::PROD-ACCOUNT:role/ CrossAccountDeploymentRole # Rollback有効 DisableRollback: false

🍳 レシピ開発に例えると...

料理本の正式出版 プロセスです。

  • 📋 CreateChangeSet: 出版前の最終校正チェック
  • 🏢 Cross-Account: 出版社(別会社)との連携
  • 📚 ExecuteChangeSet: 書店に本を配本開始
  • Rollback: 問題があれば即座に回収・差し替え
🎉 成功! あなたのレシピが全国の書店に並びました!
🚨 緊急時: 自動的に前のバージョンに戻して被害を最小限に

🎯 このパイプラインの価値

⚡ 自動化による効率性

手動作業を最小限に抑えて、人的ミスを防止

🛡️ 多層防御の品質保証

複数段階でのテストと承認による高品質維持

🔒 セキュリティと分離

環境分離とアカウント分離による安全性確保

🔄 迅速な復旧能力

問題発生時の自動ロールバック機能

Created by SSuzuki1063

AWS SAP Learning Resources