スタンドアロンタスクの実行 - Amazon Elastic Container Service

スタンドアロンタスクの実行

アプリケーションをスタンドアロンタスクとしてデプロイする方が、状況によっては適切です。例えば、アプリケーションを開発しているが、このアプリケーションをサービススケジューラでデプロイする準備はできていないとします。このアプリケーションは 1 回限りまたは定期的なバッチジョブであり、実行させ続けたり、終了後に再起動したりする意味はないとします。

アプリケーションを継続的に実行するようにデプロイしたり、ロードバランサーの背後に配置したりするには、Amazon ECSサービスを作成します。詳細については、「Amazon ECS サービス」を参照してください。

スタンドアロンタスクを実行するには、次のいずれかの手順を使用します。

New console

新しいコンソールを使用してスタンドアロンタスクを実行するには

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

  2. Clustersページで、スタンドアロンタスクを実行するクラスターを選択します。

  3. Tasksタブで、Run new taskを選択します。

  4. [Compute configuration] セクションを展開して、サービスが使用するコンピューティングオプションを変更できます。デフォルトでは、コンソールはコンピューティングオプションを選択します。したがって、ほとんどの場合、次のステップに進むことができます。次に、コンソールがデフォルトを選択するときに使用する順序について説明します。

    • クラスターにデフォルトのキャパシティープロバイダー戦略が定義されている場合は、そのキャパシティープロバイダー戦略が選択されます。

    • クラスターにデフォルトのキャパシティープロバイダー戦略が定義されていないが、Fargateキャパシティープロバイダーをクラスターに追加している場合は、キャパシティープロバイダーを使用するカスタムFARGATEキャパシティープロバイダー戦略が選択されます。

    • クラスターにデフォルトのキャパシティープロバイダー戦略が定義されていないが、クラスターに 1 つ以上のAuto Scalingグループ キャパシティープロバイダーが追加されている場合は、Use custom (Advanced)オプションが選択されます。このためには、戦略を手動で定義する必要があります。

    • クラスターにデフォルトのキャパシティープロバイダー戦略が定義されておらず、クラスターにキャパシティープロバイダーが追加されていない場合は、Fargate起動タイプが選択されます。

  5. Application type(アプリケーションの種類)で、Task(タスク)を選択します。

  6. [Task definition] で、使用するタスク定義ファミリーとリビジョンを選択します。

    重要

    コンソールは、選択を検証し、選択したタスク定義ファミリーおよびリビジョンが、定義されたコンピューティング設定と互換性があることを確認します。

  7. Desired tasksで、クラスターで実行するタスクの数を指定します。

  8. タスクで必要な場合は、Networkingセクションを展開して、Amazon VPC、サブネット、およびセキュリティグループの設定を定義できます。awsvpc ネットワークモードを使用するタスク定義には、ネットワーク設定が必要です。デフォルトでは、コンソールは、デフォルトAmazon VPC 内のすべてのサブネットおよびデフォルトセキュリティグループとともにデフォルトのAmazon VPC を選択します。アプリケーションで必要な場合は、新しいセキュリティグループを作成します。

  9. (オプション) [Tags] セクションを展開して、キーと値のペアの形式でタグをサービスに追加できます。

  10. デプロイを選択します。

Old console

