CI/CD

CodeCommit -> CodeDeploy のパイプラインを使用したデプロイ

使用したパイプラインの全体像

・Git リポジトリとして CodeCommit を使用

・git push されたことをトリガーに、CodeDeploy が起動

・CodeDeploy から EC2 インスタンスへアプリケーションがデプロイされる

IaC

Webサーバーを起動するEC2インスタンス、git push してからインスタンスへデプロイするまでの一連のアーキテクチャを、CloudFormation テンプレートで作成しています。

同じテンプレートを使用すれば、他の環境でも同じものが作成可能です。

Kiro CLI のインストール

以下のページの手順に従って、Kiro CLI をインストールしてください。

📖 Kiro CLI Getting Started Guide

Kiro CLI を使ってみる

ターミナルで以下のコマンドを実行して Kiro CLI を起動します

起動コマンド

$ kiro-cli chat

起動したら、以下のプロンプトをコピーして入力してみてください

💡 お試しプロンプト

STEP 1: 以下の内容で dep-demo-stack.yaml というファイルを作成してください。 AWSTemplateFormatVersion: '2010-09-09' の CloudFormation テンプレートで、以下のリソースを含めてください: - VPC (CIDR: 10.0.0.0/16) - パブリックサブネット 2つ (10.0.1.0/24, 10.0.2.0/24、異なるAZ) - インターネットゲートウェイ、ルートテーブル、ルート、サブネットとの関連付け - ALB 用セキュリティグループ (インバウンド: TCP 80 を 0.0.0.0/0 から許可) - ECS タスク用セキュリティグループ (インバウンド: ALB セキュリティグループからの TCP 80 のみ許可) - Application Load Balancer (internet-facing, 2つのサブネット) - ALB ターゲットグループ (ヘルスチェック: /, ターゲットタイプ: ip) - ALB リスナー (HTTP:80 → ターゲットグループへフォワード) - ECS クラスター - ECS タスク実行用 IAM ロール (AmazonECSTaskExecutionRolePolicy をアタッチ) - ECS タスク定義 (Fargate, CPU: 256, Memory: 512, nginx:latest コンテナ, ポート80) コンテナの Command は以下を設定: ["/bin/sh","-c","echo '<html><head><meta charset=utf-8><style>body{background:#1a1a2e;color:#fff;display:flex;justify-content:center;align-items:center;height:100vh;margin:0;font-family:sans-serif;text-align:center}h1{font-size:3em;color:#ff6b35}p{font-size:1.5em}</style></head><body><h1>26卒の皆さん、ご入社おめでとうございます🎉</h1><p>Deployment Profile へようこそ!</p></body></html>' > /usr/share/nginx/html/index.html && nginx -g 'daemon off;'"] - ECS サービス (Fargate, desiredCount: 1, パブリックIP割り当て有効, ALB と連携, 2つのサブネット) - Outputs に ALBDnsName として ALB の DNS 名を出力 STEP 2: 作成したら即座に以下のコマンドを実行してください。 aws cloudformation deploy --template-file dep-demo-stack.yaml --stack-name dep-demo-stack --capabilities CAPABILITY_NAMED_IAM --no-fail-on-empty-changeset STEP 3: デプロイ完了後、即座に以下を実行してください。 aws cloudformation describe-stacks --stack-name dep-demo-stack --query "Stacks[0].Outputs[?OutputKey=='ALBDnsName'].OutputValue" --output text STEP 4: 取得した URL を http:// 付きで表示し、「ブラウザでこの URL にアクセスしてください。」と伝えてください。 STEP 5: 「確認が終わったら以下のコマンドでリソースを削除してください」と伝えてください。 aws cloudformation delete-stack --stack-name dep-demo-stack

Message

コンテナ、CI/CD、IaC を少しでも面白いと思った方、Deployment Profile でお待ちしています。

他に話しを聞きたい、質問がある、Deployment Profile の誰か(僕でもいいよ)と1:1したいという方、お気兼ねなくご連絡ください。

2026/04/10 aoshi@