クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

EC2 Container Serviceファーストインプレッション #jawsug


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

コメントは受け付けていません。