Amazon ECS でコンテナインスタンスタイプを変更するにはどうすればよいですか?

最終更新日: 2023 年 1 月 4 日

Amazon Elastic Container Service (Amazon ECS) クラスターのコンテナインスタンスタイプを変更したいと考えています。しかし、どうすればよいのかわかりません。

簡単な説明

コンテナインスタンスタイプを変更するには、次のいずれかのセクションのステップを実行します。

  • AWS CloudFormation スタックを介して ECS クラスターで起動したコンテナインスタンスを更新する
  • ECS クラスターで手動で起動したコンテナインスタンスを更新する
  • キャパシティプロバイダーに関連付けられているクラスター内のコンテナインスタンスを更新する

解決方法

CloudFormation スタックを介して ECS クラスターで起動したコンテナインスタンスを更新する

重要: 次のステップは、基盤となる CloudFormation スタックを内部的に作成するリソースを使用して作成された ECS クラスターにのみ適用されます。スタック名は次の形式になります: EC2ContainerService-yourClusterName。これらのステップは、空の ECS クラスターや、コンテナインスタンスをプロビジョニングするためのカスタマイズされたアプローチには適用されません。

CloudFormation スタックの EcsInstanceType パラメータの値を更新する

  1. AWS CloudFormation コンソールを開きます。
  2. ECS クラスターを含むスタックを選択します。
    注: クラスター名はスタック名の最後に追加されます (たとえば、EC2ContainerService-yourClusterName)。
  3. [アクション] を選択してから [スタックの更新] をクリックします。
  4. [現在のテンプレートを使用] を選択してから、[次へ] をクリックします。
  5. [インスタンスタイプ] には、コンテナインスタンスの [インスタンスタイプ] に適切な値を設定し、[次へ] を選択します。
  6. [Options] (オプション) セクションをスキップし、[Next] (次へ) を選択してから [Update] (更新) を選択します。

クラスター内の古いコンテナインスタンスを置き換える

  1. CloudFormation スタックを更新するには、前のセクションのステップ 1〜4 を実行します。
  2. [AsgMaxSize] で、現在のサイズの 2 倍のパラメータ値を入力します。
    注: たとえば、現在の値が 2 の場合は、新しい値を 4 に設定します。これにより、インスタンスタイプを変更したときのダウンタイムを防ぐことができます。
  3. Amazon ECS コンソール を開きます。
  4. ナビゲーションペインで [クラスター] を選択してから、使用するクラスターを選択します。
  5. [ECS Instances] (ECS インスタンス) タブを選択してから、置き換える古いコンテナインスタンスのコンテナインスタンス ID を選択します。
    注: DeploymentConfiguration で置換タスクをコンテナインスタンスに配置できる場合、Amazon ECS は自動的に置換タスクを配置します。
  6. [Actions] (アクション) メニューを選択してから、[Drain instances] (インスタンスのドレイン) を選択してインスタンスをドレインします。
  7. [ECS インスタンス] タブで、古いコンテナインスタンスの実行中のタスク数0 であることを確認します。
  8. ナビゲーションペインで、[クラスター] をクリックしてから、クラスターを選択します。
  9. [ECS インスタンス] タブを選択し、古いコンテナインスタンスのコンテナインスタンス ID を選択してから、[登録解除] を選択します。
    注: インスタンスの登録を解除すると、そのインスタンスは Amazon ECS から削除されます。
  10. CloudFormation テンプレートで、[AsgMaxSize] の値を元の値に設定して、古いコンテナインスタンスを終了します。
    重要: このステップでは、Auto Scaling グループにデフォルトの終了ポリシーがあると仮定しています。

