概要
ECS CLI を使って Docker ボリュームを使用したコンテナの立ち上げ方法。
クラスターの作成
まずはプロファイルを設定してクラスターを作成します。
AWS 公式のチュートリアルでもおなじみ。
ecs-cli configure profile --profile-name ecs-example-profile --access-key $AWS_ACCESS_KEY_ID --secret-key $AWS_SECRET_ACCESS_KEY
ecs-cli configure --cluster ecs-example --default-launch-type EC2 --region ap-northeast-1 --config-name ecs-example
そして次のコマンドを実行するとクラスターとなる EC2 が立ち上がります。
1 行目では AWS CLI
を使ってキーペアを生成しています。
aws ec2 create-key-pair --key-name MyKeyPair --query 'KeyMaterial' --output text > MyKeyPair.pem
ecs-cli up --keypair MyKeyPair --capability-iam --size 1 --instance-type t2.medium --cluster-config ecs-example --ecs-profile ecs-example-profile
設定ファイルの作成
次に Docker コンテナを構成する設定ファイルを作成します。
# docker-compose.yml
version: "3"
services:
database:
image: postgres
ports:
- "8086:8086"
volumes:
- database:/var/lib/postgresql/data
logging:
driver: awslogs
options:
awslogs-group: ecs-exmaple
awslogs-region: ap-northeast-1
awslogs-stream-prefix: database
volumes:
database:
Docker ボリュームを ECS で利用するには別に ECS 用の設定ファイルに追記する必要があります。
以下の内容で ecs-params.yml
というファイルを作成してください。
# ecs-params.yml
version: 1
task_definition:
services:
database:
cpu_shares: 100
mem_limit: 524288000
docker_volumes:
- name: database
scope: shared
autoprovision: true
driver: local
labels:
database: database_name
構成ファイルのデプロイ
設定ファイルを作成したら、compose up
コマンドを使ってデプロイするだけです。
ecs-cli compose up --create-log-groups --cluster-config ecs-example --ecs-profile ecs-example-profile
コンテナを停止するには以下のコマンドを実行します。
ecs-cli compose stop --cluster-config ecs-example --ecs-profile ecs-example-profile
最後に、今回作成したクラスターは以下のコマンドでクリーンアップできます。
ecs-cli down --force --cluster-config ecs-example --ecs-profile ecs-example-profile