スケールイン中に終了する Auto Scaling インスタンスを制御する - Amazon EC2 Auto Scaling

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

スケールイン中に終了する Auto Scaling インスタンスを制御する

Amazon EC2 Auto Scaling は、終了ポリシーを使用して、インスタンスを終了する順序を決定します。事前定義されたポリシーを使用するか、特定の要件を満たすカスタムポリシーを作成できます。カスタムポリシーまたはインスタンスのスケールイン保護を使用することで、Auto Scaling グループが、まだ終了する準備ができていないインスタンスを終了しないようにすることもできます。

Amazon EC2 Auto Scaling が終了ポリシーを使用する場合

以下のセクションでは、Amazon EC2 Auto Scaling が終了ポリシーを使用するシナリオについて説明します。

スケールインイベント

スケールインイベントは、グループの現在のキャパシティーよりも低い Auto Scaling グループ の希望するキャパシティーの新しい値がある場合にも発生します。

スケールインイベントは、次のシナリオで発生します。

  • 動的スケーリングポリシーを使用し、メトリクス値の変更の結果としてグループのサイズが小さくなる場合

  • スケジュールされたスケーリングを使用し、スケジュールされたアクションの結果としてグループのサイズが小さくなる場合

  • 手動でグループのサイズを縮小します。

次に、スケールインイベントがある場合に終了ポリシーを使用する方法の例を示します。

  1. この例の Auto Scaling グループには、1 つのインスタンスタイプ、2 つのアベイラビリティーゾーン、2 つのインスタンスの希望するキャパシティーがあるとします。また、リソース使用率の増減時にインスタンスを追加および削除する、動的スケーリングポリシーもあります。このグループの 2 つのインスタンスは、次の図に示すように 2 つのアベイラビリティーゾーンに分散されます。

    2 つのインスタンスを持つ基本的な Auto Scaling グループ。
  2. Auto Scaling グループがスケールアウトすると、Amazon EC2 Auto Scaling が新しいインスタンスを起動します。Auto Scaling グループには、次の図に示すように、2 つのアベイラビリティーゾーンに分散された 3 つのインスタンスがあります。

    1 つのインスタンスでスケールアウトした後の Auto Scaling グループ。
  3. Auto Scaling グループがスケールインすると、Amazon EC2 Auto Scaling はインスタンスのいずれかを終了します。

  4. グループに特定の終了ポリシーが割り当てられていない場合、Amazon EC2 Auto Scaling はデフォルトの終了ポリシーを使用します。2 つのインスタンスを持つアベイラビリティーゾーンを選択し、起動設定、別の起動テンプレート、または現在の起動テンプレートの最も古いバージョンから起動されたインスタンスを終了します。インスタンスが同じ起動テンプレートとバージョンから起動された場合、Amazon EC2 Auto Scaling は次の請求時間に最も近いインスタンスを選択し、終了します。

    1 つのインスタンスでスケールインした後の Auto Scaling グループ。

インスタンスの更新

インスタンスの更新を開始して、Auto Scaling グループのインスタンスを更新できます。インスタンスの更新中、Amazon EC2 Auto Scaling はグループのインスタンスを終了し、終了したインスタンスの置換インスタンスを起動します。Auto Scaling グループの終了ポリシーは、どのインスタンスを最初に置き換えるかを制御します。

アベイラビリティーゾーンの再調整

Amazon EC2 Auto Scaling は、Auto Scaling グループに対して有効になっているアベイラビリティーゾーン全体でキャパシティーを均等に分散させます。これにより、アベイラビリティーゾーンの停止による影響を軽減できます。アベイラビリティーゾーン間でのキャパシティーの分散のバランスが崩れた場合、Amazon EC2 Auto Scaling は、有効なアベイラビリティーゾーン内でインスタンスが最も少ないインスタンスを起動し、他の場所でインスタンスを終了することによって、Auto Scaling グループを再分散します。終了ポリシーは、最初に終了を優先するインスタンスを制御します。

アベイラビリティーゾーン間でのインスタンスの分散のバランスが崩れる原因はいくつかあります。

インスタンスの削除

Auto Scaling グループからインスタンスをデタッチ、スタンドバイにインスタンスを置くか、インスタンスを明示的に終了して希望するキャパシティーを減らし、代替インスタンスが起動しないようにすると、グループのバランスが崩れる可能性があります。この場合、 Amazon EC2 Auto Scaling は、アベイラビリティーゾーン間のバランスを再度取って不均衡を補います。

最初に指定したアベイラビリティーゾーンとは異なるアベイラビリティーゾーンの使用

Auto Scaling グループを拡張して追加のアベイラビリティーゾーンを含めるか、使用するアベイラビリティーゾーンを変更した場合、Amazon EC2 Auto Scaling は新しいアベイラビリティーゾーンでインスタンスを起動し、他のゾーンでインスタンスを終了します。これにより、インスタンスがアベイラビリティーゾーンに均等に広がります。

可用性の停止

可用性の停止はまれにしか発生しません。ただし、1 つのアベイラビリティーゾーンが使用できなくなってから回復すると、Auto Scaling グループでアベイラビリティーゾーン間で不均衡になる可能性があります。Amazon EC2 Auto Scaling はグループを徐々に再分散しようとしますが、再分散すると他のゾーンのインスタンスが終了する可能性があります。

例えば、1 つのインスタンスタイプ、2 つのアベイラビリティーゾーン、2 つのインスタンスの希望するキャパシティーのある Auto Scaling グループがあるとします。1 つのアベイラビリティーゾーンで障害が発生した場合、Amazon EC2 Auto Scaling は正常なアベイラビリティーゾーンで新しいインスタンスを自動的に起動し、異常のあるアベイラビリティーゾーン内のインスタンスを置き換えます。異常なアベイラビリティーゾーンが正常な状態にその後戻ると、Amazon EC2 Auto Scaling はこのゾーンで新しいインスタンスを自動的に起動し、影響を受けないゾーンのインスタンスを終了します。

注記

分散バランスを再調整する場合、Amazon EC2 Auto Scaling は再調整によってアプリケーションのパフォーマンスや可用性が低下しないように、古いインスタンスを終了する前に新しいインスタンスを起動します。

Amazon EC2 Auto Scaling は、古いインスタンスを終了する前に新しいインスタンスの起動を試みるため、指定した最大キャパシティーまたはそれに近い状態になると、再分散アクティビティの処理が遅くなったり、完全に停止する可能性があります。この問題を回避するため、再分散アクティビティの間、グループに対して指定されている最大キャパシティーが一時的に 10% のマージン(または 1 インスタンスのマージンのどちらか大きい方)で増えます。このマージンは、グループが最大キャパシティーに達しているか、それに近い状態であり、ユーザーがゾーンの再設定をリクエストしたため、またはゾーンの可用性の問題を補正するために、グループの再分散が必要な場合にのみ追加されます。この追加キャパシティーは、グループの再分散に要する時間にわたってのみ提供されます。