[Run a standalone task] (スタンドアロンタスクを実行) - Amazon Elastic Container Service

[Run a standalone task] (スタンドアロンタスクを実行)

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

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

Classic console

クラシックコンソールを使用してスタンドアロンタスクを実行する方法

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

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

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

    • タスク定義の以前のリビジョンを実行するには、タスク定義を選択してすべてのアクティブなリビジョンを確認します。最後に、実行するリビジョンを選択します。

  3. [Actions]、[Run 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 タスクの配置」を参照してください。

  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 など)、(二重引用符 (" ") で囲うことなく) 環境値の文字列値を入力します。AWS は文字列を二重引用符 (" ") で囲み、その文字列を引数として ENTRYPOINT コマンドに渡します。

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

        AWS は文字列を二重引用符 (" ") で囲み、次の形式で文字列をコンテナに渡します。

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

    1. Amazon ECS で各タスクに Amazon ECS マネージドタグを自動的にタグ付けする場合は、[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 ステータスが表示されて消えた場合、同じ事象が発生しています。詳細については、トラブルシューティングセクションの「停止されたタスクでのエラーの確認」を参照してください。

Command line

run-task コマンドを実行します。詳細については、「AWS Command Line Interface リファレンス」の「run-task」を参照してください。