Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

ecs-cli up

クラスターのセットアップに必要な Amazon ECS クラスター (まだない場合) と AWS リソースを作成します。

このコマンドは、amazon-ecs-cli-setup-cluster_name という名前の新しい AWS CloudFormation スタックを作成します。AWS マネジメントコンソール でスタック作成の進行状況を表示できます。

重要

記載されている機能の一部は、ECS CLI の最新バージョンでのみ使用可能です。最新バージョンを取得するには、「Amazon ECS CLI のインストール」を参照してください。

構文

ecs-cli up [--capability-iam | --instance-role instance-profile-name] [--keypair keypair_name] [--size n] [--azs availability_zone_1,availability_zone_2] [--security-group security_group_id[,security_group_id[,...]]] [--cidr ip_range] [--port port_number] [--subnets subnet_1,subnet_2] [--vpc vpc_id] [--extra-user-data string] [--instance-type instance_type] [--image-id ami_id] [--launch-type launch_type] [--no-associate-public-ip-address] [--force] [--tags key1=value1,key2=value2] [--cluster cluster_name] [--region region] [--empty] [--verbose] [--help]

オプション

名前 説明

--capability-iam

このコマンドが IAM リソースを作成できることを確認します。

注記

このパラメータは、EC2 起動タイプを使用するタスクでのみサポートされています。

このパラメータは、インスタンスプロファイル名に --instance-role を指定しない場合に必須です。両方のオプションを指定することはできません。

必須: いいえ

--keypair keypair_name

既存の Amazon EC2 キーペアの名前を指定して、クラスター内の EC2 インスタンスへの SSH アクセスを有効にします。

注記

このパラメータは、EC2 起動タイプを使用するタスクでのみサポートされています。

キーペアの作成の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Amazon EC2 でのセットアップ」を参照してください。

型: 文字列

必須: いいえ

--size n

起動してクラスターに登録するインスタンスの数を指定します。

注記

このパラメータは、EC2 起動タイプを使用するタスクでのみサポートされています。

タイプ: 整数

デフォルト: 1

必須: いいえ

--azs availability_zone_1,availability_zone_2

サブネットを作成する 2 つの VPC アベイラビリティーゾーンのカンマ区切りのリストを指定します (これらのゾーンのステータスは available であることが必要です)。このオプションは、--vpc オプションで VPC ID を指定しない場合にお勧めします。

警告

このオプションを空白のままにすると、ランダムに選択されたゾーンが利用できないときにコンテナインスタンスを起動できなくなることがあります。

型: 文字列

必須: いいえ

--security-group security_group_id[,security_group_id[,...]]

コンテナインスタンスに関連付ける既存のセキュリティグループをカンマ区切りリストで指定します。ここでセキュリティグループを指定しない場合、新しいセキュリティグループが作成されます。

詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「セキュリティグループ」を参照してください。

必須: いいえ

--cidr ip_range

クラスター内のコンテナインスタンスに使用するセキュリティグループの CIDR/IP 範囲を指定します。

注記

既存のセキュリティグループが --security-group オプションで指定されている場合、このパラメータは無視されます。

タイプ: CIDR/IP 範囲

デフォルト: 0.0.0.0/0

必須: いいえ

--port port_number

クラスター内のコンテナインスタンスに使用するセキュリティグループで開くポートを指定します。

注記

既存のセキュリティグループが --security-group オプションで指定されている場合、このパラメータは無視されます。

タイプ: 整数

デフォルト: 80

必須: いいえ

--subnets subnet_1,subnet_2

コンテナインスタンスを起動する既存の VPC サブネット ID のカンマ区切りのリストを指定します。

型: 文字列

必須: VPC で --vpc オプションを指定する場合、このオプションは必須です。

--vpc vpc_id

コンテナインスタンスを起動する既存の VPC の ID を指定します。VPC ID を指定する場合、その VPC 内の既存のサブネットのリストを --subnets オプションで指定する必要があります。VPC ID を指定しない場合、2 つのサブネットを含む新しい VPC が作成されます。

型: 文字列

必須: いいえ

--extra-user-data string

コンテナインスタンスの追加ユーザーデータを指定します。ファイルには、シェルスクリプトまたは cloud-init ディレクティブを使用できます。これらは、インスタンスをクラスターに参加させる Amazon ECS CLI によって提供されるユーザーデータとともに、MIME マルチパートアーカイブにパッケージ化されています。詳細については、「ユーザーデータの指定」を参照してください。

型: 文字列

必須: いいえ

--instance-type instance_type

コンテナインスタンスの Amazon EC2 インスタンスタイプを指定します。A1 インスタンスタイプ (例: a1.medium) を指定し、--image-id パラメータを省略する場合、ECS CLI はコンテナインスタンスに Amazon ECS-optimized Amazon Linux 2 (arm64) AMI AMI ID を使用します。

注記

