メニュー
Amazon Elastic Container Service
開発者ガイド (API バージョン 2014-11-13)

コンテナインスタンスのドレイン

クラスターからインスタンスを削除する必要がある場合があります。たとえば、システム更新を実行する、Docker デーモンを更新する、またはクラスターサイズを縮小する場合などです。コンテナインスタンスのドレインにより、クラスターのタスクに影響を与えずにクラスターからコンテナインスタンスを削除できます。

コンテナインスタンスを DRAINING に設定すると、Amazon ECS によって新規タスクがそのコンテナインスタンスに配置されなくなります。リソースが使用可能であれば、代わりのサービスタスクがクラスターの別のコンテナインスタンスで開始されます。PENDING 状態のコンテナインスタンスのサービスタスクは即時停止されます。

RUNNING 状態のコンテナインスタンスのサービスタスクは停止され、サービスのデプロイ設定パラメータ minimumHealthyPercent および maximumPercent に従って代替されます。

  • minimumHealthyPercent が 100% を下回っている場合、タスクの代替中、スケジューラーは一時的に desiredCount を無視できます。たとえば、desiredCount が 4 つのタスクの場合、最小値 50% でスケジューラーは 2 つの既存タスクを停止してから 2 つの新規タスクを開始できます。最小が 100% の場合、サービススケジューラーは、代替タスクが正常な状態とみなされるまで既存タスクを削除できません。ロードバランサーを使用しないサービスのタスクが RUNNING 状態にある場合、正常な状態とみなされます。ロードバランサーを使用するサービスのタスクは、RUNNING 状態にあり、そのタスクをホストするコンテナインスタンスがロードバランサーによって正常と報告された場合に、正常であるとみなされます。

  • maximumPercent パラメータは、タスクの代替中に実行できるタスク数の上限を表します。これにより代替バッチサイズを定義できます。たとえば、desiredCount が 4 つのタスクで、最大が 200% であればドレインされる 4 つのタスクを停止する前に 4 つの新規タスクを開始できます (これを行うために必要なクラスターリソースを使用できる場合)。最大が 100% の場合、代替タスクは、ドレインするタスクが停止するまで開始できません。

詳細については、「サービス定義パラメーター」を参照してください。

サービスに属さない PENDING または RUNNING タスクは影響を受けません。終了するのを待つか、手動で停止する必要があります。

コンテナインスタンスは、RUNNING タスクがなくなるとドレインを終了します (ただし、状態は DRAINING のままです)。ListTasks オペレーションに containerInstance パラメータを使用してこれを検証できます。

コンテナインスタンスのステータスを DRAINING から ACTIVE に変更すると、Amazon ECS でそのインスタンスのタスクを再度スケジュールできるようになります。

インスタンスのドレイン

UpdateContainerInstancesState API アクションまたは update-container-instances-state コマンドを使用して、コンテナインスタンスのステータスを DRAINING に変更できます。

次の手順は、AWS マネジメントコンソールを使用してインスタンスを DRAINING に設定する方法を示しています。

コンソールを使用してインスタンスを DRAINING に設定するには

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

  2. ナビゲーションペインで、[Clusters] を選択し、クラスターを選択します。

  3. [ECS Instances] を選択し、コンテナインスタンスのチェックボックスを選択します。

  4. [Actions]、[Drain instances] を選択します。

  5. インスタンスが処理されたら、[Done] を選択します。

このページの内容: