Deprecated This repository is no more mentenanced.
The tools to manage EC2 Container Service(ECS)
Today, we use Docker containers to develop Web Services, and we get start moving towards an Immutable Infrastructure with ECS and screwdriver
!!
This repository depends on AWS, ECS specification.
- task
- show the list of task definitions
- register task new definition
- describe task definition
- service
- show the list of services
- create service
- update service
- describe service
- cluster
- show the list of clusters
- create cluster
- delete cluster
- Auto Scaling
- ELB
- Blue-Green Deployment
And you have some suggestion, create new Issue :)
go get github.com/takasing/screwdriver
The configurations of screwdriver
command consists of environment variables and yml
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
Enable to use Golang template.
nginx:
image: nginx:{{ .NGINX_IMAGE_TAG }}
cpu: 128
memory: 64
portmappings:
- containerport: 80
hostPort: 80
essential: true
api:
image: golang:{{ .GOLANG_IMAGE_TAG }}
cpu: 128
memory: 64
portmappings:
- containerport: 3000
hostport: 3000
essential: true
Check ecs.ContainerDefinition, and Lowercase fields such as PortMappings
to portmappings
screwdriver
picks up environment variables start with SCREW_
prefix.
If you define SCREW_NGINX_IMAGE_TAG
environment variable, you can use NGINX_IMAGE_TAG
in yml.
usage: screwdriver [--version] [--help] <command> [<args>]
Available commands are:
cluster Operate ECS cluster
service Operate ECS service
task Operate ECS task
Usage: screwdriver task <subcommand> [options]
Subcommands:
defs show the list of task definitions
register register task definition from configration file
Usage: screwdriver service <subcommand> [options]
Subcommands:
list show the list of ECS services
create create ECS service
update update ECS service
Usage: screwdriver cluster <subcommand> [options]
Subcommands:
list show the list of ECS cluster
create create ECS cluster
delete delete ECS service