このパラメータは、EC2 起動タイプを使用するタスクでのみサポートされています。

EC2 インスタンスタイプの詳細については、「Amazon EC2 インスタンス」を参照してください。

型: 文字列

デフォルト: t2.micro

必須: いいえ

--image-id ami_id

コンテナインスタンスに使用する Amazon EC2 AMI ID を指定します。

AMI ID を指定しない場合、Amazon ECS CLI で、クラスターリソース作成プロセス時に Systems Manager パラメータストア API をクエリすることで、安定している最新の Amazon ECS-optimized Amazon Linux 2 AMI を自動的に取得します。このためには、使用しているユーザーアカウントに、必要な Systems Manager アクセス許可を付与する必要があります。詳細については、「Amazon ECS-Optimized AMI メタデータの取得」を参照してください。

--instance-type パラメータの A1 インスタンスタイプを指定し、--image-id パラメータを省略する場合、ECS CLI はコンテナインスタンスに Amazon ECS-optimized Amazon Linux 2 (arm64) AMI AMI ID を使用します。

注記

このパラメータは、EC2 起動タイプを使用するタスクでのみサポートされています。

型: 文字列

デフォルト: 指定したリージョンを対象として、Amazon ECS に最適化された、安定している最新の AMI。

必須: いいえ

--no-associate-public-ip-address

この VPC で新しいインスタンスにパブリック IP アドレスを割り当てないでください。このオプションを指定しない限り、この VPC で新しいインスタンスには、パブリック IP アドレスが自動的に割り当てられます。

注記

このパラメータは、EC2 起動タイプを使用するタスクでのみサポートされています。

必須: いいえ

--force, -f

現在の設定と一致する既存のリソースの再作成を強制します。このオプションは、失敗した前回の試みから古いリソースをクリーンアップする場合に便利です。

必須: いいえ

--tags key1=value1,key2=value2

AWS リソースに適用されるメタデータを指定します。各タグはキーとオプションの値で構成されます。タグは次の形式を使用します: key1=value1,key2=value2,key3=value3。詳細については、「リソースのタグ付け」を参照してください。

タイプ: キー値ペア

必須: いいえ

--instance-role, -f instance-profile-name

クラスター内のインスタンスにカスタム IAM インスタンスプロファイル名を指定します。

注記

このパラメータは、EC2 起動タイプを使用するタスクでのみサポートされています。

--capability-iam オプションを指定しない場合、このパラメータは必須です。両方のオプションを指定することはできません。

必須: いいえ

--launch-type launch_type 使用する起動タイプを指定します。使用できるオプションは、FARGATE または EC2 です。起動タイプの詳細については、「Amazon ECS 起動タイプ」を参照してください。

これにより、クラスタ設定に格納されているデフォルトの起動タイプが上書きされます。

型: 文字列

必須: いいえ

--verbose, --debug

デバッグログを有効にします。これにより、問題の診断に役立つ、より詳細なコマンド出力が得られます。

必須: いいえ

--region, -r region

使用する AWS リージョンを指定します。configure コマンドを使用して設定したクラスターにデフォルトが設定されます。

型: 文字列

必須: いいえ

--cluster-config cluster_config_name

使用する Amazon ECS クラスター設定の名前を指定します。デフォルトでは、デフォルトとして設定するクラスター設定が指定されます。

型: 文字列

必須: いいえ

--ecs-profile ecs_profile

使用する Amazon ECS プロファイル設定の名前を指定します。configure profile コマンドを使用して設定したプロファイルにデフォルト設定されます。

型: 文字列

必須: いいえ

--aws-profile aws_profile

使用する AWS プロファイルを指定します。~/.aws/credentials という名前の既存のプロファイルから、AWS 認証情報を使用することができます。

型: 文字列

必須: いいえ

--cluster, -c cluster_name

使用する Amazon ECS クラスター名を指定します。configure コマンドを使用して設定したクラスターにデフォルトが設定されます。

型: 文字列

必須: いいえ

--empty, -e

ECS クラスターがリソースなしで作成されることを指定します。リソースを作成する他のフラグも指定された場合、それらは無視され、警告が表示されます。

必須: いいえ

--help, -h

指定したコマンドのヘルプテキストを表示します。

必須: いいえ

ユーザーデータの指定

EC2 起動タイプを使用するタスクを起動する場合、ECS CLI は常に次のユーザーデータを含むコンテナインスタンスを作成します。

#!/bin/bash echo ECS_CLUSTER={ clusterName } >> /etc/ecs/ecs.config

このユーザーデータは、コンテナインスタンスが ECS クラスターに参加するように指示します。オプションで、--extra-user-data フラグを使用して追加のユーザーデータを含めることができます。フラグは複数回指定できます。たとえば、追加のユーザーデータをシェルスクリプトと cloud-init ディレクティブにできます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Linux インスタンスでの起動時のコマンドの実行」を参照してください。

