ECR
イメージ更新
ECRリポジトリ 12345.dkr.ecr.ap-northeast-1.amazonaws.com/hogeは、AWSコンソール(ブラウザ上)から作りました
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | // dockerビルドする(例: hogeイメージをECRにPush)$ docker build -t hoge:latest .
 
 // awsログイン
 $ export AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxxxxxx
 $ export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 $ export AWS_DEFAULT_REGION=ap-northeast-1
 $ docker run --rm -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}" mesosphere/aws-cli ecr get-login --no-include-email
 
 // ECRにPush
 $ docker tag hoge:latest 12345.dkr.ecr.ap-northeast-1.amazonaws.com/hoge:latest
 $ docker push 12345.dkr.ecr.ap-northeast-1.amazonaws.com/hoge:latest
 
 // 例: 動作確認
 $ docker run --rm 12345.dkr.ecr.ap-northeast-1.amazonaws.com/hoge:latest python testcase/solo_get_code.py
 
 | 
ECS
タスク定義の更新手順
タスク定義 fargate-hogeは、初回のみAWSコンソール(ブラウザ上)から作りました
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | // タスク定義のダウンロード$ aws ecs describe-task-definition --task-definition fargate-hoge > fargate-hoge.json
 $ cp fargate-hoge.json fargate-hoge.json.bak
 
 // describe-task-definitionしたタスク定義はそのまま使えないので加工する(※1)
 $ cat fargate-hoge.json.bak | jq .taskDefinition | jq 'del(.["status","compatibilities","taskDefinitionArn","requiresAttributes","revision"])' > fargate-hoge.json
 
 // タスク定義の編集
 $ vim fargate-hoge.json
 
 // タスク定義の登録
 $ aws ecs register-task-definition --cli-input-json file://$PWD/fargate-hoge.json
 
 | 
(※1) 参考: describe-task-definitionで取得したJSONはそのままではregister-task-definitionで登録できないお話 | Developers.IO
タスク実行
クラスタ hoge-clusterやネットワークまわりは、AWSコンソール(ブラウザ上)から作りました
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | {"taskDefinition": "fargate-hoge:1",
 "cluster": "hoge-cluster",
 "networkConfiguration": {
 "awsvpcConfiguration": {
 "subnets": ["subnet-xxxxxxxxxxxxxxxxx"],
 "securityGroups": ["sg-xxxxxxxx"],
 "assignPublicIp": "ENABLED"
 }
 },
 "launchType": "FARGATE"
 }
 
 
 // タスク実行(--countに起動数)
 $ aws ecs run-task --cli-input-json file://$PWD/fargate-hoge.json --count 2 | jq .tasks[].taskArn
 
 |