

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

# Auto Scaling グループのインスタンスメンテナンスポリシー
<a name="instance-maintenance-policy-overview-and-considerations"></a>

このトピックでは、使用可能なオプションの概要と、インスタンスメンテナンスポリシーの作成時に考慮すべき点を説明します。

**Topics**
+ [概要:](#instance-maintenance-policy-overview)
+ [重要な概念](#instance-maintenance-policy-core-concepts)
+ [インスタンスのウォームアップ](#instance-maintenance-policy-instance-warm-up)
+ [ヘルスチェックの猶予期間](#instance-maintenance-policy-health-check-grace-period)
+ [Auto Scaling グループをスケールする](#instance-maintenance-policy-scaling-limits)
+ [シナリオ例](#instance-maintenance-policy-scenarios)

## 概要:
<a name="instance-maintenance-policy-overview"></a>

Auto Scaling グループのインスタンスメンテナンスポリシーを作成すると、そのポリシーはインスタンスの置き換えを引き起こす Amazon EC2 Auto Scaling イベントに影響を与えます。これにより、同じ Auto Scaling グループ内でより一貫した置き換え動作が得られます。また、必要に応じて、可用性やコストに合わせてグループを最適化することもできます。

コンソールでは、次の設定オプションを使用できます。
+ **終了前の起動** — 既存のインスタンスを終了する前に、新しいインスタンスをプロビジョニングする必要があります。このアプローチは、コスト削減よりも可用性を重視するアプリケーションに適しています。
+ **終了と起動** — 新しいインスタンスは、既存のインスタンスが終了すると同時にプロビジョニングされます。このアプローチは、可用性よりもコスト削減を優先するアプリケーションに適しています。また、インスタンスを置き換える場合でも、現在利用可能な容量を超える容量を起動する必要がないアプリケーションにも適しています。
+ **カスタムポリシー** — このオプションを使用すると、インスタンスを置き換えするときに必要なキャパシティの最小値と最大値の範囲をカスタムで指定して、ポリシーを設定できます。このアプローチは、コストと可用性の最適なバランスを重視する場合に効果的です。

Auto Scaling グループはデフォルトでインスタンスメンテナンスポリシーが設定されていないため、インスタンスのメンテナンスイベントが発生した場合、デフォルトの動作に従って処理されます。デフォルトの動作については、次の表で説明します。


**インスタンスメンテナンスイベントのデフォルトの動作**  

|  [Event] (イベント)  |  説明  |  デフォルトの 動作  | 
| --- | --- | --- | 
|  ヘルスチェックの失敗  |  インスタンスがヘルスチェックに失敗すると自動的に発生します。Amazon EC2 Auto Scaling は、ヘルスチェックに失敗したインスタンスを置き換えます。ヘルスチェックの失敗の原因については、「[Auto Scaling グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。  |  終了と起動。  | 
|  インスタンスの更新  |  インスタンスの更新を開始すると実行されます。インスタンスの更新では、設定に応じてインスタンスを 1 つずつ、複数ずつ、またはすべてを一度に置き換えられます。詳細については、「[インスタンスの更新を使用して Auto Scaling グループのインスタンスを更新する](asg-instance-refresh.md)」を参照してください。  |  終了と起動。  | 
|  最大インスタンス有効期間  |  インスタンスが Auto Scaling グループに指定したインスタンスの最大有効期間に達すると、自動的に実行されます。Amazon EC2 Auto Scaling は、インスタンスの最大有効期間に達したインスタンスを置き換えます。詳細については、「[インスタンスの最大存続期間に基づいて Auto Scaling インスタンスを置き換える](asg-max-instance-lifetime.md)」を参照してください。  |  終了と起動。  | 
|  リバランシング  |  グループのバランスが崩れるような根本的な変更があった場合に自動的に実行されます。Amazon EC2 Auto Scaling は、次の状況でグループのバランスを再調整します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/instance-maintenance-policy-overview-and-considerations.html)  |  終了前の起動。 Amazon EC2 Auto Scaling は、*最大キャパシティ*の 10% を超えて、グループのサイズを増やすことができます。ただし、キャパシティの再調整を使用している場合、これらの制限を超えることができるのは、*希望するキャパシティ*の最大 10% のみです。  | 

Amazon EC2 Auto Scaling は、以下の状況では引き続きデフォルトで終了および起動されます。したがって、これらの状況のいずれかが発生すると、グループのキャパシティがインスタンスメンテナンスポリシーの下限しきい値を下回る可能性があります。
+ 例えば、人為的な操作などにより、インスタンスが予期せず終了した場合。Amazon EC2 Auto Scaling は、実行されなくなったインスタンスを直ちに置き換えます。詳細については、「[Amazon EC2 ヘルスチェック](health-checks-overview.md#instance-health-detection)」を参照してください。
+ Amazon EC2 Auto Scaling が代替インスタンスを起動する前に、Amazon EC2 がスケジュールされたイベントの一環としてインスタンスを再起動、停止、またはリタイアした場合。予これらのイベントの詳細については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスの予定されたイベント](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html)」を参照してください。
+ Amazon EC2 スポットサービスがスポットインスタンスの中断を開始し、スポットインスタンスが強制的に終了した場合。

スポットインスタンスでは、Auto Scaling グループでキャパシティの再調整を有効にした場合、インスタンスに、スポット中断を開始する前に起動した別のスポットプールからの保留中のインスタンスが既にある可能性があります。キャパシティの再調整の仕組みの詳細については、「[リスクがあるスポットインスタンスを置き換えるための Auto Scaling でのキャパシティの再調整](ec2-auto-scaling-capacity-rebalancing.md)」を参照してください。

ただし、スポットインスタンスは常に利用できるとは限らず、2 分前に通知されて停止される可能性があるため、新しいインスタンスの起動前にインスタンスが中断された場合、インスタンスメンテナンスポリシーの下限しきい値を超える可能性があります。

## 重要な概念
<a name="instance-maintenance-policy-core-concepts"></a>

開始する前に、以下の主要概念と用語を理解してください。

**希望するキャパシティ**  
*希望するキャパシティ*は、Auto Scaling グループの作成時のキャパシティを表します。また、グループにスケーリング条件がアタッチされていない場合に、グループが維持しようとするキャパシティでもあります。

**インスタンスメンテナンスポリシー**  
*インスタンスメンテナンスポリシー*は、インスタンスのメンテナンスイベントが発生した場合に、既存のインスタンスが終了する前に新しいインスタンスがプロビジョニングされるかどうかを制御します。また、Auto Scaling グループが同時に複数のインスタンスを置き換えるために希望するキャパシティをどの程度下回り、超えるかも決まります。

**最大正常率**  
*最大正常率*は、インスタンスを置き換えるときに Auto Scaling グループが増やすことができる、希望するキャパシティの割合です。これは、ワークロードをサポートするために、稼働中で正常な状態、または保留中のインスタンスが、グループ内で占める割合の最大値を表します。コンソールでは、**終了前の起動**オプションまたは **カスタムポリシー**オプションのいずれかを使用すると、最大正常率を設定できます。有効な値は 100～200% です。

**最小正常率**  
*最小正常率*とは、インスタンスを置き換えるときにワークロードをサポートするため、稼働状態を維持し、正常な状態を保ち、すぐに使用できるようにしておくのに必要なキャパシティの割合です。インスタンスは、最初のヘルスチェックが正常に完了し、指定されたウォームアップ時間が経過すると、正常と見なされ、すぐに使用できます。コンソールで、**終了と起動**オプションまたは**カスタムポリシー**オプションのいずれかを使用すると、最小正常率を設定できます。有効な値は 0～100% です。  
インスタンスをより速く置き換えるには、最小正常率を低く設定します。ただし、正常なインスタンスが十分にない場合、可用性が低下する可能性があります。複数のインスタンスが置き換えられる状況で可用性を維持するために、適切な値を選択することをお勧めします。

## インスタンスのウォームアップ
<a name="instance-maintenance-policy-instance-warm-up"></a>

インスタンスが `InService` 状態になった後に初期化する時間が必要な場合は、Auto Scaling グループのデフォルトのインスタンスウォームアップを有効にします。デフォルトのインスタンスウォームアップ機能を使うと、インスタンスの準備が整う前に、インスタンスを最小正常率の計算から除外できます。これにより、Amazon EC2 Auto Scaling は、既存のインスタンスを停止する前に、ワークロードに対応するために十分なキャパシティを確保するのにかかる時間を考慮するようになります。

デフォルトのインスタンスウォームアップ機能を有効にすることで、動的スケーリングに利用される Amazon CloudWatch メトリクスの精度が向上し、より正確なスケーリングが可能になります。Auto Scaling グループにスケーリングポリシーが設定されている場合、グループがスケールアウトするとき、インスタンスが初期化を完了する前に CloudWatch メトリクスにカウントされないように、同じデフォルトのウォームアップ期間が使用されます。

詳細については、「[Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する](ec2-auto-scaling-default-instance-warmup.md)」を参照してください。

## ヘルスチェックの猶予期間
<a name="instance-maintenance-policy-health-check-grace-period"></a>

Amazon EC2 Auto Scaling は、Auto Scaling グループが使用するヘルスチェックのステータスに基づいてインスタンスが正常かどうかを判断します。詳細については、「[Auto Scaling グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。

これらのヘルスチェックをできるだけ早く開始するには、グループのヘルスチェック猶予期間をあまり長く設定しないでください。ただし、Elastic Load Balancing ヘルスチェックがターゲットがリクエストを処理できるかどうかを判断するのに十分な長さに設定します。詳細については、「[Auto Scaling グループにヘルスチェックの猶予期間を設定する](health-check-grace-period.md)」を参照してください。

## Auto Scaling グループをスケールする
<a name="instance-maintenance-policy-scaling-limits"></a>

インスタンスメンテナンスポリシーは、インスタンスメンテナンスイベントにのみ適用されます。グループが手動または自動でスケーリングされるのを防ぐことはできません。

Auto Scaling グループにスケーリングポリシーまたはスケジュールされたアクションがアタッチされている場合、インスタンスメンテナンスイベントの発生中に並行して実行されることがあります。この場合、グループの希望するキャパシティが増減する可能性がありますが、定義したスケーリング制限内に限られます。これらの制限の詳細については、「[Auto Scaling グループのスケーリング制限を設定する](asg-capacity-limits.md)」を参照してください。

## シナリオ例
<a name="instance-maintenance-policy-scenarios"></a>

一般的なシナリオでは、インスタンスのメンテナンスポリシーと希望するキャパシティは次のようになります。
+ 最小正常率 = 90%
+ 最大正常率 = 120%
+ 希望するキャパシティ ＝ 100

インスタンスのメンテナンスイベント実行中は、Auto Scaling グループのインスタンス数が 90～120 の間で変動することがあります。イベント後、グループはインスタンス数を 100 に戻します。

ウォームプールを持つ Auto Scaling グループでインスタンスメンテナンスポリシーを使用する場合、正常率の最小値と最大値は Auto Scaling グループとウォームプールに個別に適用されます。

例えば、これが設定であるとします。
+ 最小正常率 = 90%
+ 最大正常率 = 120%
+ 希望するキャパシティ ＝ 100
+ ウォームプールサイズ = 10

インスタンスの更新を開始してグループのインスタンスをリサイクルする場合、Amazon EC2 Auto Scaling は最初に Auto Scaling グループのインスタンスを置き換え、次にウォームプール内のインスタンスを置き換えます。Amazon EC2 Auto Scaling が Auto Scaling グループ内のインスタンスの置き換えの処理を行っている間、グループ内のインスタンス数は 90 から 120 の間で変動する可能性があります。グループでの置換が完了すると、Amazon EC2 Auto Scaling はウォームプール内のインスタンスの置き換えを開始します。これが発生している間、ウォームプールのインスタンス数が 9～12 個になる可能性があります。