ECS クラスターで手動で起動されたコンテナインスタンスを更新する

  1. Auto Scaling グループの起動設定をコピーしてから、新しい起動設定に名前を付けます。
  2. インスタンスタイプを変更します
  3. Amazon EC2 コンソールのナビゲーションペインの [Auto Scaling] セクションで、[Auto Scaling グループ] を選択します。次に、コンテナインスタンスの Auto Scaling グループを選択します。
  4. [アクション] を選択してから、[編集] をクリックします。
  5. ポップアップウィンドウの [起動設定] では、このセクションの手順 1 で作成した起動設定を選択します。
  6. [希望するキャパシティー] には、現在の値の 2 倍のサイズの値を入力し、必要に応じて最大の値を更新します。
    注: 希望するキャパシティーは、最小グループサイズと最大グループサイズの間 (その値を含む) でなければなりません。
  7. Amazon ECS コンソールのナビゲーションペインで、[クラスター] を選択してからクラスターを選択します。
  8. [ECS インスタンス] タブを選択して、置き換える古いコンテナインスタンスのコンテナインスタンス ID を選択します。
  9. [アクション] メニューを選択してから、[インスタンスのドレイン] をクリックしてインスタンスをドレインします。
  10. 古いコンテナインスタンスの [ECS インスタンス] タブで、実行中のタスク数0 であることを確認します。
  11. [ECS インスタンス] タブを選択し、古いコンテナインスタンスのコンテナインスタンス ID を選択してから、[登録解除] をクリックします。
    注: インスタンスの登録を解除すると、そのインスタンスは Amazon ECS から削除されます。
  12. Amazon EC2 コンソールのナビゲーションペインの [Auto Scaling] セクションで、[Auto Scaling グループ] を選択します。
  13. [アクション] を選択してから、[編集] をクリックします。
  14. Auto Scaling グループの設定で、希望するキャパシティーおよび最大を元の値に設定してから、変更内容を保存します。
    注: これにより、ECS クラスター内の古いコンテナインスタンスが終了します。

キャパシティプロバイダーに関連付けられているクラスター内のコンテナインスタンスを更新する

注: このセクションは、クラスターに関連付けられているキャパシティプロバイダーと、キャパシティプロバイダー戦略に関連付けられているサービスがあることを前提としています。

クラスターが CloudFormation を使用して作成された場合は、次のステップを実行します。

  1. 前述のサブセクションのステップ 1~6 を実行します。
    AWS CloudFormation スタックの EcsInstanceType パラメータの値を更新する
  2. Amazon ECS コンソールのナビゲーションペインで、[Clusters] (クラスター) を選択してからクラスターを選択します。
  3. [ECS Instances] (ECS インスタンス) タブを選択してから、置き換える古いコンテナインスタンスのコンテナインスタンス ID を選択します。
  4. [Actions] (アクション) メニューを選択してから、[Drain instances] (インスタンスのドレイン) を選択してインスタンスをドレインします。
    注: インスタンスをドレインすると、キャパシティプロバイダーは、サービスの DeploymentConfiguration に基づいて新しいコンテナインスタンスを起動します。
  5. 古いコンテナインスタンスの [ECS Instances] (ECS インスタンス) タブで、[Running tasks count] (実行中のタスク数) が [0] であることを確認します。

クラスターが手動で作成された場合は、次のステップを実行します。

  1. 前述のセクションのステップ 1~5 を実行します。
    ECS クラスターで手動で起動されたコンテナインスタンスを更新する
  2. Amazon ECS コンソールのナビゲーションペインで、[Clusters] (クラスター) を選択してからクラスターを選択します。
  3. [ECS Instances] (ECS インスタンス) タブを選択してから、置き換える古いコンテナインスタンスのコンテナインスタンス ID を選択します。
  4. [Actions] (アクション) メニューを選択してから、[Drain instances] (インスタンスのドレイン) を選択してインスタンスをドレインします。
    注: インスタンスをドレインすると、キャパシティプロバイダーは、サービスの DeploymentConfiguration に基づいて新しいコンテナインスタンスを起動します。
  5. 古いコンテナインスタンスの [ECS Instances] (ECS インスタンス) タブで、[Running tasks count] (実行中のタスク数) が [0] であることを確認します。

注: キャパシティプロバイダーは、定義された期間が経過すると、ドレインされたインスタンスを自動的に終了します。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術的なサポートが必要ですか?