EC2 Container Service (ECS)のプレビューが通りましたので、早速Getting Started通りではありますが、試してみました。 プレビュー用のAWS CLIをまずインストール。AWS CLIは、1.6.5のようです。
$ aws --version aws-cli/1.6.5 Python/2.7.5 Linux/3.10.0-123.el7.x86_64
Clusterをまず作成。もちろんap-northeast-1ではエラー。
$ aws ecs create-cluster --cluster-name MyCluster --region ap-northeast-1 HTTPSConnectionPool(host='ecs.ap-northeast-1.amazonaws.com', port=443): Max retries exceeded with url: / (Caused by <class 'socket.gaierror'>: [Errno -2] Name or service not known)
us-east-1で無事ACTIVEに。
$ aws ecs create-cluster --cluster-name MyCluster --region us-east-1 { "cluster": { "clusterName": "MyCluster", "status": "ACTIVE", "clusterArn": "arn:aws:ecs:us-east-1:XXXXXXXXXXX:cluster/MyCluster" } }
CommunityAMI ami-34ddbe5cを使って、ECS用に最適化したインスタンスをLaunchします。 cloud-initに以下を入力
#!/bin/bash echo ECS_CLUSTER=MyCluster >> /etc/ecs/ecs.config
root volume は、30GBがデフォルトで設定されています。
aws ecs list-container-instances --cluster MyCluster --region us-east-1 { "containerInstanceArns": [ "arn:aws:ecs:us-east-1:XXXXXXXXXXXXXX:container-instance/be81fda7-5486-4584-89d0-2f8bff6119d3" ] }
これですが、インスタンスタイプにt2.microを使ったためかもしれませんが、はじめMISSINGでしたが、無事ACTIVEに。
aws ecs describe-container-instances --cluster MyCluster --container-instances be81fda7-5486-4584-89d0-2f8bff6119d3 --region us-east-1 { "failures": [], "containerInstances": [ { "status": "ACTIVE", "registeredResources": [ { "integerValue": 1024, "longValue": 0, "type": "INTEGER", "name": "CPU", "doubleValue": 0.0 }, { "integerValue": 996, "longValue": 0, "type": "INTEGER", "name": "MEMORY", "doubleValue": 0.0 }, { "name": "PORTS", "longValue": 0, "doubleValue": 0.0, "stringSetValue": [ "2376", "22", "51678", "2375" ], "type": "STRINGSET", "integerValue": 0 } ], "ec2InstanceId": "i-0000000000", "agentConnected": true, "containerInstanceArn": "arn:aws:ecs:us-east-1:XXXXXXXXXXX:container-instance/be81fda7-5486-4584-89d0-2f8bff6119d3", "remainingResources": [ { "integerValue": 1024, "longValue": 0, "type": "INTEGER", "name": "CPU", "doubleValue": 0.0 }, { "integerValue": 996, "longValue": 0, "type": "INTEGER", "name": "MEMORY", "doubleValue": 0.0 }, { "name": "PORTS", "longValue": 0, "doubleValue": 0.0, "stringSetValue": [ "2376", "22", "51678", "2375" ], "type": "STRINGSET", "integerValue": 0 } ] } ] }
ECS用インスタンスの中身を確認しました。
$ which docker /usr/bin/docker $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 844d5e0fe2fd amazon/amazon-ecs-agent:latest "/agent" 6 minutes ago Up 6 minutes 127.0.0.1:51678->51678/tcp ecs-agent
dockerのバージョンは、1.3.3
$ docker -v Docker version 1.3.3, build c78088f/1.3.3
後ほどいろいろ検証してみたいと思います。
※Preview通っていないアカウントでは、もちろん利用できません。
$ /home/hiruta/.local/lib/aws/bin/aws ecs create-cluster --cluster-name MyCluster --region us-east-1 A client error (OptInRequired) occurred when calling the CreateCluster operation: The AWS Access Key Id needs a subscription for the service