ECSとはElastic Container Registryの略、Dockerのコンテナイメージを保存しておくレジストリ
Edit permission
$ chmod 400 KEYPAIR.pem
$ ssh -i KEYPAIR.pem ec2-user@PublicIP
$ docker pull amazon/amazon-ecs-sample
Using default tag: latest
latest: Pulling from amazon/amazon-ecs-sample
72d97abdfae3: Pull complete
9db40311d082: Pull complete
991f1d4df942: Pull complete
9fd8189a392d: Pull complete
Digest: sha256:36c7b282abd0186e01419f2e58743e1bf635808231049bbc9d77e59e3a8e4914
Status: Downloaded newer image for amazon/amazon-ecs-sample:latest
docker.io/amazon/amazon-ecs-sample:latest
$ REPOSITORY=your-repository-uri
$ docker tag amazon/amazon-ecs-sample:latest $REPOSITORY
$ EC2_REGION=`wget -q -O – http://169.254.169.254/latest/meta-data/placement/availability-zone | sed s/.$//`
$ `aws ecr get-login –region $EC2_REGION –no-include-email`
$ docker push $REPOSITORY
ECS
-> Task definition -> EC2
{ "family": "ecs-demo", "containerDefinitions": [ { "volumesFrom": [], "memory": 128, "extraHosts": null, "dnsServers": null, "disableNetworking": null, "dnsSearchDomains": null, "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ], "hostname": null, "essential": true, "entryPoint": null, "mountPoints": [], "name": "ecs-sample", "ulimits": null, "dockerSecurityOptions": null, "environment": [], "links": null, "workingDirectory": null, "readonlyRootFilesystem": null, "image": "YOUR-REPOSITORY-URI:latest", "command": null, "user": null, "dockerLabels": null, "logConfiguration": null, "cpu": 0, "privileged": null } ], "volumes": [] }
ECSCluster
ECRからpushしてimageを作ることが出来る
なるほど、ECSとECRはなんと無くわかったので、後は実践するのみですね。