

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

# Amazon EC2 Auto Scaling の終了ポリシーを設定する
<a name="ec2-auto-scaling-termination-policies"></a>

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

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

**Topics**
+ [デフォルトの終了ポリシーの仕組み](#default-termination-policy)
+ [デフォルトの終了ポリシーと混合インスタンスグループ](#default-termination-policy-mixed-instances-groups)
+ [事前定義された終了ポリシー](#predefined-termination-policies)
+ [Auto Scaling グループの終了ポリシーを変更する](custom-termination-policy.md)

**注記**  
Amazon EC2 Auto Scaling は、Auto Scaling グループによって異常と見なされないインスタンスにのみ終了ポリシーを適用します。その結果、Auto Scaling ヘルスチェックによって異常とマークされたインスタンスは、終了ポリシーの評価をバイパスします。  
詳細については、「[インスタンスの終了を的確に処理するようにアプリケーションを設計する](gracefully-handle-instance-termination.md)」を参照してください。

## デフォルトの終了ポリシーの仕組み
<a name="default-termination-policy"></a>

Amazon EC2 Auto Scaling がインスタンスを終了する場合、インスタンス数が最大で、スケールインから保護されていないインスタンスが 1 つ以上あるアベイラビリティーゾーンをまず特定します。次に、特定されたアベイラビリティーゾーン内の保護されていないインスタンスを次のように評価します。

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

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

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

  1. 最後に、現在の起動テンプレートの最も古いバージョンを使用したインスタンスを確認します。
+ **起動設定を使用するグループの場合** – インスタンスのいずれかが最も古い起動設定を使用しているかどうかを判断します。

古い設定のインスタンスがない場合、または複数のインスタンスが古い設定の場合、Amazon EC2 Auto Scaling は次の課金時間に近いインスタンスという次の基準を考慮します。

**次の課金時間に近いインスタンス**  
前の基準を満たすインスタンスのいずれかが、次の課金時間に最も近いかどうかを判断します。複数のインスタンスの近さが同じ場合は、ランダムに 1 つ終了します。これによって、時間ごとに課金されるインスタンスを最大限に活用できます。ただし、ほとんどの EC2 使用量は 1 秒あたりの課金になったため、この最適化の利点は少なくなっています。詳細については「[Amazon EC2 料金](https://aws.amazon.com/ec2/pricing/)」を参照してください。

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

![Auto Scaling グループがデフォルトの終了ポリシーを使用してインスタンスを終了する方法を示すフローチャート。](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/termination-policy-default-flowchart-diagram.png)


## デフォルトの終了ポリシーと混合インスタンスグループ
<a name="default-termination-policy-mixed-instances-groups"></a>

Amazon EC2 Auto Scaling は、[混合インスタンスグループ](ec2-auto-scaling-mixed-instances-groups.md)のインスタンスを終了するときに追加の基準を適用します。

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

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

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

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

1. いずれかのインスタンスが古い設定を使用しているかどうかを次の優先順序で判断します。

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

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

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

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

1. いずれかのインスタンスが次の課金時間に最も近いかどうかを判断します。複数のインスタンスの近さが同じ場合は、ランダムに 1 つ選択します。

## 事前定義された終了ポリシー
<a name="predefined-termination-policies"></a>

次の事前定義された終了ポリシーから選択します。
+ **`Default`** – デフォルトの終了のポリシーに従って、インスタンスを終了します。
+ **`AllocationStrategy`** – Auto Scaling グループのインスタンスを終了して、残りのインスタンスを、終了するインスタンスのタイプ (スポットインスタンスまたはオンデマンドインスタンス) の配分戦略に合わせます。このポリシーは、優先するインスタンスタイプが変更されたときに便利です。スポット配分戦略が `lowest-price` の場合、N 個の最低価格のスポットプール間で、スポットインスタンスの分散バランスを徐々に再調整できます。スポット配分戦略が `capacity-optimized` の場合、使用可能なスポットキャパシティーがより多いスポットプール間で、スポットインスタンスの分散バランスを徐々に再調整できます。優先度の低いタイプのオンデマンドインスタンスを優先度の高いタイプのオンデマンドインスタンスに徐々に置き換えることもできます。
+ **`OldestLaunchTemplate`** – 最も古い起動テンプレートを使用するインスタンスを終了します。このポリシーでは、現在の起動テンプレートを使用していないインスタンスが最初に終了され、その後、現在の起動テンプレートのうち最も古いバージョンを使用しているインスタンスが終了されます。このポリシーは、グループを更新し、以前の設定を使用しているインスタンスを廃止する場合に便利です。
+ **`OldestLaunchConfiguration`** – 最も古い起動設定のインスタンスを終了します。このポリシーは、グループを更新し、以前の設定を使用しているインスタンスを廃止する場合に便利です。このポリシーでは、最新以外の起動設定を使用するインスタンスが最初に終了されます。
+ **`ClosestToNextInstanceHour`** – 次の課金時間に最も近いインスタンスを終了します。これにより、時間単価のインスタンスを最大限に活用できます。
+ **`NewestInstance`** – グループ内の最も新しいインスタンスを終了します。このポリシーは、新しい起動設定をテストするが、新しい設定は本稼働環境には保持しない場合に便利です。
+ **`OldestInstance`** – グループ内の最も古いインスタンスを終了します。このオプションは、Auto Scaling グループ内のインスタンスを新しい EC2 インスタンスタイプにアップグレードする場合に役立ちます。より古いタイプのインスタンスをより新しいタイプのインスタンスに徐々に置き換えることができます。
**注記**  
Amazon EC2 Auto Scaling は、どの終了ポリシーが使用されているかに関係なく、まずアベイラビリティーゾーン間でインスタンスのバランスをとります。その結果、いくつかの新しいインスタンスが古いインスタンスの前に終了される状況が発生する可能性があります。例えば、最近追加されたアベイラビリティーゾーンがある場合、グループに使用されている他のアベイラビリティーゾーンより多くのインスタンスが含まれるアベイラビリティーゾーンがある場合。