AI コーディングツールでプロトタイプを素早く作れるようになった一方で、「ローカルでは動いたけど、クラウドに出すのが面倒」という壁は依然として残っています。AWS にコンテナアプリをデプロイしようとすると、VPC、ALB、ECS タスク定義、IAM ロールといったインフラの設定だけで半日が消えることも珍しくありません。
AWS Copilot CLI は、この壁を取り払うツールです。Dockerfile さえあれば、対話的なプロンプトに答えるだけで ECS on Fargate へのデプロイが完了します。AI ツールが生成したコードをそのままクラウドに載せて検証できるため、プロトタイピングのサイクルが格段に速くなります。
AWS Copilot CLI とは
AWS Copilot CLI は、Amazon ECS on AWS Fargate および AWS App Runner 上でコンテナ化アプリケーションのビルド・リリース・運用を行うためのオープンソースの CLI ツールです。
- GitHub: aws/copilot-cli
- 公式ドキュメント: AWS Copilot CLI
- ライセンス: Apache 2.0
- 開発言語: Go
Copilot が提供するのは、AWS リソースの詳細設定を抽象化し、開発者がビジネスロジックに集中できるワークフローです。VPC やロードバランサーの設定、ECS タスク定義の記述、ECR へのイメージプッシュといった作業を、Copilot が裏側で自動的に処理します。
5 つのサービスタイプ
Copilot は用途に応じて 5 つのアーキテクチャパターンを提供しています。
| サービスタイプ | 基盤 | ユースケース |
|---|---|---|
| Request-Driven Web Service | App Runner | トラフィック変動が大きい Web API。リクエストがなければ自動スケールダウン |
| Load Balanced Web Service | ECS + ALB/NLB | 安定したリクエスト量の Web アプリ。VPC 内リソースへのアクセスが必要な場合 |
| Backend Service | ECS(内部のみ) | パブリックエンドポイント不要の内部サービス |
| Worker Service | ECS + SQS/SNS | Pub/Sub による非同期メッセージ処理 |
| Static Site | S3 + CloudFront | 静的ファイルの CDN 配信 |
プロトタイピングでは Load Balanced Web Service か Request-Driven Web Service を選ぶケースが多いでしょう。前者は ECS + Fargate + ALB のフルスタックが立ち上がり、後者は App Runner でより手軽にスケーリングを任せられます。
AI コーディングツールとの相性が良い理由
Copilot が AI ツールを使ったプロトタイピングに向いている理由は、主に 3 つあります。
1. Dockerfile があれば始められる
Copilot は copilot init の実行時にプロジェクト内の Dockerfile を自動検出します。Claude Code や Codex CLI に「Rails で Web アプリケーションを作って Dockerfile も生成して」と指示すれば、その出力をそのまま Copilot に渡せます。
# AI ツールがコードと Dockerfile を生成した後
$ copilot init対話プロンプトでアプリ名・サービスタイプ・サービス名を選択し、デプロイを確認するだけです。VPC の CIDR やサブネット構成を考える必要はありません。
2. Manifest ファイルによる宣言的な設定
copilot init を実行すると、copilot/ ディレクトリに Manifest ファイルが生成されます。
# copilot/web/manifest.yml
name: web
type: Load Balanced Web Service
image:
build: Dockerfile
port: 3000
http:
path: '/'
healthcheck: '/health'
cpu: 256
memory: 512
platform: linux/x86_64
count: 1この YAML を編集するだけで CPU/メモリの割り当て、ヘルスチェック、スケーリングルールなどを変更できます。AI ツールにこの Manifest の調整を依頼することも容易です。CloudFormation テンプレートを直接書く必要がないため、インフラ設定の試行錯誤もプロトタイピングの速度で回せます。
3. 環境の複製とクリーンアップが簡単
# プレビュー環境を追加
$ copilot env init --name preview
# 不要になったらアプリごと削除
$ copilot app deleteプロトタイプを検証して不要になれば copilot app delete ひとつで関連する AWS リソースがすべて削除されます。VPC、ALB、ECS サービス、ECR リポジトリ、IAM ロールなど、手作業で作成したリソースの消し忘れを心配する必要がありません。これはプロトタイプを大量に試すワークフローで大きな安心材料になります。
実践ワークフロー
AI コーディングツールと Copilot を組み合わせたプロトタイピングの流れを整理します。
Step 1: AI ツールでアプリケーションを生成
Claude Code などの AI コーディングツールでアプリケーションのコードと Dockerfile を生成します。
# Claude Code でプロジェクトを作成する例
$ claude
> Rails で Web アプリケーションを作って。ヘルスチェック用に GET /health も用意して。
> Dockerfile も作って。Step 2: Copilot で初期化・デプロイ
$ copilot init --app my-prototype --name web --type 'Load Balanced Web Service' --deploy--deploy フラグをつければ、初期化からデプロイまで一気に実行されます。VPC、ALB、ECS Fargate サービスの構築には 15〜30 分ほどかかりますが、待っているだけで URL が払い出されます。
Step 3: 動作確認とイテレーション
デプロイされた URL にアクセスして動作を確認します。修正が必要なら AI ツールでコードを修正し、再デプロイします。
# コード修正後
$ copilot svc deploy --name webStep 4: データベースの追加
プロトタイプが進んでデータベースが必要になったら、Copilot の Addon 機能で追加できます。
$ copilot storage init --name mydb --storage-type Aurora --engine PostgreSQL--storage-type Aurora を指定するとデフォルトで Aurora Serverless v2 が構成されます。Serverless v2 は最小 0.5 ACU から必要に応じてスケールするため、リクエストがない時間帯のコストを最小限に抑えられます。プロビジョンドインスタンスを常時稼働させる必要がないため、短期間の検証が目的のプロトタイピングではコスト効率に大きな差が出ます。
copilot app delete で削除すれば課金も止まるので、「とりあえず DB 付きで動かしてみる」ハードルが低いのもポイントです。
Step 5: クリーンアップ
$ copilot app deleteこのサイクルを高速に回せるのが、AI ツール × Copilot の強みです。
運用機能もターミナルで完結
プロトタイプの動作確認に必要な運用操作も、ターミナルから直接実行できます。
# ログをストリーミング表示
$ copilot svc logs --name web --follow
# コンテナに直接接続
$ copilot svc exec --name web
# サービスの状態確認
$ copilot svc status --name webAWS マネジメントコンソールに切り替える必要がないため、AI ツールで開発しながらの検証フローが途切れません。Claude Code のようなターミナルベースの AI ツールとは特に相性が良く、コード生成 → デプロイ → ログ確認 → 修正のループをすべてターミナル内で完結できます。
CI/CD パイプラインへの発展
プロトタイプが本格的なプロジェクトに育ったら、Copilot の Pipeline 機能で CI/CD を自動化できます。
$ copilot pipeline init
$ copilot pipeline deployAWS CodePipeline を利用したパイプラインが構築され、Git プッシュをトリガーにした自動デプロイが設定されます。プロトタイプから本番までのパスが同じツールチェーンで繋がっているのは、「試したものをそのまま育てる」ワークフローにおいて大きな利点です。
まとめ
AWS Copilot CLI は、Dockerfile から数コマンドで ECS/Fargate 環境を構築し、不要になれば一括削除できるツールです。この特性が AI コーディングツールによるプロトタイピングと噛み合います。
| フェーズ | AI ツールの役割 | Copilot の役割 |
|---|---|---|
| コード生成 | アプリケーション + Dockerfile を生成 | — |
| デプロイ | — | copilot init --deploy で AWS に展開 |
| 検証 | — | copilot svc logs / copilot svc exec |
| 修正 | コード修正・機能追加 | copilot svc deploy で再デプロイ |
| 拡張 | DB スキーマ・追加サービス生成 | copilot storage init で Aurora Serverless v2 追加 |
| クリーンアップ | — | copilot app delete で一括削除 |
「ローカルでは動いた」を素早く「AWS でも動いた」に変換できるこのワークフローは、プロトタイプの検証スピードを確実に上げてくれます。
以上、AWS Copilot CLI と AI コーディングツールの組み合わせを紹介した、現場からお送りしました。