まず、スタートページに行き、「Get Started」をクリックします。
「Step 1: Welcome to Amazon ECS」のページで「Custom」を選択します。「Amazon ECS Sample」とは、AWSが用意しているサンプルタスク定義を使い、「Custom」はユーザーのタスク定義を使うという意味です。
「Step 2: Create custom Task Definition」のページで、「Task Definition Name」を設定し、「Add Container Definition」をクリックします。なお、「Container Definitions」はコンテナー定義の指定で、「Volumes」はホストとコンテナーのディスクを共有するホスト側の設定です。
下記のようにタスクの定義を設定し「ADD」をクリックします。
タスクの定義を決定したら「Next Step」をクリックします。
「Step 3: Schedule Tasks」では、Serviceを作成し「Next Step」をクリックします。「Run Tasks Once 」はSchedulerによって1回は実行されるが、その後再実行は行われないコンテナーで、「Create a service」は常時実行するよう、Schedulerが監視するコンテナーです。いずれかを選択します。
「Desired number of Tasks」はTaskを実行を希望するContainer instance数です。「Create a service」を選んだ場合、Elastic Load Balancingの設定が行えます。
「Step 4: Configure Cluster」では、Clusterの設定を行い「Review&Launch」をクリックします。「Number of Instaces」はAuto Scalingに設定するContainer instance数です。「Security Ingress CIDR」はセキュリティを許可するCIDR(Classless Inter-Domain Routing)アドレスです。デフォルトは自分自身のみで、自動生成されるセキュリティグループで設定されます。
「IAM Role Information」では、「Create IAM Role」でロールを新規作成できます。ここでは、ECSのfull accessを許可するロール「ec2-ec2-role」を作成し設定しています。
「Step 5: Review」では設定内容を確認し、「Launch Instance&Run Service」をクリックします。
「AWS CloudFormation」(以下、CloudFormation)でVPNやEC2などが作成されることを確認します。
また、コンテナー作成後にブラウザーでアクセスし、正常に表示されることを確認します。
なお、「Step 3: Schedule Tasks」で設定した「Desired number of Tasks」は「Disired count」としてServiceの値に設定されます。
「Step 4: Configure Cluster」で設定した「Number of Instaces」は「Auto Scaling」に設定されます。
下記は、今回ECSでコンテナーを作成した際の設定ファイルです。
{
""family"": ""HTTPContainer"",
""containerDefinitions"": [
{
""name"": ""HTTPCon"",
""image"": ""{ユーザー名}/docker-repo:latest"",
""cpu"": ""10"",
""memory"": ""512"",
""entryPoint"": [],
""environment"": [
{
""name"": ""Version"",
""value"": ""latest""
},
{
""name"": ""Name"",
""value"": ""HTTPCon""
}
],
""command"": [],
""portMappings"": [
{
""hostPort"": ""80"",
""containerPort"": ""80""
}
],
""volumesFrom"": [],
""links"": [],
""mountPoints"": [],
""essential"": ""true""
}
],
""volumes"": []
}
下記は、ECSでコンテナーを作成したときにCloudFormationで作成されたインスタンスの一覧です。
| Logical ID | Physical ID | Type |
|---|---|---|
| InternetGateway | igw-47b84622 | AWS::EC2::InternetGateway |
| Vpc | vpc-0fe33d6a | AWS::EC2::VPC |
| ElbSecurityGroup | sg-e819888d | AWS::EC2::SecurityGroup |
| PubSubnetAz2 | subnet-22379855 | AWS::EC2::Subnet |
| AttachGateway | EC2Co-Attac-1NG7CWOTF0XZ7 | AWS::EC2::VPCGatewayAttachment |
| PubSubnetAz1 | subnet-6c844435 | AWS::EC2::Subnet |
| RouteViaIgw | rtb-9042e1f5 | AWS::EC2::RouteTable |
| PublicRouteViaIgw | EC2Co-Publi-70O78UUHSBC2 | AWS::EC2::Route |
| PubSubnet2RouteTableAssociation | rtbassoc-bbcb63de | AWS::EC2::SubnetRouteTableAssociation |
| PubSubnet1RouteTableAssociation | rtbassoc-bacb63df | AWS::EC2::SubnetRouteTableAssociation |
| EcsElasticLoadBalancer | EC2Contai-EcsElast-198KJGQ2I7790 | AWS::ElasticLoadBalancing::LoadBalancer |
| EcsSecurityGroup | sg-f6198893 | AWS::EC2::SecurityGroup |
| EcsInstanceLc | EC2ContainerService-default-a19f4397-c985-4df6-ba15-e0b8f68d38e9-EcsInstanceLc-XY0G9L02YZK2 | AWS::Auto Scaling::LaunchConfiguration |
| EcsInstanceAsg | EC2ContainerService-default-a19f4397-c985-4df6-ba15-e0b8f68d38e9-EcsInstanceAsg-8UWCIE3HITI | AWS::Auto Scaling::Auto ScalingGroup |
所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門
Linux/OSSに不慣れでも大丈夫! WindowsでDockerを扱う際のポイント
Docker代替のコンテナーランタイム「Rocket」をCoreOSが公開
Docker、そしてCloud FoundryとPaaSの価値とは
レッドハットが発表したOpenShift Enterprise 3は「Dockerを知らなくても使える」基盤
米グーグルのDockerコンテナ管理サービスが一般提供開始Copyright © ITmedia, Inc. All Rights Reserved.