スケーリンググループがスケールインする際、Auto Scaling は スケーリングポリシーと削除ポリシーという 2 つのポリシーを組み合わせて、削除対象の Elastic Compute Service (ECS) インスタンスを決定します。スケーリングポリシーはゾーンやコストに基づいて候補プールを絞り込み、削除ポリシーはそのプールから削除する特定のインスタンスを選択します。
ポリシーの組み合わせで定義された要件を複数のインスタンスが満たす場合、Auto Scaling はその中からランダムに 1 つを削除します。手動で追加したインスタンスが削除されないようにするには、インスタンスを保護状態に設定してください。
スケールイン選択の仕組み
スケールインの選択は、以下の 2 つのステージを順に実行します。
スケーリングポリシー:候補プールをフィルタリングし、インスタンスのサブセット (ゾーンバランス、コスト、または優先度による) に絞り込みます。
[スケールインポリシー] — そのサブセットから、作成時刻またはカスタム関数に基づいて 1 つのインスタンスを選択します。
このトピックの例では、各ポリシーの組み合わせの結果を示しているため、ご利用のスケーリンググループで Auto Scaling がどのインスタンスを削除するかを予測できます。
スケーリングポリシー
スケーリングポリシーは、スケーリンググループの作成時または変更時に設定します。これにより、Auto Scaling がゾーン間でインスタンスをどのように分散および削除するかをコントロールします。
優先ポリシー
Auto Scaling は、最も優先度の高い vSwitch のゾーンからスケールインします。そこでスケーリングが失敗した場合、次に優先度の高い vSwitch に移動します。
スケールイン中、優先ポリシーはゾーンによるフィルタリングを行いません。削除ポリシーによってどのインスタンスが削除されるかが決まります。例については、「シナリオ 1」をご参照ください。
均等配置ポリシー
スケーリンググループを異なるゾーンにある複数の vSwitch に関連付ける必要があります。各スケールインの後、ゾーン間のインスタンスの分散はバランスが保たれます。
スケールイン中、Auto Scaling はまず最も多くのインスタンスを持つゾーンを特定し、次に削除ポリシーを適用してそのゾーンから削除するインスタンスを選択します。例については、「シナリオ 2」をご参照ください。
コスト最適化ポリシー
スケーリング設定に複数のインスタンスタイプが含まれている必要があります。スケールイン中、Auto Scaling は vCPU 単位価格が最も高いインスタンスから削除します。複数のインスタンスが最高価格を共有している場合、削除ポリシーがどれを削除するかを決定します。例については、「シナリオ 3」をご参照ください。
スケーリング設定に複数のプリエンプティブルインスタンスタイプが含まれている場合、Auto Scaling はスケールアウト中にまずプリエンプティブルインスタンスを作成します。従量課金インスタンスは、在庫不足によりプリエンプティブルインスタンスが利用できない場合にのみ作成されます。
カスタム組み合わせポリシー
従量課金インスタンスとプリエンプティブルインスタンスのカスタム比率を定義し、ゾーン間でインスタンスのバランスを取り、特定のインスタンスタイプを選択できます。このポリシーは Auto Scaling コンソールで設定します。
スケールインポリシー
削除ポリシーは、スケーリングポリシーが生成した候補の中から特定のインスタンスを選択します。Auto Scaling コンソールで 1 つまたは 2 つのステップを設定します。
1 ステップ:Auto Scaling はそのステップの基準を使用してインスタンスをフィルタリングし、結果 (複数が一致した場合はランダムなインスタンス) を削除します。
2 ステップ:Auto Scaling は最初のステップを適用し、次にその結果に対して 2 番目のステップを適用します。
各ステップで利用可能なオプション:
| オプション | Auto Scaling が削除する対象 |
|---|---|
| 最も古いスケーリング設定から作成されたインスタンス | 最も古いスケーリング設定または起動テンプレートを使用して作成されたインスタンス。手動で追加されたインスタンスには関連する設定がないため、他にインスタンスが残っていない場合を除き除外されます。その場合、手動で追加されたインスタンスがランダムに削除されます。 |
| 最も古いインスタンス | 最も古い時点で作成されたインスタンス。 |
| 最も新しいインスタンス | 最も新しい時点で作成されたインスタンス。 |
| カスタムポリシー | サービス、バージョン、および関数 (Function Compute を使用して設定) を含むカスタムポリシーによって選択されたインスタンス。 |
| ポリシーなし *(2 番目のステップのみ)* | 追加のフィルタリングは行われません。Auto Scaling は最初のステップの結果からランダムにインスタンスを削除します。 |
起動テンプレートがスケーリンググループに追加された順序が「最も古い」を決定します。テンプレートのバージョン番号ではありません。たとえば、スケーリンググループの作成時に lt-foress V2 が指定され、その後グループの変更時に lt-foress V1 に置き換えられた場合、Auto Scaling は lt-foress V2 を最も古いテンプレートとして扱います。
例
以下の例では、単一のスケーリンググループ内の 5 つのインスタンスを使用します。これらの例は、各ポリシーの組み合わせに対して Auto Scaling がどのインスタンスを削除するかを示しています。
以下のインスタンスデータは説明用です。Auto Scaling コンソールの実際の値が優先されます。
| インスタンス ID | ゾーン | 作成日時 | スケーリング設定 | vCPU 単位価格 (米ドル) |
|---|---|---|---|---|
| i-1 | 杭州ゾーン H | 2021年5月17日 11:05:00 | asc-1 (最も古い) | 1 |
| i-2 | 杭州ゾーン I | 2021年5月18日 11:05:00 | asc-1 (最も古い) | 2 |
| i-3 | 杭州ゾーン I | 2021年5月19日 11:05:00 | asc-1 (最も古い) | 3 |
| i-4 | 杭州ゾーン H | 2021年5月20日 11:05:00 | asc-2 | 3 |
| i-5 | 杭州ゾーン I | 2021年5月21日 11:05:00 | asc-2 | 3 |
シナリオ 1: 優先ポリシー + 削除ポリシー
優先ポリシーはスケールイン中にゾーンでフィルタリングしないため、削除ポリシーのみがどのインスタンスを削除するかを決定します。5 つすべてのインスタンスが候補となります。
以下のカスタムポリシーの例では、カスタムポリシーは杭州ゾーン I と杭州ゾーン H にある ID が i-1 と i-3 のインスタンスを対象とします。
| 最初のステップ | 2 番目のステップ | このインスタンスが選択される理由 | 削除されるインスタンス |
|---|---|---|---|
| 最も古いスケーリング設定から作成されたインスタンス | 最も古いインスタンス | asc-1 は i-1、i-2、i-3 を作成しました。このうち、i-1 が最初に作成されました。 | i-1 |
| 最も古いスケーリング設定から作成されたインスタンス | 最も新しいインスタンス | asc-1 は i-1、i-2、i-3 を作成しました。このうち、i-3 が最後に作成されました。 | i-3 |
| 最も古いスケーリング設定から作成されたインスタンス | ポリシーなし | asc-1 は i-1、i-2、i-3 を作成しました。それ以上のフィルタリングはなく、1 つがランダムに削除されます。 | i-1、i-2、または i-3 (ランダム) |
| 最も古いインスタンス | — | ゾーンフィルターなし。i-1 はすべてのインスタンスの中で最初に作成されました。 | i-1 |
| 最も新しいインスタンス | — | ゾーンフィルターなし。i-5 はすべてのインスタンスの中で最後に作成されました。 | i-5 |
| カスタムポリシー | 最も古いスケーリング設定から作成されたインスタンス | カスタムポリシーは i-1 と i-3 を選択します。このうち、i-1 は最も古い設定である asc-1 を使用して作成されました。 | i-1 |
| カスタムポリシー | 最も古いインスタンス | カスタムポリシーは i-1 と i-3 を選択します。このうち、i-1 が最初に作成されました。 | i-1 |
| カスタムポリシー | 最も新しいインスタンス | カスタムポリシーは i-1 と i-3 を選択します。このうち、i-3 が最後に作成されました。 | i-3 |
| カスタムポリシー | ポリシーなし | カスタムポリシーは i-1 と i-3 を選択します。それ以上のフィルタリングはなく、1 つがランダムに削除されます。 | i-1 または i-3 (ランダム) |
シナリオ 2:均等配置ポリシー + 削除ポリシー
杭州ゾーン I には 3 つのインスタンス (i-2、i-3、i-5) があり、杭州ゾーン H には 2 つ (i-1、i-4) があります。ゾーン I の方がインスタンスが 1 つ多いため、Auto Scaling はバランスを回復するためにゾーン I を対象とします。候補は i-2、i-3、i-5 です。
例外:最初のステップでカスタムポリシーが設定されている場合、カスタムポリシーの対象セット i-1 と i-3 の中から i-3 (ゾーン I) を選択します。これは、インスタンス数が過剰なゾーンにあるのが i-3 のみであるためです。
| 最初のステップ | 2 番目のステップ | このインスタンスが選択される理由 | 削除済みインスタンス |
|---|---|---|---|
| 最も古いスケーリング設定から作成されたインスタンス | 最も古いインスタンス | ゾーン I の候補:i-2、i-3、i-5。asc-1 インスタンス (i-2、i-3) のうち、i-2 が最初に作成されました。 | i-2 |
| 最も古いスケーリング設定から作成されたインスタンス | 最も新しいインスタンス | ゾーン I の候補:i-2、i-3、i-5。asc-1 インスタンス (i-2、i-3) のうち、i-3 が最後に作成されました。 | i-3 |
| 最も古いスケーリング設定から作成されたインスタンス | ポリシーなし | ゾーン I の候補:i-2、i-3、i-5。ゾーン I の asc-1 インスタンスは i-2 と i-3 です。それ以上のフィルタリングはなく、1 つがランダムに削除されます。 | i-2 または i-3 (ランダム) |
| 最も古いインスタンス | — | ゾーン I の候補:i-2、i-3、i-5。その中で i-2 が最初に作成されました。 | i-2 |
| 最も新しいインスタンス | — | ゾーン I の候補:i-2、i-3、i-5。その中で i-5 が最後に作成されました。 | i-5 |
| カスタムポリシー | 最も古いスケーリング設定から作成されたインスタンス | カスタムポリシーは i-1 と i-3 を対象とします。ゾーン I にあるのは i-3 のみです。i-3 が削除されます。 | i-3 |
| カスタムポリシー | 最も古いインスタンス | カスタムポリシーは i-1 と i-3 を対象とします。ゾーン I にあるのは i-3 のみです。i-3 が削除されます。 | i-3 |
| カスタムポリシー | 最も新しいインスタンス | カスタムポリシーは i-1 と i-3 を対象とします。ゾーン I にあるのは i-3 のみです。i-3 が削除されます。 | i-3 |
| カスタムポリシー | ポリシーなし | カスタムポリシーは i-1 と i-3 を対象とします。ゾーン I にあるのは i-3 のみです。i-3 が削除されます。 | i-3 |
シナリオ 3:コスト最適化ポリシー + 削除ポリシー
すべてのインスタンスの中で最も高い vCPU 単位価格は 3 米ドルです。Auto Scaling は、すべて 3 米ドルで価格設定されている i-3、i-4、i-5 を対象とします。
例外:最初のステップでカスタムポリシーが設定されている場合、i-1 (ゾーン H) と i-3 (ゾーン I) を選択します。このうち、最高価格 (3 米ドル) を持つのは i-3 のみであるため、カスタムポリシーが適用されると常に i-3 が削除されます。
| 最初のステップ | 2 番目のステップ | このインスタンスが選択される理由 | 削除されるインスタンス |
|---|---|---|---|
| 最も古いスケーリング設定から作成されたインスタンス | 最も古いインスタンス | 最高価格の候補:i-3、i-4、i-5。asc-1 インスタンス (i-3) のうち、i-3 のみが一致します。 | i-3 |
| 最も古いスケーリング設定から作成されたインスタンス | 最も新しいインスタンス | 最高価格の候補:i-3、i-4、i-5。asc-1 インスタンス (i-3) のうち、i-3 のみが一致します。 | i-3 |
| 最も古いスケーリング設定から作成されたインスタンス | ポリシーなし | 最高価格の候補:i-3、i-4、i-5。asc-1 を使用して作成されたのは i-3 のみです。 | i-3 |
| 最も古いインスタンス | — | 最高価格の候補:i-3、i-4、i-5。その中で i-3 が最初に作成されました。 | i-3 |
| 最も新しいインスタンス | — | 最高価格の候補:i-3、i-4、i-5。その中で i-5 が最後に作成されました。 | i-5 |
| カスタムポリシー | 最も古いスケーリング設定から作成されたインスタンス | カスタムポリシーは i-1 と i-3 を選択します。このうち、最高価格を持つのは i-3 のみです。 | i-3 |
| カスタムポリシー | 最も古いインスタンス | カスタムポリシーは i-1 と i-3 を選択します。このうち、最高価格を持つのは i-3 のみです。 | i-3 |
| カスタムポリシー | 最も新しいインスタンス | カスタムポリシーは i-1 と i-3 を選択します。このうち、最高価格を持つのは i-3 のみです。 | i-3 |
| カスタムポリシー | ポリシーなし | カスタムポリシーは i-1 と i-3 を選択します。このうち、最高価格を持つのは i-3 のみです。 | i-3 |
次のステップ
コスト最適化ポリシーで複数のインスタンスタイプとゾーンを使用して、スケーリングの成功率を向上させ、コストを削減するには、「複数のインスタンスタイプの選択とコスト最適化ポリシーの組み合わせ」をご参照ください。
カスタムロジックを使用してインスタンスを削除するには、「Function Compute を使用して ECS インスタンスのカスタムスケールインポリシーを作成する」をご参照ください。
スケーリンググループのスケーリングポリシーと削除ポリシーを設定するには、「スケーリンググループの管理」をご参照ください。