Amazon ECS CLI はユーザーデータを取得し MIME マルチパートアーカイブにパックします。これは、コンテナインスタンスの cloud-init で使用できます。Amazon ECS CLI では、既存の MIME マルチパートアーカイブを --extra-user-data で渡すことができます。Amazon ECS CLI は、既存のアーカイブを解凍し、最終的なアーカイブに再パックします (すべてのヘッダーおよびコンテンツ型情報を保持)。次に例を示します。

ecs-cli up \ --capability-iam \ --extra-user-data my-shellscript \ --extra-user-data my-cloud-boot-hook \ --extra-user-data my-mime-multipart-archive \ --launch-type EC2

リソースのタグ付け

Amazon ECS CLI では AWS リソースにリソースタグの形式でメタデータを追加できます。各タグはキーとオプションの値で構成されます。リソースタグはコスト配分、オートメーション、アクセスコントロールに使用できます。詳細については、「AWS タグ付け戦略」を参照してください。

ecs-cli up コマンドを使用するときに リソースタグを指定する場合、Amazon ECS クラスターだけでなく次の AWS CloudFormation スタックにより作成されたリソースもタグ付けできます。

  • コンテナインスタンス

    注記

    コンテナインスタンスにタグを許可するには、新しい Amazon ECS リソース ARN フォーマットを選択する必要があります。詳細については、「Amazon リソースネーム (ARN) と ID」を参照してください。

  • VPC

  • Subnets

  • インターネットゲートウェイ

  • ルートテーブル

  • セキュリティグループ

  • Autoscaling グループ

注記

Autoscaling グループでは、ECS CLI は Name タグを追加します。このタグの値は ECS Instance - <CloudFormation stack name> で、コンテナインスタンスに伝播されます。この動作は、独自の Name タグを指定することで上書きできます。

EC2 起動タイプを使用したタスク用のクラスターの作成

この例では、4 つの c4.large コンテナインスタンスで構成されるクラスターを作成し、id_rsa という名前の EC2 キーペアを使用するように設定します。

ecs-cli up --keypair id_rsa --capability-iam --size 4 --instance-type c4.large --launch-type EC2

出力:

INFO[0001] Using recommended Amazon Linux AMI with ECS Agent 1.17.3 and Docker version 17.12.1-ce INFO[0000] Created cluster cluster=ecs-cli-ec2-demo INFO[0000] Waiting for your cluster resources to be created INFO[0001] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0061] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0121] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0181] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS Cluster creation succeeded. VPC created: vpc-abcd1234 Security Group created: sg-abcd1234 Subnets created: subnet-abcd1234 Subnets created: subnet-dcba4321

Amazon ECS-optimized Amazon Linux 2 (arm64) AMI を使用するコンテナインスタンスのあるクラスターを作成する

この例では、Amazon ECS-optimized Amazon Linux 2 (arm64) AMI を使用する 1 つの a1.medium コンテナインスタンスのクラスターが表示されます。

ecs-cli up --capability-iam --instance-type a1.medium --launch-type EC2 --region us-east-2

出力:

WARN[0000] You will not be able to SSH into your EC2 instances without a key pair. INFO[0000] Using Arm ecs-optimized AMI because instance type was a1.medium INFO[0001] Using recommended Amazon Linux 2 AMI with ECS Agent 1.25.3 and Docker version 18.06.1-ce INFO[0000] Created cluster cluster=ecs-cli-ec2-demo INFO[0000] Waiting for your cluster resources to be created INFO[0001] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0061] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0121] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS INFO[0181] Cloudformation stack status stackStatus=CREATE_IN_PROGRESS Cluster creation succeeded. VPC created: vpc-abcd1234 Security Group created: sg-abcd1234 Subnets created: subnet-abcd1234 Subnets created: subnet-dcba4321

Fargate 起動タイプを使用したタスク用のクラスターの作成

この例では、Fargate タスク用のクラスターを作成し、2 つのサブネットを含む新しい VPC を作成します。

ecs-cli up --launch-type FARGATE

出力:

INFO[0001] Created cluster cluster=ecs-cli-fargate-demo region=us-west-2 INFO[0003] Waiting for your cluster resources to be created... INFO[0003] Cloudformation stack status stackStatus="CREATE_IN_PROGRESS" INFO[0066] Waiting for your cluster resources to be created... INFO[0066] Cloudformation stack status stackStatus="CREATE_IN_PROGRESS" VPC created: vpc-abcd1234 Subnets created: subnet-abcd1234 Subnets created: subnet-dcba4321 Cluster creation succeeded.

空のクラスターの作成

この例では、リソースがない、ecs-cli-empty-demo という名前の空のクラスターが表示されます。

ecs-cli up --empty --cluster ecs-cli-empty-demo

出力:

INFO[0000] Created cluster cluster=ecs-cli-empty-demo region=us-east-1 Cluster creation succeeded.