ecs-formation is a tool for defining several Docker continers and clusters on Amazon EC2 Container Service(ECS).
- Define services on ECS cluster, and Task Definitions.
- Supports YAML definition like docker-compose. Be able to run ecs-formation if copy docker-compose.yml(formerly fig.yml).
- Manage ECS Services and Task Definitions by AWS API.
ecs-formation is written by Go. Please run go get
.
$ go get github.com/stormcat24/ecs-formation
ecs-formation requires environment variables to run, as follows.
- AWS_ACCESS_KEY: AWS access key
- AWS_SECRET_ACCESS_KEY: AWS secret access key
- AWS_REGION: Target AWS region name
Make working directory for ecs-formation. This working directory should be managed by Git.
$ mkdir -p path-to-path/test-ecs-formation
$ mkdir -p path-to-path/test-ecs-formation/task
$ mkdir -p path-to-path/test-ecs-formation/cluster
You need to create ECS cluster in advance. And also, ECS instance must be join in ECS cluster.
Make Task Definitions file in task directory. This file name is used as ECS Task Definition name.
(path-to-path/test-ecs-formation/task) $ vim test-definition.yml
nginx:
image: nginx:latest
ports:
- 80:80
environment:
PARAM1: value1
PARAM2: value2
links:
- api
memory: 512
cpu_units: 512
essential: true
api:
image: your_namespace/your-api:latest
ports:
- 8080:8080
memory: 1024
cpu_units: 1024
essential: true
links:
- redis
redis:
image: redis:latest
ports:
- 6379:6379
memory: 512
cpu_units: 512
essential: true
Make Service Definition file in cluster directory. This file name must be equal ECS cluster name.
For example, if target cluster name is test-cluster
, you need to make test-cluster.yml
.
(path-to-path/test-ecs-formation/cluster) $ vim test-cluster.yml
test-service:
task_definition: test-definition
desired_count: 1
Show update plan.
(path-to-path/test-ecs-formation $ ecs-formation task plan
Apply definition.
(path-to-path/test-ecs-formation $ ecs-formation task apply
Show update plan.
(path-to-path/test-ecs-formation $ ecs-formation cluster plan
Apply definition.
(path-to-path/test-ecs-formation $ ecs-formation cluster apply
See LICENSE.
Copyright © Akinori Yamada(@stormcat24). All Rights Reserved.