古いコンソールを使用してスタンドアロンタスクを実行するには

  1. Amazon ECS コンソール https://console.aws.amazon.com/ecs/を開きます。

  2. ナビゲーションペインで、Task Definitionsを選択し、実行するタスク定義を選択します。

    • ここに表示されたタスク定義の最新のリビジョンを実行するには、実行するタスク定義の左側にあるチェックボックスを選択します。

    • ここに表示されたタスク定義の以前のリビジョンを実行するには、タスク定義を選択してすべてのアクティブなリビジョンを表示し、実行するリビジョンを選択します。

  3. ActionsRun Taskを選択します。

  4. タスクの実行ページで、次の手順を実行します。

    1. キャパシティープロバイダー戦略または起動タイプを選択します。

      • Capacity provider strategy(キャパシティープロバイダー戦略)を使用し、Switch to capacity provider strategy(キャパシティープロバイダー戦略に切り替える)を選択します。タスクで、クラスターに定義されたデフォルトのキャパシティープロバイダー戦略を使用するか、カスタムのキャパシティープロバイダー戦略を使用するかを選択します。キャパシティープロバイダーは、カスタムキャパシティープロバイダー戦略で使用するクラスターに関連付ける必要があります。詳細については、「Amazon ECS キャパシティープロバイダー」を参照してください。

      • 起動タイプを使用するには、起動タイプへの切り替えを選択して EC2 または EXTERNALのいずれかを選択します。起動タイプの詳細については、「Amazon ECS 起動タイプ」を参照してください。

    2. Clusterで、使用するクラスターを選択します。

    3. Number of tasks(タスクの数)で、このタスク定義で起動するタスクの数を入力します。

    4. Task group(タスクグループ)で、タスクグループの名前を入力します。

  5. タスク定義で awsvpc ネットワークモードを使用している場合、以下のサブステップを実行します。それ以外の場合は、次のステップに進みます。

    1. Cluster VPCでは、コンテナインスタンスが存在する VPC を選択します。

    2. Subnetsでは、タスクで利用できるサブネットを選択します。

      重要

      awsvpc ネットワークモードではプライベートサブネットだけがサポートされます。タスクはパブリック IP アドレスを受信しません。そのため、アウトバウンドのインターネットアクセスには NAT ゲートウェイが必要です。またインバウンドのインターネットトラフィックは、ロードバランサーを経由させる必要があります。

    3. Security groups(セキュリティグループ)で、タスク用のセキュリティグループが作成され、インターネットからの HTTP トラフィックが許可されるようになります(0.0.0.0/0)。このセキュリティグループの名前やルールを編集する場合や、既存のセキュリティグループを選択する場合は、[Edit] を選択してセキュリティグループ設定に変更を加えます。

  6. (オプション)Task Placementで、タスク配置戦略と制約を使用してタスクをどのように配置するかを指定できます。次のオプションから選択します。

    • [AZ Balanced Spread (AZ バランススプレッド)] - アベイラビリティーゾーン間およびアベイラビリティーゾーン内のコンテナインスタンス間でタスクを分散します。

    • [AZ Balanced BinPack (AZ バランスビンパック)] - 利用可能な最小メモリでアベイラビリティーゾーン間およびコンテナインスタンス間でタスクを分散します。

    • [BinPack (ビンパック)] - CPU またはメモリの最小利用可能量に基づいてタスクを配置します。

    • [One Task Per Host (ホストごとに 1 つのタスク)] - 各コンテナインスタンスのサービスから最大 1 タスクを配置します。

    • [カスタム] - 独自のタスク配置戦略を定義します。例については、「Amazon ECS タスクの配置」を参照してください。

    詳細については、「Amazon ECS タスクの配置」を参照してください。

  7. (オプション) コマンド、環境変数、タスクのIAMロール、またはタスクの実行ロールのオーバーライドをタスク定義の 1 つ以上のコンテナに送信するには、Advanced Options(詳細オプション)] を選択して次のステップを実行します。

    注記

    タスク定義のパラメータ値を使用する場合は、オーバーライドを指定する必要はありません。これらのフィールドは、タスク定義で指定された値をオーバーライドするためにのみ使用されます。

    1. Task Role Override(タスクロールの上書き)で、このタスクがタスク定義で指定されたIAMロールをオーバーライドするためのIAMロールを選択します。詳細については、「タスク用の IAM ロール」を参照してください。

      ecs-tasks.amazonaws.com信頼関係を持つロールのみが表示されます。タスクの IAM ロールを作成する方法については、「タスク用の IAM ロールとポリシーの作成」を参照してください。

    2. Task Execution Role Override (タスク実行ロールの上書き)で、タスク定義で指定されたタスク実行ロールをオーバーライドするためのタスク実行ロールを選択します。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。

    3. Container Overridesで、コマンドまたは環境変数のオーバーライドを送信するコンテナを選択します。

      • コマンドのオーバーライドの場合: Command override (コマンドの上書き)で、送信するコマンドオーバーライドを入力します。コンテナ定義で ENTRYPOINT が指定されていない場合、形式は引用符のない文字列のカンマ区切りリストです。

        /bin/sh,-c,echo,$DATE

        コンテナ定義で ENTRYPOINT が指定されている場合 (sh,-c など)、形式は引用符のない文字列です。これは二重引用符(" ")で囲まれ、引数として ENTRYPOINT コマンドに渡されます。

        while true; do echo $DATE > /var/www/html/index.html; sleep 1; done
      • 環境変数オーバーライドの場合: Add Environment Variable を選択します。Key に、環境変数の名前を入力します。Value(値) で、(文字列を囲む二重引用符 (" ") なしで) 環境値の文字列値を入力します。

        
                                                  環境変数の上書き

        この環境変数のオーバーライドは、次の形式でコンテナに送信されます。

        MY_ENV_VAR="This variable contains a string."
  8. [Task tagging configuration (タスクのタグ付け設定)] セクションで、以下のステップを実行します。

    1. AmazonECSで各タスクにAmazonECSマネージドタグを自動的にタグ付けする場合は,Enable ECS managed tags(ECSマネージドタグを有効にする)を選択します。詳細については、「Amazon ECS リソースにタグを付ける」を参照してください。

    2. [Propagate tags from (タグの伝播元)] で、次のいずれかを選択します。

      • Do not propagate (伝播しない) – このオプションでは、どのタグも伝播しません。

      • Task Definitions (タスク定義) – このオプションでは、タスク定義に指定されているタグをタスクに伝播します。

        注記

        Tagsセクションで、同じkeyで、タグを指定すると、タスク定義から伝播されたタグが上書きされます。

  9. Tagsセクションで、タスクに関連付ける各タグのキーと値を指定します。詳細については、「Amazon ECS リソースにタグを付ける」を参照してください。

  10. タスク情報を確認し、[Run Task] を選択します。

    注記

    タスクがPENDINGからSTOPPEDステータスに移行した場合、またはPENDINGステータスが表示された後、リストされているタスクから消えた場合、エラーで停止した可能性があります。詳細については、トラブルシューティングセクションの「停止されたタスクでのエラーの確認」を参照してください。