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

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

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

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

  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. [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 開発者ガイドの「Amazon ECS とインターフェイス VPC エンドポイント ( AWS PrivateLink )を参照してください。

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

    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. [次の手順: ストレージの追加] を選択します。

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

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

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