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

Amazon ECS コンテナインスタンスの起動

このトピックで説明しているように、AWS マネジメントコンソール を使用して Amazon ECS コンテナインスタンスを起動できます。開始する前に、必ず「Amazon ECS でのセットアップ」の手順を完了してください。インスタンスを起動したら、そのインスタンスを使用してタスクを実行できます。

コンテナインスタンスを起動するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションバーから、使用するリージョンを選択します。

  3. コンソールダッシュボードで、[Launch Instance] を選択します。

  4. [Choose an Amazon Machine Image (AMI) (Amazon マシンイメージ (AMI) の選択)] ページで、次のステップを完了します。

    1. [コミュニティ AMI] を選択します。

    2. コンテナインスタンスの AMI を選択します。Amazon ECS に最適化された AMI、または別のオペレーティングシステム (CoreOS や Ubuntu など) を選択できます。Amazon ECS に最適化された AMI を選択しない場合は、「Amazon ECS コンテナエージェントのインストール」の手順に従う必要があります。

      注記

      Amazon ECS 固有の CoreOS のインストール手順については、「AWS EC2 Container Service を使用して CoreOS コンテナ Linux を実行する」を参照してください。

      Amazon ECS に最適化された最新の AMI の詳細については、「最新の Amazon ECS-Optimized Amazon Linux AMI を起動する方法」を参照してください。

  5. [Choose an Instance Type] ページで、インスタンスのハードウェア構成を選択できます。デフォルトでは、t2.micro インスタンスタイプが選択されます。選択したインスタンスタイプによって、タスクの実行に使用できるリソースが決まります。

    終了したら、[次の手順: インスタンスの詳細の設定] を選択します。

  6. [インスタンスの詳細の設定] ページで、以下のステップを完了します。

    1. クラスターに追加するコンテナインスタンスの数に応じて、[Number of instances] フィールドを設定します。

    2. (オプション) スポットインスタンスを使用するには、 [購入のオプション] で [スポットインスタンスのリクエスト] の横にあるチェックボックスをオンにします。また、スポットインスタンスに関連する他のフィールドも設定する必要があります。詳細については、「スポットインスタンスのリクエスト」を参照してください。

      注記

      スポットインスタンスを使用していて、"Not available" メッセージが表示される場合は、別のインスタンスタイプを選択する必要があります。

    3. [ネットワーク] で、コンテナインスタンスを起動する VPC を選択します。

    4. [Subnet] で、使用するサブネットを選択するか、アベイラビリティーゾーンであらかじめ選択されるデフォルトのサブネットを使用します。

    5. インスタンスをパブリックインターネットからアクセス可能にするかどうかに応じて、[自動割り当てパブリック IP] フィールドを設定します。インスタンスをインターネットからアクセス可能にする場合は、[自動割り当てパブリック IP] フィールドが [有効] に設定されていることを確認します。可能にしない場合には、このフィールドを [無効] に設定します。

      注記

      コンテナインスタンスは、Amazon ECS サービスエンドポイントと通信するためのアクセス権限を必要とします。この操作は、インターフェイス VPC エンドポイントを通じて、またはパブリック IP アドレスを持つコンテナインスタンスを通じて実行することができます。

      インターフェイス VPC エンドポイントの詳細については、Amazon Elastic Container Service Developer Guideの「Amazon ECS インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。

      インターフェイス VPC エンドポイントを設定しておらず、コンテナインスタンスにパブリック IP アドレスがない場合、ネットワークアドレス変換 (NAT) を使用してこのアクセスを提供する必要があります。詳細については、の「NAT ゲートウェイ」およびこのガイドの「Amazon VPC ユーザーガイド」および「HTTP プロキシ設定」を参照してください。詳細については、「Tutorial: Creating a VPC with Public and Private Subnets for Your Clusters」を参照してください。

    6. [IAM ロール] の値に「Amazon ECS でのセットアップ」でコンテナインスタンス用に作成した ecsInstanceRole を選択します。

      重要

      適切な IAM アクセス許可を使用してコンテナインスタンスを起動しないと、Amazon ECS エージェントはクラスターに接続できません。詳細については、「Amazon ECS コンテナインスタンス IAM ロール」を参照してください。

    7. (オプション)「Amazon ECS コンテナエージェントの設定」のエージェント環境変数などのユーザーデータを使用して、Amazon ECS コンテナインスタンスを設定します。Amazon EC2 ユーザーデータスクリプトは 1 回のみインスタンスの初回起動時に実行されます。以下に、ユーザーデータを使用する目的の一般的な例を紹介します。

      • デフォルトでは、コンテナインスタンスはデフォルトのクラスターで起動されます。デフォルト以外のクラスターで起動するには、[Advanced Details] リストを選択します。次に、[User data] フィールドに以下のスクリプトを貼り付け、your_cluster_name を使用するクラスターの名前に置き換えます。

        #!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
      • Amazon S3 に ecs.config ファイルがあり、コンテナインスタンスロールへの Amazon S3 読み取り専用アクセスを有効にしている場合は、[高度な詳細] リストを選択します。次に、[User data (ユーザーデータ)] フィールドに以下のスクリプトを貼り付け、your_bucket_name を、AWS CLI をインストールして起動時に設定ファイルを書き込むバケットに置き換えます。

        注記

        この設定の詳細については、「Amazon S3 にコンテナインスタンスの構成を保存する」を参照してください。

        #!/bin/bash yum install -y aws-cli aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config
      • ECS_CONTAINER_INSTANCE_TAGS 設定パラメータを使用して、コンテナインスタンスのタグを指定します。これにより Amazon ECS にのみ関連付けられているタグが作成され、そのタグは Amazon EC2 API ではリスト取得できません。

        重要

        Amazon EC2 Auto Scaling グループを使用してコンテナインスタンスを起動する場合は、ECS_CONTAINER_INSTANCE_TAGS エージェント設定パラメータを使用してタグを追加する必要があります。これは、Auto Scaling グループを使用して起動されている Amazon EC2 インスタンスにタグが追加される方法が原因です。

        #!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=your_cluster_name ECS_CONTAINER_INSTANCE_TAGS={"tag_key": "tag_value"} EOF
      • コンテナインスタンスのタグを指定してから、ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM 設定パラメータを使用してそれらを Amazon EC2 から Amazon ECS に伝播します。

        次に、コンテナインスタンスに関連付けられたタグを伝達し、さらに your_cluster_name という名前のクラスターでコンテナインスタンスを登録するユーザーデータスクリプトの例を示します。

        #!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=your_cluster_name ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM=ec2_instance EOF

      詳細については、「Amazon EC2 ユーザーデータを使用してコンテナインスタンスをブートストラップする」を参照してください。

    8. [次の手順: ストレージの追加] を選択します。

  7. [Add Storage] ページで、コンテナインスタンスのストレージを設定します。

    Amazon ECS-optimized Amazon Linux 2 AMI を使用している場合、1 つの 30 GiB ボリュームがインスタンスにあります。これは、オペレーティングシステムと Docker の間で共有されます。

    Amazon ECS に最適化された AMI を使用している場合、インスタンスには 2 つのボリュームが設定されます。[Root] ボリュームはオペレーティングシステム用で、2 番目の Amazon EBS ボリューム (/dev/xvdcz にアタッチ) は Docker 用です。

    オプションで、アプリケーションのニーズに合わせてインスタンスのボリュームサイズを増減できます。

    ボリュームの設定が完了したら、[Next: Add Tags] を選択します。

  8. [タグの追加] ページで、キーと値の組み合わせをコンテナインスタンスのタグとして指定します。コンテナインスタンスに複数のタグを追加するには、[別のタグを追加] を選択します。リソースタグの詳細については、「リソースとタグ」を参照してください。

    完了したら、[次の手順: セキュリティグループの設定] を選択します。

  9. [セキュリティグループの設定] ページで、セキュリティグループを使用してコンテナインスタンスのファイアウォールルールを定義します。このルールでは、どの着信ネットワークトラフィックをコンテナインスタンスに配信するかを指定します。他のトラフィックはすべて無視されます。以下のようにセキュリティグループを選択または作成して、[Review and Launch] を選択します。

  10. [Review Instance Launch] ページの [Security Groups] に、ウィザードで作成および選択したセキュリティグループが表示されます。代わりに、以下の手順を使用して、「Amazon ECS でのセットアップ」で作成したセキュリティグループを選択します。

    1. [Edit security groups] を選択します。

    2. [Configure Security Group] ページで、[Select an existing security group] オプションを選択します。

    3. 既存のセキュリティグループのリストからコンテナインスタンス用に作成したセキュリティグループを選択してから、[Review and Launch] を選択します。

  11. [Review Instance Launch] ページで、[Launch] を選択します。

  12. [Select an existing key pair or create a new key pair] ダイアログボックスで、[Choose an existing key pair] を選択し、セットアップ時に作成したキーペアを選択します。

    準備ができたら、確認フィールドを選択してから、[Launch Instances] を選択します。

  13. インスタンスを起動することを知らせる確認ページが表示されます。[View Instances] を選択して確認ページを閉じ、コンソールに戻ります。

  14. [Instances] 画面でインスタンスのステータスを表示できます。インスタンスはすぐに起動します。インスタンスを起動した直後のステータスは pending です。インスタンスを起動した後は、状態が running に変わり、パブリック DNS 名を受け取ります([Public DNS] 列が非表示になっている場合は、[Show/Hide] を選択して [Public DNS] を選択します)。