Amazon ECS タスクとしてのアプリケーションの実行 - Amazon Elastic Container Service

Amazon ECS タスクとしてのアプリケーションの実行

1 回限りのプロセス用のタスクは AWS Management Console を使用して作成できます。

スタンドアロンタスクを作成するには (AWS Management Console)
  1. コンソール (https://console.aws.amazon.com/ecs/v2) を開きます。

  2. Amazon ECS コンソールでは、クラスターの詳細ページまたはタスク定義リビジョンリストからスタンドアロンタスクを作成できます。選択したリソースページに応じて、次の手順を使用してスタンドアロンタスクを作成します。

    サービスの起動元 ステップ

    クラスター詳細ページ...

    1. [Clusters] ページで、サービスを作成するクラスターを選択します。

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

    タスク定義のリビジョンページ...
    1. [タスク定義] ページで、タスク定義ファミリを選択して、そのファミリーのリビジョンを表示します。

    2. 使用するリビジョンを選択します。

    3. [デプロイ] メニューから、[タスクの実行] を選択します。

  3. (オプション) [コンピューティング設定 (詳細)] セクションでは、タスクの分散方法を選択します。[キャパシティープロバイダー戦略] または [起動タイプ] のいずれかを選択できます。キャパシティプロバイダー戦略を使用するには、キャパシティプロバイダーをクラスターレベルで設定する必要があります。キャパシティプロバイダーを使用するようにクラスターを構成していない場合は、代わりに起動タイプを使用してください。

    ディストリビューションの方法 ステップ

    キャパシティープロバイダー戦略

    1. [Compute options] (コンピューティングオプション) セクションで、[Capacity provider strategy] (キャパシティープロバイダー戦略) を選択します。

    2. 戦略を選択:

      • デフォルトのキャパシティープロバイダー戦略を使用するには、[Use cluster default] (デフォルトのクラスターを使用) を選択します。

      • クラスターにデフォルトのキャパシティープロバイダー戦略がない場合、またはカスタム戦略を使用する場合は、[Use custom] (カスタムを使用)、[Add capacity provider strategy] (キャパシティプロバイダー戦略の追加)を選択し、[Base] (ベース)、[Capacity provider] (キャパシティープロバイダー)、[Weight] (ウェイト) を指定して、カスタムキャパシティープロバイダー戦略を定義します。

    注記

    戦略でキャパシティープロバイダーを使用するには、キャパシティープロバイダーをクラスターに関連付ける必要があります。

    起動タイプ
    1. [Compute options] (コンピューティングオプション) セクションで、[Launch type] (起動タイプ) を選択します。

    2. [Launch type] (起動タイプ) で、起動タイプを選択します。

    3. (オプション) Fargate 起動タイプが指定されている場合、Platform version(プラットフォームのバージョン)で、使用するプラットフォームのバージョンを指定します。プラットフォームバージョンが指定されない場合、LATEST プラットフォームバージョンが使用されます。

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

  5. [タスク定義] の場合、タスク定義ファミリーとリビジョンを選択します。

    重要

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

  6. [Desired tasks] (必要なタスク) で、起動するタスクの数を入力します。

  7. タスク定義で awsvpc ネットワークモードを使用している場合、[Networking] (ネットワーク) を展開します。カスタム設定を指定するには、次のステップを実行します。

    1. VPC の場合、使用する VPC を選択します。

    2. [Subnets] (サブネット) で、タスクスケジューラがタスクを配置するときに考慮する VPC 内のサブネットを 1 つ以上選択します。

      重要

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

    3. [セキュリティグループ] で、既存のセキュリティグループを選択することも、新しいセキュリティグループを作成することもできます。既存のセキュリティグループを使用するには、セキュリティグループを選択し、次のステップに進みます。新しいセキュリティグループを作成するには、[Create a new security group (新しいセキュリティグループの作成)] を選択します。セキュリティグループの名前、説明を指定してから、セキュリティグループのインバウンドルールを 1 つ以上追加する必要があります。

    4. [Public IP] (パブリック IP) では、タスクの Elastic Network Interface (ENI) にパブリック IP アドレスを自動的に割り当てるかどうかを選択します。

      AWS Fargate タスクをパブリックサブネットで実行するときに、そのタスクにパブリック IP アドレスを割り当てて、インターネットへのルートを持つようにすることができます。このフィールドを使用して EC2 タスクにパブリック IP を割り当てることはできません。詳細については、「Fargate 起動タイプの Amazon ECS タスクネットワーキングオプション」および「Amazon ECS タスクへのネットワークインターフェイスの割り当て」を参照してください。

  8. デプロイ時の設定と互換性のあるデータボリュームをタスクで使用する場合は、[ボリューム] を拡張してボリュームを設定できます。

    ボリューム名とボリュームタイプはタスク定義リビジョンの作成時に設定され、スタンドアロンタスクの実行時には変更できません。ボリューム名とタイプを更新するには、新しいタスク定義リビジョンを作成し、その新しいリビジョンを使用してタスクを実行する必要があります。

    このボリュームタイプを設定するには この操作を行います

    Amazon EBS

    1. [EBS ボリュームタイプ] には、タスクにアタッチする EBS ボリュームのタイプを選択します。

    2. [サイズ (GiB)] には、ボリュームサイズの有効な値をギビバイト (GiB) 単位で入力します。最小で 1 GiB、最大で 16,384 GiB のボリュームサイズを指定できます。スナップショット ID を指定しない限り、この値は必須です。

    3. [IOPS] には、ボリュームが提供する入力/出力オペレーションの数 (IOPS) の最大数を入力します。この値は io1io2、および gp3 ボリュームタイプでのみ設定できます。

    4. [スループット (MiB/秒)] には、ボリュームが提供すべきスループットをメビバイト/秒 (MiBps または MiB/s) で入力します。この値は gp3 ボリュームタイプでのみ設定できます。

    5. [スナップショット ID] には、既存の Amazon EBS ボリュームスナップショットを選択するか、スナップショットからボリュームを作成する場合はスナップショットの ARN を入力します。新しい空のボリュームは、スナップショット ID を選択または入力しないで作成することもできます。

    6. タスクの終了後にタスクに接続するように構成されたボリュームを保持する場合は、[終了ポリシー] のチェックボックスを選択解除します。デフォルトでは、タスクにアタッチされている EBS ボリュームは、タスクが終了すると削除されます。

    7. [ファイルシステムのタイプ] では、ボリューム上のデータストレージおよび取得に使用するファイルシステムの種類を選択します。オペレーティングシステムのデフォルトまたは特定のファイルシステムタイプのいずれかを選択できます。Linux のデフォルトは XFS です。スナップショットから作成されたボリュームでは、スナップショットの作成時にボリュームが使用していたのと同じファイルシステムタイプを指定する必要があります。ファイルシステムのタイプが一致しない場合、タスクは開始できません。

    8. [インフラストラクチャロール] には、Amazon ECS がタスクの Amazon EBS ボリュームを管理できるようにするために必要な権限を持つ IAM ロールを選択します。AmazonECSInfrastructureRolePolicyForVolumes 管理ポリシーをロールにアタッチすることも、このポリシーをガイドとして使用して、特定のニーズを満たすアクセス権限を持つ独自のポリシーを作成してアタッチすることもできます。必要なアクセス権限の詳細については、「Amazon ECS インフラストラクチャ IAM ロール」を参照してください。

    9. デフォルト設定で Amazon EBS 暗号化を使用する場合は、[暗号化][デフォルト] を選択します。アカウントにデフォルトで暗号化が設定されている場合、ボリュームは設定で指定されている AWS Key Management Service (AWS KMS) キーで暗号化されます。[デフォルト] を選択し、Amazon EBS のデフォルト暗号化がオンになっていない場合、ボリュームは暗号化されません。

      [カスタム] を選択した場合は、ボリューム暗号化に任意の AWS KMS key を指定できます。

      [なし] を選択すると、デフォルトで暗号化が設定されている場合や、暗号化されたスナップショットからボリュームを作成した場合を除き、ボリュームは暗号化されません。

    10. [暗号化][カスタム] を選択した場合は、使用する AWS KMS key を指定する必要があります。[KMS キー] には、AWS KMS key を選択するか、キーの ARN を入力します。対称型のカスタマー管理キーを使用してボリュームを暗号化する場合は、AWS KMS key ポリシーに適切な権限が定義されていることを確認してください。詳細については、「Amazon EBS ボリュームのデータ暗号化」を参照してください。

    11. (オプション) [タグ] では、タスク定義からタグを伝達するか、独自のタグを指定することで、Amazon EBS ボリュームにタグを追加できます。

      タスク定義からタグを伝達する場合は、[タグの伝播元][タスク定義] を選択します。[伝播しない] を選択した場合、または値を選択しなかった場合、タグは伝播されません。

      独自のタグを指定する場合は、[タグの追加] を選択し、追加する各タグのキーと値を指定します。

      Amazon EBS ボリュームのタグ付けの詳細については、「Amazon EBS ボリュームのタグ付け」を参照してください。

  9. (オプション) デフォルト以外のタスク配置戦略を使用するには、[Task Placement] (タスクの配置) を展開し、以下のオプションから選択します。

    詳細については、「Amazon ECS がタスクをコンテナインスタンスに配置する方法」を参照してください。

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

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

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

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

    • [カスタム] - 独自のタスク配置戦略を定義します。

    [Custom] (カスタム) を選択した場合、タスクを配置するアルゴリズムと、タスク配置時に考慮されるルールを定義します。

    • [Strategy] (方針) にとって [Type] (タイプ) そして [Field] (フィールド) で、アルゴリズムとアルゴリズムに使用するエンティティを選択します。

      最大 5 個の戦略を入力できます。

    • [制約][タイプ] および [式] で、制約のルールと属性を選択します。

      例えば、T2 インスタンスにタスクを配置する制約を設定するには、[Expression] (表現) で、[attribute:ecs.instance-type =~ t2.*] と入力します。

      最大 10 個の制約を入力できます。

  10. (オプション) タスク IAM ロール、またはタスク定義で定義されているタスク実行ロールをオーバーライドするには、[Task overrides] (タスクのの上書き) を展開し、以下のステップを実行します。

    1. [タスクロール] で、このタスクの IAM ロールを選択します。詳細については、「Amazon ECS タスクの IAM ロール」を参照してください。

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

    2. [タスク実行ロール] で、タスク実行ロールを選択します。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。

  11. (オプション) コンテナコマンドと環境変数をオーバーライドするには、[Container Overrides] (コンテナの上書き) を展開し、コンテナを展開します。

    • タスク定義コマンド以外のコンテナにコマンドを送信するには、[コマンドの上書き] で Docker コマンドを入力します。

    • [Add Environment Variable] (環境変数の追加) で、環境変数を追加します。Keyに、環境変数の名前を入力します。Value(値) で、(文字列を囲む二重引用符 (" ") なしで) 環境値の文字列値を入力します。

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

      MY_ENV_VAR="This variable contains a string."
  12. (オプション) タスクを識別しやすくするには、[Tags] (タグ) セクションを展開し、タグを設定します。

    Amazon ECS で、新しく起動されたすべてのタスクに、クラスター名とタスク定義のタグで自動でタグ付けするには、[Turn on Amazon ECS managed tags] (Amazon ECS で管理されたタグを有効にする) を選択し、[Task definition] (タスク定義) を選択します。

    タグを追加または削除します。

    • [タグを追加] [Add tag] (タグを追加) を選択し、以下を実行します。

      • [キー] にはキー名を入力します。

      • [] にキー値を入力します。

    • [タグの削除] タグの横にある [タグの削除] を選択します。

  13. [Create] (作成) を選択します。