インスタンス終了ポリシーは、スケールインアクティビティ中にどの Elastic Compute Service (ECS) インスタンスを最初に削除するかを制御します。スケーリンググループの作成時または変更時に、スケーリングポリシーと削除ポリシーを設定できます。Auto Scaling は両方のポリシーを組み合わせて、インスタンスの選択を自動化します。本トピックでは、各ポリシーコンポーネントの仕組みを説明し、シナリオに適した終了ポリシーを選択するための例を示します。
インスタンス終了ポリシー
ECS インスタンス終了ポリシーは、[拡張および縮小戦略]と[インスタンス削除ポリシー]の組み合わせです。スケーリンググループが ECS インスタンスを削除する際、その削除は両方のポリシーによって制約されます。
スケーリンググループ内の複数の ECS インスタンスがインスタンス終了ポリシーに一致する場合、Auto Scaling はそのうちのいずれか 1 つをランダムに削除します。
インスタンス終了ポリシーを指定する手順については、「スケーリンググループの管理」をご参照ください。
手動で追加した ECS インスタンスを削除したくない場合は、「ECS インスタンスを保護状態にする」をご参照ください。
スケーリングポリシー
スケーリングポリシーは、インスタンスのゾーンまたはコストに基づいて ECS インスタンスを追加または削除します。スケールインイベント中、Auto Scaling はポリシーのルールに基づいてスケーリンググループからインスタンスをフィルターして削除します。次のポリシーが利用可能です。
[優先ポリシー]:最初に指定した vSwitch が最も高い優先度になります。Auto Scaling は、最も優先度の高い vSwitch が存在するゾーンで、スケールアウトおよびスケールインアクティビティを優先的に試行します。アクティビティが実行できない場合、Auto Scaling は次に優先度の高い vSwitch が存在するゾーンで自動的に実行します。
[均衡分散ポリシー]:このポリシーは、スケーリンググループが複数の vSwitch に関連付けられており、それらの vSwitch が 3 つ以上のゾーンに分散している場合に有効になります。スケールアウトまたはスケールインアクティビティの後、ECS インスタンスは、スケーリンググループの vSwitch が存在するゾーン間で均等に分散されます。
[コスト最適化ポリシー]:このポリシーは、スケーリング設定で複数のオプションのインスタンスタイプが指定されている場合に有効になります。スケールアウトイベント中、Auto Scaling は vCPU の単位価格の昇順で ECS インスタンスの作成を試みます。スケールインイベント中、Auto Scaling は vCPU の単位価格の降順で ECS インスタンスの削除を試みます。
説明スケーリング設定でプリエンプティブル課金方式を使用する複数のインスタンスタイプが指定されている場合、Auto Scaling は対応するプリエンプティブルインスタンスを優先的に作成します。在庫不足などの理由でプリエンプティブルインスタンスタイプが作成できない場合、システムは自動的に従量課金方式を使用する ECS インスタンスの作成を試みます。
[カスタム組み合わせポリシー]:組み合わせを使用して、キャパシティ分散ポリシーをカスタマイズします。このポリシーを使用して、スケーリンググループ内の従量課金インスタンスとプリエンプティブルインスタンスの比率を調整し、ゾーン間でキャパシティのバランスを取り、要件を満たすインスタンスタイプを選択できます。
削除ポリシー
削除ポリシーは、時系列順に基づいてスケーリンググループ内の適格な ECS インスタンスをフィルターします。削除ポリシーは 2 つの段階をサポートします。
1 つの段階のみを設定した場合、Auto Scaling は第 1 段階のみに基づいてインスタンスをフィルターします。
2 つの段階を設定した場合、Auto Scaling はまず第 1 段階に基づいてインスタンスをフィルターして、次にそのフィルター結果に対して第 2 のフィルタリングを実行します。2つの段階で同じオプションを設定することはできません。
次のポリシーが利用可能です。
初期のスケーリング設定から作成されたインスタンス: Auto Scalingは、初期のスケーリング設定または初期の起動テンプレートに基づいて作成されたインスタンスを削除します。 スケーリンググループに手動で追加されたインスタンスには、スケーリング設定または起動テンプレートは関連付けられていません。 したがって、手動で追加されたインスタンスは最初に削除されません。 Auto scalingが最も早いスケーリング設定または最も早い起動テンプレートが関連付けられているすべてのインスタンスを削除した後、スケーリンググループからさらにインスタンスを削除する必要がある場合、Auto Scalingは手動で追加したインスタンスをランダムに削除します。
説明[初期のスケーリング設定から作成されたインスタンス] 設定のスケーリング設定ソースは、スケーリング設定または起動テンプレートにすることができます。
起動テンプレートのバージョンは、テンプレートの追加順序を示していません。 たとえば、スケーリンググループの作成時にlt-foress V2起動テンプレートを指定し、スケーリンググループの変更時にテンプレートをlt-foress V1起動テンプレートに置き換えると、Auto scalingはlt-foress V2起動テンプレートを最も早いテンプレートと見なします。
最も古いインスタンス: Auto Scalingは、最も早い時点で作成されたインスタンスを削除します。
最新のインスタンス: Auto Scalingは、最新の時点で作成されたインスタンスを削除します。
カスタムポリシー: Auto Scalingは、カスタムポリシーに基づいてスケーリンググループからインスタンスを削除します。 カスタムポリシーには、サービス、バージョン、および関数が含まれます。
ECS インスタンスの削除例
次の例では、以下の表にリストされている ECS インスタンスを使用します。各シナリオは、異なるインスタンス終了ポリシーの組み合わせ ([拡張および縮小戦略] + [インスタンス削除ポリシー]) の場合に、Auto Scaling が 1 つの ECS インスタンスをどのように削除するかを示しています。
次の表の各 ECS インスタンスのデータは、あくまで一例です。実際のデータについては、Auto Scaling コンソールをご参照ください。
インスタンス ID | ゾーン | 追加時刻 | スケーリング設定 (asc-1 が最も古い) | vCPU の単位価格 (米ドル) |
i-1 | 杭州ゾーン H | 2021年5月17日 11:05 | asc-1 | 1 |
i-2 | 杭州ゾーン I | 2021年5月18日 11:05 | asc-1 | 2 |
i-3 | 杭州ゾーン I | 2021年5月19日 11:05 | asc-1 | 3 |
i-4 | 杭州ゾーン H | 2021年5月20日 11:05 | asc-2 | 3 |
i-5 | 杭州ゾーン I | 2021年5月21日 11:05 | asc-2 | 3 |
シナリオ 1:スケーリングポリシー (優先度ポリシー) + 削除ポリシー
Auto Scaling は、[インスタンス削除ポリシー]に基づいて削除対象の ECS インスタンスを厳密にフィルターします。[優先ポリシー]は結果を変更しません。
この例では、[インスタンス削除ポリシー]の第 1 段階として[カスタムポリシー]が選択された場合、カスタムポリシーのフィルター結果が杭州ゾーン H と杭州ゾーン I の ECS インスタンス (インスタンス ID がそれぞれ i-1 と i-3) であると仮定します。
次の表は、このインスタンス終了ポリシーの最終的な効果を示しています。
削除ポリシーの第 1 段階 | 削除ポリシーの第 2 段階 | 説明 | 削除されるインスタンスの ID |
[スケーリング設定が最も古いインスタンス] | [最も古いインスタンス] | まず、最も古いスケーリング設定に対応する ECS インスタンスをフィルターして、その中から作成日時が最も古い ECS インスタンスを選択します。 | i-1 |
[最も新しいインスタンス] | まず、最も古いスケーリング設定に対応する ECS インスタンスをフィルターして、その中から作成日時が最も新しい ECS インスタンスを選択します。 | i-3 | |
[ポリシーなし] | 最も古いスケーリング設定に対応するインスタンスをフィルターして、その中からランダムにいずれか1つの ECS インスタンスを選択します。 | i-1、i-2、または i-3 | |
[最も古いインスタンス] | - | 作成日時が最も古い ECS インスタンスを削除します。 | i-1 |
[最も新しいインスタンス] | - | 作成日時が最も新しい ECS インスタンスを削除します。 | i-5 |
[カスタムポリシー] | [スケーリング設定が最も古いインスタンス] | まず、カスタムポリシーのルールに一致する ECS インスタンスをフィルターし、その結果の中から最も古いスケーリング設定に対応するインスタンスをさらにフィルターします。複数該当する場合は、その中からランダムにいずれか 1 つを選択します。 | i-1 または i-3 |
[最も古いインスタンス] | まず、カスタムポリシーのルールに一致する ECS インスタンスをフィルターして、その中から作成日時が最も古い ECS インスタンスを選択します。 | i-1 | |
[最も新しいインスタンス] | まず、カスタムポリシーのルールに一致する ECS インスタンスをフィルターして、その中から作成日時が最も新しい ECS インスタンスを選択します。 | i-3 | |
[ポリシーなし] | カスタムポリシーのルールに一致する ECS インスタンスをフィルターして、その中からランダムにいずれか1つの ECS インスタンスを選択します。 | i-1 または i-3 |
シナリオ 2:スケーリングポリシー (均等分散ポリシー) + 削除ポリシー
Auto Scaling は、まず[均衡分散ポリシー]に基づいて ECS インスタンスのゾーンをフィルターして、次に[インスタンス削除ポリシー]に基づいて ECS インスタンスをフィルターして削除します。これにより、ECS インスタンスが削除された後、スケーリンググループのゾーン内の ECS インスタンス数がほぼ同じになります。この例では、
杭州ゾーン I は杭州ゾーン H よりも ECS インスタンスが 1 つ多いため、均等分散ポリシーのフィルター結果は杭州ゾーン I の ECS インスタンス (インスタンス ID は i-2、i-3、i-5) となります。
[インスタンス削除ポリシー]の第 1 段階として[カスタムポリシー]が選択された場合、カスタムポリシーのフィルター結果が杭州ゾーン H と杭州ゾーン I の ECS インスタンス (インスタンス ID がそれぞれ i-1 と i-3) であると仮定します。
次の表に、このインスタンス終了ポリシーを適用した場合の最終的な効果を示します。
削除ポリシーの第 1 段階 | 削除ポリシーの第 2 段階 | 説明 | 削除されるインスタンスの ID |
[スケーリング設定が最も古いインスタンス] | [最も古いインスタンス] | まず、最も古いスケーリング設定に対応するインスタンスをフィルターして、その中から作成日時が最も古いインスタンスを選択します。 | i-2 |
[最も新しいインスタンス] | まず、最も古いスケーリング設定に対応するインスタンスをフィルターして、その中から作成日時が最も新しいインスタンスを選択します。 | i-3 | |
[ポリシーなし] | 最も古いスケーリング設定に対応するインスタンスをフィルターして、その中からランダムにいずれか1つの ECS インスタンスを選択します。 | i-2 または i-3 | |
[最も古いインスタンス] | - | 作成日時が最も古い ECS インスタンスを削除します。 | i-2 |
[最も新しいインスタンス] | - | 作成日時が最も新しい ECS インスタンスを削除します。 | i-5 |
[カスタムポリシー] | [スケーリング設定が最も古いインスタンス] | まず、カスタムポリシーのルールに一致する ECS インスタンスをフィルターして、その中から最も古いスケーリング設定に対応する ECS インスタンスを選択します。 | i-3 |
[最も古いインスタンス] | まず、カスタムポリシーのルールに一致する ECS インスタンスをフィルターして、その中から作成日時が最も古い ECS インスタンスを選択します。 | i-3 | |
[最も新しいインスタンス] | まず、カスタムポリシーのルールに一致する ECS インスタンスをフィルターして、その中から作成日時が最も新しい ECS インスタンスを選択します。 | i-3 | |
[ポリシーなし] | カスタムポリシーのルールに一致する ECS インスタンスをフィルターします。 | i-3 |
シナリオ 3:スケーリングポリシー (コスト最適化ポリシー) + 削除ポリシー
Auto Scaling は、[コスト最適化ポリシー]に基づいて vCPU の単位価格が最も高い ECS インスタンスをフィルターして削除します。スケーリンググループに vCPU の単位価格が最も高いインスタンスが複数含まれている場合、Auto Scaling は次に[インスタンス削除ポリシー]に基づいて ECS インスタンスをフィルターして削除します。この例では、
vCPU の単位価格の最高値は 3 米ドルであるため、コスト最適化ポリシーのフィルター結果は、インスタンス ID が i-3、i-4、i-5 の ECS インスタンスになります。
[インスタンス削除ポリシー]の第 1 段階として[カスタムポリシー]が選択された場合、カスタムポリシーのフィルター結果が杭州ゾーン H と杭州ゾーン I の ECS インスタンス (インスタンス ID がそれぞれ i-1 と i-3) であると仮定します。
次の表に、このインスタンス終了ポリシーを適用した場合の最終的な効果を示します。
削除ポリシーの第 1 段階 | 削除ポリシーの第 2 段階 | 説明 | 削除されるインスタンスの ID |
[スケーリング設定が最も古いインスタンス] | [最も古いインスタンス] | まず、最も古いスケーリング設定に対応するインスタンスをフィルターして、その中から作成日時が最も古いインスタンスを選択します。 | i-3 |
[最も新しいインスタンス] | まず、最も古いスケーリング設定に対応するインスタンスをフィルターして、その中から作成日時が最も新しいインスタンスを選択します。 | i-3 | |
[ポリシーなし] | 最も古いスケーリング設定に対応するインスタンスをフィルターして、その中からランダムにいずれか1つの ECS インスタンスを選択します。 | i-3 | |
[最も古いインスタンス] | - | 作成日時が最も古い ECS インスタンスを削除します。 | i-3 |
[最も新しいインスタンス] | - | 作成日時が最も新しい ECS インスタンスを削除します。 | i-5 |
[カスタムポリシー] | [スケーリング設定が最も古いインスタンス] | まず、カスタムポリシーのルールに一致する ECS インスタンスをフィルターして、その中から最も古いスケーリング設定に対応する ECS インスタンスを選択します。 | i-3 |
[最も古いインスタンス] | まず、カスタムポリシーのルールに一致する ECS インスタンスをフィルターして、その中から作成日時が最も古い ECS インスタンスを選択します。 | i-3 | |
[最も新しいインスタンス] | まず、カスタムポリシーのルールに一致する ECS インスタンスをフィルターして、その中から作成日時が最も新しい ECS インスタンスを選択します。 | i-3 | |
[ポリシーなし] | カスタムポリシーのルールに一致する ECS インスタンスをフィルターします。 | i-3 |
関連ドキュメント
複数のインスタンスタイプと複数のゾーンに基づくコスト最適化ポリシーは、Auto Scaling の成功率を向上させ、コストを削減できます。詳細については、「コスト最適化ポリシーと複数インスタンスタイプの選択の組み合わせ」をご参照ください。
Auto Scaling がスケールインアクティビティをトリガーすると、システムは設定したカスタム削除ポリシーに基づいて削除する特定のインスタンスを選択できます。スケーリンググループのカスタムポリシーを設定する方法については、「Function Compute を使用したカスタム ECS スケールインポリシー」をご参照ください。