Amazon EC2 Auto Scaling の終了ポリシーを設定する - Amazon EC2 Auto Scaling

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

Amazon EC2 Auto Scaling の終了ポリシーを設定する

終了ポリシーは、Amazon EC2 Auto Scaling が特定の順序でインスタンスを終了するために従う基準を提供します。デフォルトでは、Amazon EC2 Auto Scaling は古い設定を使用しているインスタンスを最初に終了するように設計された終了ポリシーを使用します。終了ポリシーを変更して、最初に終了することが最も重要なインスタンスを制御できます。

Amazon EC2 Auto Scaling がインスタンスを終了すると、Auto Scaling グループで有効になっているアベイラビリティーゾーン間のバランスを維持しようとします。ゾーンバランスの維持は、終了ポリシーよりも優先されます。1 つのアベイラビリティーゾーンに他のアベイラビリティーゾーンよりも多くのインスタンスがある場合、Amazon EC2 Auto Scaling はまず不均衡なゾーンに終了ポリシーを適用します。アベイラビリティーゾーンのバランスが取れている場合は、すべてのゾーンに終了ポリシーが適用されます。

デフォルトの終了ポリシーの仕組み

Amazon EC2 Auto Scaling は、インスタンスを終了する必要がある場合、まず、どのアベイラビリティーゾーン (またはゾーン) が最も多いインスタンスと、スケールインから保護されていないインスタンスを少なくとも 1 つ特定します。次に、次のように、識別されたアベイラビリティーゾーン内の保護されていないインスタンスを評価します。

古い設定を使用するインスタンス
  • 起動テンプレートを使用するグループの場合 – いずれかのインスタンスが古い設定を使用しているかどうかを判断し、次の順序で優先順位を付けます。

    1. まず、起動設定で起動されたインスタンスを確認します。

    2. 次に、現在の起動テンプレートではなく、別の起動テンプレートを使用して起動されたインスタンスを確認します。

    3. 最後に、現在の起動テンプレートの最も古いバージョンを使用しているインスタンスを確認します。

  • 起動設定を使用するグループの場合 — いずれかのインスタンスが最も古い起動設定を使用しているかどうかを確認します。

古い設定のインスタンスが見つからない場合、または複数のインスタンスから選択できる場合、Amazon EC2 Auto Scaling は次の請求時間に近いインスタンスの次の基準を考慮します。

次の請求時間に近いインスタンス

前の条件を満たすインスタンスのいずれかが、次の請求時間に最も近いかどうかを確認します。複数のインスタンスが等しく近い場合は、1 つをランダムに終了します。これにより、時間単位で請求されるインスタンスの使用を最大化できます。ただし、ほとんどのEC2使用量は 1 秒あたりに請求されるようになったため、この最適化によるメリットは少なくなります。詳細については、「Amazon のEC2料金」を参照してください。

次のフロー図は、起動テンプレートを使用するグループに対してデフォルトの終了ポリシーがどのように機能するかを示しています。

Auto Scaling グループがデフォルトの終了ポリシーを使用してインスタンスを終了する方法を示すフローチャート。

デフォルトの終了ポリシーと混合インスタンスグループ

Amazon EC2 Auto Scaling は、混合インスタンスグループ でインスタンスを終了するときに追加の基準を適用します。

Amazon EC2 Auto Scaling は、インスタンスを終了する必要がある場合、まずグループの設定に基づいて終了する購入オプション (スポットまたはオンデマンド) を特定します。これにより、グループが時間の経過とともにスポットインスタンスとオンデマンドインスタンスの指定された比率に向かうようになります。

次に、各アベイラビリティーゾーン内で終了ポリシーを個別に適用します。これにより、アベイラビリティーゾーンのバランスを維持するために終了するスポットインスタンスまたはオンデマンドインスタンスが決まります。同じロジックが、インスタンスタイプに重みが定義されている混合インスタンスグループに適用されます。

