Amazon ECS Linux コンテナインスタンスの起動 - Amazon Elastic Container Service

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

Amazon ECS コンテナインスタンスは、Amazon EC2 コンソールを使用して作成されます。開始する前に、Amazon ECS を使用するようにセットアップする のステップを完了するようにしてください。

起動ウィザードの詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「新しいインスタンス起動ウィザードを使用してインスタンスを起動する」を参照してください。

新しい Amazon EC2 ウィザードを使用してインスタンスを起動できます。インスタンス起動ウィザードでは、インスタンスの起動に必要な起動パラメータを指定します。パラメータには次のリストを使用できます。リストされていないパラメータは、デフォルトのままにしてください。次の手順では、各パラメータグループについて説明します。

インスタンスの起動開始

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

  2. 画面の上のナビゲーションバーで、現在の AWS リージョンが表示されます (例: 米国東部 (オハイオ))。インスタンスを起動するリージョンを選択します。

  3. Amazon EC2 コンソールダッシュボードで、[インスタンスを起動] を選択します。

    古い起動ウィザードが表示された場合は、現在選択しているリージョンでは新しいインスタンス起動ウィザードがまだデフォルトビューではありません。新しいインスタンス起動ウィザードを開くには、画面の右上にある [Opt-in to the new experience] (新しい体験を選ぶ) を選択します。右上に [Opt-in to the new experience] (新しいエクスペリエンスにオプトインする) と表示されない場合、そのリージョンではウィザードを使用できません。古いウィザードを使用してインスタンスを起動できます。詳細については、「古い Amazon EC2 インスタンス起動ウィザード」を参照してください。

名前とタグ

インスタンス名はタグで、キーは [Name] (名前)、値は指定した名前です。インスタンス、ボリューム、および伸縮自在なグラフィックスにタグ付けできます。スポットインスタンスの場合、スポットインスタンスリクエストにのみタグを付けることができます。

インスタンス名と追加のタグを指定することはオプションです。

  • [Name] (名前) に、インスタンスのわかりやすい名前を入力します。名前を指定しない場合は、インスタンスをその ID で識別できます。ID は、インスタンスの起動時に自動的に生成されます。

  • タグを追加するには、[Add additional tag] (追加のタグを追加) を選択します。[Add tag] (タグを追加) を選択し、キーと値を入力し、タグ付けするリソースタイプを選択します。追加するタグごとに [Add tag] (タグを追加) を選択します。

アプリケーションと OS イメージ (Amazon マシンイメージ)

Amazon マシンイメージ (AMI) には、インスタンスの作成に必要な情報が含まれています。例えば、ある AMI には、ウェブサーバーとして動作するために必要なソフトウェア (Apache やウェブサイトなど) が含まれています。

適切な AMI は、次の手順で確認できます。AMI を検索する各オプションで、[Cancel] (キャンセル) (右上) を選択すれば、AMI を選択せずにインスタンス起動ウィザードに戻ることができます。

検索バー

Amazon ECS に最適化された AMI の 1 つを検索できます。たとえば、Amazon ECS に最適化された Amazon Linux 2 AMI。AMI を選択するには、[Select] (選択) を選択します。

Amazon ECS に最適化された AMI を選択しない場合は、「Amazon ECS コンテナエージェントをインストールする」の手順に従う必要があります。

Amazon ECS に最適化された AMI の詳細については、Amazon ECS に最適化された AMI を参照してください。

重要

Amazon ECS に最適化された Amazon Linux AMIは、2021 年 4月 15 日付で廃止されています。この日付を過ぎると、Amazon ECS は AMI の重要なセキュリティアップデートを引き続き提供しますが、新機能のサポートは追加されません。

インスタンスタイプ

インスタンスタイプは、インスタンスのハードウェア設定とサイズを定義します。インスタンスタイプが大きくなると、CPU およびメモリも増えます。詳細については、「インスタンスタイプ」を参照してください。

  • [Instance type] (インスタンスタイプ) で、インスタンスのインスタンスタイプを選択します。

    選択したインスタンスタイプによって、タスクの実行に使用できるリソースが決まります。

キーペア (ログイン)

[Key pair name] (キーペア名) には、既存のキーペアを選択するか、[Create new key pair] (新しいキーペアを作成) を選択して新しいキーペアを作成します。

重要

[Proceed without key pair] (キーペアなしで進む) オプションを選択した場合 (非推奨)、ユーザーが別の方法でログインすることを許可するように設定された AMI を選択した場合でなければ、インスタンスに接続できなくなります。

ネットワーク設定

