💡 お試しプロンプト
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