各ゾーン内では、デフォルトの終了ポリシーは次のように動作し、識別された購入オプション内でどの保護されていないインスタンスを終了できるかを決定します。

  1. Auto Scaling グループの指定された割り当て戦略との整合性を向上させるために、いずれかのインスタンスを終了できるかどうかを決定します。最適化するインスタンスが特定されない場合、または複数のインスタンスから選択できる場合、評価は続行されます。

  2. いずれかのインスタンスが古い設定を使用しているかどうかを確認し、次の順序で優先順位を付けます。

    1. まず、起動設定で起動されたインスタンスを確認します。

    2. 次に、現在の起動テンプレートではなく、別の起動テンプレートを使用して起動されたインスタンスを確認します。

    3. 最後に、現在の起動テンプレートの最も古いバージョンを使用しているインスタンスを確認します。

    古い設定のインスタンスが見つからない場合、または複数のインスタンスから選択できる場合、評価は続行されます。

  3. いずれかのインスタンスが次の請求時間に最も近いかどうかを確認します。複数のインスタンスが等しく近い場合は、ランダムに 1 つ選択します。

定義済みの終了ポリシー

次の事前定義された終了ポリシーから選択します。

  • Default – デフォルトの終了ポリシーに従ってインスタンスを終了します。

  • AllocationStrategy – Auto Scaling グループのインスタンスを終了して、残りのインスタンスを終了しているインスタンスのタイプ (スポットインスタンスまたはオンデマンドインスタンス) の割り当て戦略に合わせます。このポリシーは、優先するインスタンスタイプが変更されたときに便利です。スポット配分戦略が lowest-price の場合、N 個の最低価格のスポットプール間で、スポットインスタンスの分散バランスを徐々に再調整できます。スポット配分戦略が capacity-optimized の場合、使用可能なスポットキャパシティーがより多いスポットプール間で、スポットインスタンスの分散バランスを徐々に再調整できます。優先度の低いタイプのオンデマンドインスタンスを優先度の高いタイプのオンデマンドインスタンスに徐々に置き換えることもできます。

  • OldestLaunchTemplate – 最も古い起動テンプレートを持つインスタンスを終了します。このポリシーでは、現在の起動テンプレートを使用していないインスタンスが最初に終了され、その後、現在の起動テンプレートのうち最も古いバージョンを使用しているインスタンスが終了されます。このポリシーは、グループを更新し、以前の設定を使用しているインスタンスを廃止する場合に便利です。

  • OldestLaunchConfiguration – 最も古い起動設定を持つインスタンスを終了します。このポリシーは、グループを更新し、以前の設定を使用しているインスタンスを廃止する場合に便利です。このポリシーでは、最新以外の起動設定を使用するインスタンスが最初に終了されます。

  • ClosestToNextInstanceHour – 次の請求時間に最も近いインスタンスを終了します。これにより、時間単価のインスタンスを最大限に活用できます。

  • NewestInstance – グループ内の最新のインスタンスを終了します。このポリシーは、新しい起動設定をテストするが、新しい設定は本稼働環境には保持しない場合に便利です。

  • OldestInstance – グループ内の最も古いインスタンスを終了します。このオプションは、Auto Scaling グループのインスタンスを新しいEC2インスタンスタイプにアップグレードする場合に便利です。より古いタイプのインスタンスをより新しいタイプのインスタンスに徐々に置き換えることができます。

    注記

    Amazon EC2 Auto Scaling は、どの終了ポリシーが使用されているかに関係なく、常にアベイラビリティーゾーン間でインスタンスを最初に分散します。その結果、いくつかの新しいインスタンスが古いインスタンスの前に終了される状況が発生する可能性があります。例えば、最近追加されたアベイラビリティーゾーンがある場合、グループに使用されている他のアベイラビリティーゾーンより多くのインスタンスが含まれるアベイラビリティーゾーンがある場合。