必要に応じて、ネットワーク設定を設定します。

  • [Networking platform] (ネットワーキングプラットフォーム): [Virtual Private Cloud (VPC)] を選択して、[Network interfaces] (ネットワークインターフェイス) セクションでサブネットを指定します。

  • [VPC]: セキュリティグループを作成する既存の VPC を選択します。

  • [サブネット]: インスタンスは、アベイラビリティーゾーン、ローカルゾーン、Wavelength Zone、Outpost のいずれかに関連付けられたサブネットで起動できます。

    アベイラビリティーゾーンでインスタンスを起動するには、インスタンスを起動するサブネットを選択します。新しいサブネットを作成するには、[Create new subnet] を選択して Amazon VPC コンソールに移動します。終了したらインスタンス起動ウィザードに戻り、[Refresh] (更新) アイコンを選択して一覧にサブネットを読み込みます。

    ローカルゾーンでインスタンスを起動するには、ローカルゾーン内に作成したサブネットを選択します。

    アウトポストでインスタンスを起動するには、アウトポストに関連付けられた VPC 内のサブネットを選択します。

  • [Auto-assign Public IP] (パブリック IP の自動割り当て): インスタンスをインターネットからアクセス可能にする場合は、[Auto-assign Public IP] (パブリック IP の自動割り当て) フィールドが [Enable] (有効) に設定されていることを確認します。可能にしない場合には、このフィールドを [無効] に設定します。

    注記

    コンテナインスタンスには、Amazon ECS サービスエンドポイントと通信するためのアクセスが必要です。これは、インターフェイス VPC エンドポイントを介して、またはパブリック IP アドレスを持つコンテナインスタンスを通じて可能になります。

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

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

  • [Firewall (security groups)] (ファイアウォール (セキュリティグループ)): セキュリティグループを使用して、コンテナインスタンスのファイアウォールルールを定義します。このルールでは、どの着信ネットワークトラフィックをコンテナインスタンスに配信するかを指定します。他のトラフィックはすべて無視されます。

ストレージの設定

選択した AMI には、ルートボリュームを含む、1 つまたは複数のストレージボリュームが含まれます。インスタンスにアタッチする追加のボリュームを指定できます。

[Simple] (シンプル) ビューを使用できます。

  • [Storage type] (ストレージタイプ): コンテナインスタンスのストレージを設定します。

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

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

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

高度な詳細

[Advanced details] で、セクションを開いてフィールドを表示し、インスタンスの追加パラメータを指定します。

  • [Purchasing option] (購入のオプション): [Request Spot Instances] (スポットインスタンスのリクエスト) を選択して、スポットインスタンスをリクエストします。また、スポットインスタンスに関連する他のフィールドも設定する必要があります。詳細については、「スポットインスタンスのリクエスト」を参照してください。

    注記

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

    .

  • [IAM instance profile] (IAM インスタンスプロフィール): コンテナインスタンス IAM ロールを選択します。通常、これは ecsInstanceRole という名前です。

    重要

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

  • (オプション) [User data] (ユーザーデータ): 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 ユーザーデータを使用してコンテナインスタンスをブートストラップする」を参照してください。

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

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

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

  3. EC2 ダッシュボードから、[Launch Instance] を選択します。

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

    1. [AWSMarketplace] を選択します。

    2. コンテナインスタンスの AMI を選択します。Amazon ECS に最適化された AMI の 1 つを検索できます。たとえば、Amazon ECS に最適化された Amazon Linux 2 AMI。Amazon ECS に最適化された AMI を選択しない場合は、「Amazon ECS コンテナエージェントをインストールする」の手順に従う必要があります。

      Amazon ECS に最適化された AMI の詳細については、Amazon ECS に最適化された AMI を参照してください。

      重要

      Amazon ECS に最適化された Amazon Linux AMIは、2021 年 4月 15 日付で廃止されています。この日付を過ぎると、Amazon ECS は AMI の重要なセキュリティアップデートを引き続き提供しますが、新機能のサポートは追加されません。

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

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

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

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

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

      注記

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

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

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

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

      注記

      コンテナインスタンスには、Amazon ECS サービスエンドポイントと通信するために外部ネットワークアクセスが必要です。これは、インターフェイス VPC エンドポイントを介して、またはパブリック IP アドレスを持つコンテナインスタンスを通じて可能になります。

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

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

    6. コンテナインスタンスの IAM ロールを選択します。通常、これは 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. [Next: Add Storage] (次へ: ストレージの追加) をクリックします。

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

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

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

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

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

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

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

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

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

    1. セキュリティグループの編集 を選択します。

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

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

  11. インスタンスの起動の確認ページで、起動を選択します。

  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] を選択します)。