【AWS】docker-compose.ymlからAWS ECSのタスク定義(task definition)を作成する方法【ECS CLI】
やること
docker-compose.ymlからAWS ECSのタスク定義(task definition)を作成する方法
ecs-cliのinstall
$ brew install amazon-ecs-cli
※ ~/.aws/credentials
にsecret keyなどを記載しておきましょう
docker-compose.ymlとDockerfileを作成
ローカルでも使用できるdocker-compose.ymlを元に、タスク定義を作成できます。
docker-compose.yml
version: '3'
services:
app:
build: .
image: <image url>
container_name: lulu
logging:
driver: awslogs
options:
awslogs-group: /ecs/lulu
awslogs-region: ap-northeast-1
awslogs-stream-prefix: lulu
Dockerfile
FROM ubuntu
CMD echo 'lulu'
ecs-params.ymlを作成
ECSに必要なパラメータ情報を記載した設定ファイルを作成します。
version: 1
task_definition:
ecs_network_mode: awsvpc
task_execution_role: ecsTaskExecutionRole
task_size:
cpu_limit: 256
mem_limit: 512
run_params:
network_configuration:
awsvpc_configuration:
subnets:
- subnet_id_1
- subnet_id_2
security_groups:
- security_group_1
- security_group_2
assign_public_ip: ENABLED
ecs-cliを使って、タスク定義(task definition)を作成
$ ecs-cli compose -p test-lulu -c test-cluster -f ./docker-compose.yml --ecs-params ecs-params.yml create --launch-type FARGATE
各optionについて
option | 初期値 | 使いみち |
---|---|---|
-p | 現在のディレクトリ名 | プロジェクト名(task名になる) |
-f | ./docker-compose.yml | Docker Composeファイルを指定 |
--ecs-params | ./ecs-params.yml | ecsパラメータを指定 |
-c | クラスター名を指定する | |
--launch-type | 起動タイプを設定 |