Amazon ECS がコンテナインスタンスにタスクを配置する方法 - Amazon Elastic Container Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon ECS がコンテナインスタンスにタスクを配置する方法

タスク配置を使用して、アベイラビリティーゾーンやインスタンスタイプなど、特定の条件を満たすコンテナインスタンスにタスクを配置するように Amazon ECS を設定できます。

タスク配置コンポーネントは次のとおりです。

  • タスク配置戦略 - タスク配置または終了するタスクのコンテナインスタンスを選択するためのアルゴリズム。例えば、Amazon ECS はコンテナインスタンスをランダムに選択することも、タスクがインスタンスのグループ全体に均等に分散されるようにコンテナインスタンスを選択することもできます。

  • タスクグループ - データベースタスクなどの関連タスクのグループ。

  • タスク配置の制約 - これらは、コンテナインスタンスにタスクを配置するために満たす必要があるルールです。制約が満たされない場合、タスクは配置されず、 PENDING状態のままになります。例えば、制約を使用して、特定のインスタンスタイプにのみタスクを配置できます。

Amazon ECS には、起動タイプごとに異なるアルゴリズムがあります。

EC2 起動タイプ

EC2 起動タイプを使用するタスクの場合、Amazon ECS は CPU やメモリなど、タスク定義で指定された要件に基づいてタスクを配置する場所を決定する必要があります。同様に、タスク数を減らすときも、Amazon ECS でどのタスクを終了させるか決定する必要があります。タスク配置の戦略と制約を適用することで、Amazon ECS がタスクを配置および終了する方法をカスタマイズできます。

デフォルトのタスク配置戦略は、タスクを手動で (スタンドアロンタスク) 実行するか、サービス内で実行するかによって異なります。Amazon ECS サービスの一部として実行されるタスクの場合、タスク配置戦略は attribute:ecs.availability-zone を使用した spread です。サービス内のタスクには、デフォルトのタスク配置の制約はありません。詳細については、「Amazon ECS でのコンテナのスケジュール」を参照してください。

注記

タスク配置戦略はベストエフォートです。Amazon ECSは、最適な配置オプションが利用できない場合でも、タスクの配置を試みます。ただし、タスク配置の制約が有効な場合、タスクを配置できないことがあります。

タスク配置戦略と制約は併用できます。例えば、タスク配置戦略とタスク配置制約を使用して、アベイラビリティーゾーン間でタスクを分散し、各アベイラビリティーゾーン内のメモリに基づいてビンパックタスクを分散できます。ただし、G2 インスタンスのみです。

Amazon ECSがタスクを配置する際は、以下のプロセスでコンテナインスタンスを選択します。

  1. タスク定義の CPU、GPU、メモリ、およびポートの要件を満たすコンテナインスタンスを特定します。

  2. タスク配置の制約を満たすコンテナインスタンスを特定します。

  3. タスク配置戦略を満たすコンテナインスタンスを特定します。

  4. タスクを配置するコンテナインスタンスを選択します。

Fargate 起動タイプ

タスク配置戦略および制約事項は、Fargate 起動タイプを使用しているタスクをサポートしていません。Fargate は、アクセス可能なアベイラビリティーゾーンにタスクを分散するよう最善を尽くします。キャパシティープロバイダーに Fargate と Fargate Spot の両方が含まれている場合、スプレッドの動作はキャパシティープロバイダーごとに異なります。