Skip to content

toyofukux/ecs-formation

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ecs-formation

Circle CI License: MIT

ecs-formation is a tool for defining several Docker continers and clusters on Amazon EC2 Container Service(ECS).

Features

  • 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.

Usage

Installation

ecs-formation is written by Go. Please run go get.

$ go get github.com/stormcat24/ecs-formation

Define environment variables

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

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

Make ECS Cluster

You need to create ECS cluster in advance. And also, ECS instance must be join in ECS cluster.

Define Task Definitions

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

Define Services on Cluster

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

Manage Task Definitions

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

Manage Services on Cluster

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

License

See LICENSE.

Copyright © Akinori Yamada(@stormcat24). All Rights Reserved.

About

Tool to build Docker cluster composition for Amazon EC2 Container Service(ECS)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.7%
  • Makefile 0.3%