AWS Copilot
コンテナアプリケーションを ECS / Fargate に簡単にデプロイするための AWS CLI ツール
AWS Copilot とは
AWS Copilot は、コンテナアプリケーションを ECS / Fargate にデプロイするための CLI ツールである。VPC、ALB、ECS クラスター、ECR リポジトリ、CI/CD パイプラインを自動的に構築する。SAM が Lambda 向けであるように、Copilot は ECS 向けのデプロイツールだ。
SAM との比較
SAM との主な違いを以下に比較する。
| 観点 | AWS Copilot | AWS SAM |
|---|---|---|
| 対象 | ECS / Fargate | Lambda |
| 設定ファイル | manifest.yml |
template.yaml |
| インフラ | 自動構築 (VPC, ALB, ECS) | 自動構築 (API Gateway, Lambda) |
| コンテナ | 必須 | オプション |
| 用途 | 常時稼働サービス | イベント駆動関数 |
基本的なワークフロー
基本的なワークフローの例を示す。
# アプリケーションの初期化
copilot app init myapp
# サービスの作成 (Dockerfile から自動検出)
copilot svc init --name api --svc-type "Load Balanced Web Service"
# 環境の作成 (VPC, ECS クラスター, ALB を自動構築)
copilot env init --name dev
# デプロイ
copilot svc deploy --name api --env dev
manifest.yml
manifest.yml の例を示す。
name: api
type: Load Balanced Web Service
image:
build: Dockerfile
port: 3000
http:
path: '/'
healthcheck: '/healthz'
cpu: 256
memory: 512
count:
range: 1-10
cpu_percentage: 70
variables:
NODE_ENV: production
secrets:
DATABASE_URL: /copilot/myapp/dev/secrets/db-url
サービスタイプ
サービスタイプを以下に示す。
| タイプ | 説明 | 用途 |
|---|---|---|
| Load Balanced Web Service | ALB + Fargate | Web API |
| Backend Service | Fargate (ALB なし) | 内部サービス |
| Worker Service | SQS + Fargate | 非同期処理 |
| Request-Driven Web Service | App Runner | 低トラフィック API |
| Static Site | S3 + CloudFront | 静的サイト |
CI/CD パイプライン
CI/CD パイプラインの例を示す。
copilot pipeline init
copilot pipeline deploy
CodePipeline + CodeBuild のパイプラインが自動構築され、Git プッシュで自動デプロイされる。
Copilot を使うべきケース
コンテナアプリを ECS にデプロイしたい場合や、VPC・ALB・ECS クラスターの構築を自動化したい小〜中規模チームに適する。一方、Lambda ベースのサーバーレス構成や、細かいインフラ制御が必要な場合、既存の ECS クラスターがある場合には向かない。
AWS Copilot の背景や設計思想は関連書籍に詳しい。
この記事は役に立ちましたか?
関連用語
コンテナ
アプリケーションとその依存関係をパッケージ化し、環境に依存しない一貫した実行環境を提供する仮想化技術
ECR
AWS のマネージドコンテナレジストリで、Docker イメージを安全に保存・管理・配信する
Dockerfile
Docker イメージのビルド手順を記述するテキストファイルで、アプリケーションの実行環境を再現可能にする
CodePipeline
AWS のマネージド CI/CD サービスで、ソースからデプロイまでのパイプラインを自動化する
ECS
AWS のマネージドコンテナオーケストレーションサービスで、Docker コンテナを実行・管理する
CI/CD
コードの変更を自動的にビルド・テスト・デプロイするパイプライン
関連する記事
OS・低レイヤー本ガイド - コンピュータの仕組みを学ぶ技術書の選び方
OS、コンパイラ、ネットワークなど低レイヤーを学べる技術書の 4 ジャンルと、どこから始めるべきかの指針、賞味期限の見極め方を紹介します。
技術書の読む順番戦略 - 複数冊を組み合わせて理解を加速させる
技術書を 1 冊ずつ読むのではなく、複数冊を戦略的に組み合わせることで理解の深さと速度を飛躍的に高める方法を解説します。
あの有名 OSS のコードは、この本の影響を受けている
広く使われているオープンソースソフトウェアの設計には、特定の技術書の影響が色濃く反映されています。OSS のコードと技術書の関係を知ると、両方の理解が深まります。