スケールイン中に終了する 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 はインスタンスの 1 つを終了します。

  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 は新しいアベイラビリティーゾーンでインスタンスを起動し、他のゾーンのインスタンスを終了して、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 インスタンスのマージンのどちらか大きい方)で増えます。このマージンは、グループが最大キャパシティーに達しているか、それに近い状態であり、ユーザーがゾーンの再設定をリクエストしたため、またはゾーンの可用性の問題を補正するために、グループの再分散が必要な場合にのみ追加されます。この追加キャパシティーは、グループの再分散に要する時間にわたってのみ提供されます。