

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

# インスタンスの更新を使用して Auto Scaling グループのインスタンスを更新する
<a name="asg-instance-refresh"></a>

Auto Scaling グループのインスタンスを更新するには、インスタンスの更新を使用できます。この機能は、設定変更でインスタンスまたはそのルートボリュームを置き換える必要がある場合、特に Auto Scaling グループに多数のインスタンスが含まれている場合に便利です。

インスタンスの更新が役立つ状況には、次のようなものがあります。
+ Auto Scaling グループに新しい Amazon マシンイメージ (AMI) またはユーザーデータスクリプトをデプロイします。変更を含む新しい起動テンプレートを作成し、インスタンスの更新を使用して更新をすぐにロールアウトできます。
+ インスタンスを新しいインスタンスタイプに移行して、最新の改善点と最適化を活用します。
+ Auto Scaling グループの起動設定の使用から起動テンプレートの使用への切り替え。起動設定をコピーしてテンプレートを起動し、インスタンスの更新を使用してインスタンスを新しいテンプレートに更新できます。起動テンプレートの移行については、「[Auto Scaling グループを起動テンプレートに移行する](migrate-to-launch-templates.md)」を参照してください。
+ 長時間実行されるインスタンスの状態を維持しながらセキュリティパッチやソフトウェア更新を適用し、GPU や Mac インスタンスなどの特殊なインスタンスタイプで容量の制約を回避します。

**Topics**
+ [インスタンスの更新の仕組み](instance-refresh-overview.md)
+ [デフォルト値について説明する](understand-instance-refresh-default-values.md)
+ [インスタンスの更新の開始](start-instance-refresh.md)
+ [インスタンスの更新をモニタリングする](check-status-instance-refresh.md)
+ [ルートボリュームを置き換える](replace-root-volume.md)
+ [インスタンスの更新のキャンセル](cancel-instance-refresh.md)
+ [ロールバックで変更の取り消し](instance-refresh-rollback.md)
+ [スキップマッチングの使用](asg-instance-refresh-skip-matching.md)
+ [チェックポイントの追加](asg-adding-checkpoints-instance-refresh.md)

# Auto Scaling グループでのインスタンスの更新の仕組み
<a name="instance-refresh-overview"></a>

このトピックでは、インスタンスの更新がどのように機能するかを説明し、インスタンスを効果的に活用するための基礎知識について紹介します。

**Topics**
+ [仕組み](#instance-refresh-how-it-works)
+ [重要な概念](#instance-refresh-core-concepts)
+ [ヘルスチェックの猶予期間](#instance-refresh-health-check-grace-period)
+ [インスタンスタイプの互換性](#instance-type-compatibility)
+ [制限事項](#instance-refresh-limitations)

## 仕組み
<a name="instance-refresh-how-it-works"></a>

Auto Scaling グループのインスタンスを更新するには、アプリケーションの最新バージョンと、実行するその他の更新を含む新しい設定を定義できます。

インスタンスの更新では、インスタンスを更新するための 2 つの戦略がサポートされています。
+ **ローリング戦略 (デフォルト)** — 設定に従ってインスタンスを終了し、新しいインスタンスをバッチで起動します。これにより、Auto Scaling グループは更新プロセス全体で必要な容量と可用性を維持できます。
+ **ルートボリュームの置き換え戦略** — インスタンスを終了せずにルートボリュームのみを置き換えることで、インスタンスを更新します。これにより、インスタンスネットワークインターフェイス、非ルート EBS ボリューム、インスタンスストアデータが保持されます。

ルートボリュームの置き換え戦略の要件:
+ Auto Scaling グループは混合インスタンスポリシーを使用する必要があります
+ 混合インスタンスポリシーのすべてのオーバーライドでは、 を指定する必要があります。 `ImageId`
+ AMIs には 1 つのルートボリュームのみを含める必要があります
+ すべてのインスタンスは、グループの起動テンプレート設定と一致する必要があります
+ `ImageId` オーバーライドを含む混合インスタンスポリシーを使用して、必要な設定でインスタンスの更新を開始する必要があります。

スキップマッチングを有効にすると、Auto Scaling は各インスタンスの現在の AMI ID を目的の設定の AMI IDs と比較します。AMI IDs が一致しないインスタンスのみを置き換えるため、更新済みのインスタンスはスキップできます。

### インスタンスの更新を実行する
<a name="instance-refresh-process"></a>

インスタンスの更新を開始し、その設定に基づいて既存のインスタンスを新しいインスタンスに置き換えます。

1. 新しい起動テンプレートを作成するか、新しい Amazon マシンイメージ (AMI) などの必要な設定変更で既存のテンプレートを更新します。詳細については、「[Auto Scaling グループの起動テンプレートを作成する](create-launch-template.md)」を参照してください。

1. Amazon EC2 Auto Scaling コンソール AWS CLI、または SDK を使用してインスタンスの更新を開始します。
   + 作成した新しい起動テンプレートまたは起動テンプレートのバージョンを指定します。これは、新しいインスタンスを起動するために使用されます。
   + 適切な最小正常率と最大正常率を設定します。この設定により、同時に置き換えられるインスタンスの数と、古いインスタンスを終了する前に新しいインスタンスを起動するかどうかが制御されます。
   + 必要に応じて、以下の設定を行います。
     + **チェックポイント** – 一定割合のインスタンスが置き換えられた後、インスタンスの更新を一時停止して、進行状況を確認します。
     + **ベイク時間** – インスタンスの更新が完了とみなされる前に、インスタンスの更新の終了時に一時停止してインスタンスのヘルスを検証します。
     + **スキップマッチング** – 古いインスタンスを新しい設定と比較し、一致しないインスタンスのみを置き換えます。コンソールからインスタンスの更新を開始すると、スキップマッチングはデフォルトで有効になります。
     + **複数のインスタンスタイプ** – 希望する設定の一部として、新規または更新された[混合インスタンスポリシー](ec2-auto-scaling-mixed-instances-groups.md)を適用します。

インスタンスの更新が開始されると、Amazon EC2 Auto Scaling は次のようになります。
+ 最小正常率および最大正常率に基づいて、バッチ内のインスタンスを置き換えます。
+ 最小正常率が 100% に設定されている場合、古いインスタンスを終了する前に新しいインスタンスを起動します。これにより、希望するキャパシティが常に維持されます。
+ インスタンスのヘルスステータスを確認し、ウォームアップ時間を確保してから、残りのインスタンスを置き換えます。
+ 異常が見つかったインスタンスを終了して置き換えます。
+ インスタンスの更新が成功すると、新しい設定変更で Auto Scaling グループ設定が自動的に更新されます。
+ ウォーム プール内のインスタンスの前に、`InService` インスタンスを置き換えます。

次のフロー図は、最小正常率を 100% に設定した場合の、終了前の起動動作を示しています。

![\[最小正常率が 100% に設定されている場合のインスタンスの更新の仕組みを示す図。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/instance-refresh-high-level-flowchart-diagram.png)


**注記**  
インスタンス更新の最小正常率と最大正常パーセンテージは、インスタンスメンテナンスポリシーを設定していない場合、または既存のポリシーを上書きする必要がある場合のみ指定する必要があります。詳細については、「[インスタンスメンテナンスポリシー](ec2-auto-scaling-instance-maintenance-policy.md)」を参照してください。  
同様に、インスタンス更新のインスタンスウォームアップ期間を指定する必要があるのは、デフォルトのウォームアップを有効にしていない場合、またはデフォルトを上書きする必要がある場合のみです。詳細については、「[Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する](ec2-auto-scaling-default-instance-warmup.md)」を参照してください。

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

開始する前に、以下の インスタンス更新の主要概念を理解してください。

**最小正常率**  
*最小正常率*は、更新を続行できるように、インスタンスの更新中に稼働状態を維持し、正常な状態で使用できる状態に維持する必要があるキャパシティの割合です。例えば、最小正常率が 90% で、最大正常率が 100% の場合、キャパシティの 10% が一度に置き換えられます。新しいインスタンスがヘルスチェックに合格しなかった場合、Amazon EC2 Auto Scaling が終了してインスタンスを置き換えます。インスタンスの更新で正常なインスタンスを起動できない場合、最終的に失敗し、グループの残りの 90% はそのままになります。新しいインスタンスが正常な状態を維持してウォームアップ期間が終了した場合、Amazon EC2 Auto Scaling は他のインスタンスの置き換えを続行できます。  
インスタンスの更新では、インスタンスを 1 つずつ、複数ずつ、またはすべてを一度に置き換えることができます。一度に 1 つのインスタンスを置き換えるには、最小正常率と最大正常率の両方を 100% に設定します。この変更により、終了する前にインスタンスの更新の動作が起動するように変更され、グループのキャパシティが希望するキャパシティを下回ることが防止されます。すべてのインスタンスを一度に置き換えるには、最小正常率を 0% に設定します。

**最大正常率**  
*最大正常率*は、インスタンスを置き換えるときに Auto Scaling グループが増加できる、適切なキャパシティの割合です。最小と最大の差分は 100 を超えることはできません。範囲を大きくすると、同時に置き換えることができるインスタンスの数が増えます。

**インスタンスのウォームアップ**  
*インスタンスのウォームアップ*とは、新しいインスタンスの状態が `InService` に変更されてから、初期化が完了したとみなされるまでの期間です。インスタンスの更新中、インスタンスがヘルスチェックに合格した場合、新しく起動されたインスタンスが正常であると判断した後、Amazon EC2 Auto Scaling はすぐに次のインスタンスの置き換えに進みません。ウォームアップ期間を待機してから、次のインスタンスの置き換えに進みます。これは、アプリケーションがリクエストに応答するまでにまだ初期化時間が必要な場合に役立ちます。  
インスタンスのウォームアップは、デフォルトのインスタンスのウォームアップと同じように機能します。したがって、同じスケーリングに関する考慮事項が適用されます。詳細については、「[Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する](ec2-auto-scaling-default-instance-warmup.md)」を参照してください。

**必要な設定**  
*必要な設定*は、Amazon EC2 Auto Scaling が Auto Scaling グループ全体にデプロイする新しい構成です。例えば、インスタンスに新しい起動テンプレートおよび新しいインスタンスタイプを指定できます。インスタンスの更新中に、Amazon EC2 Auto Scaling は Auto Scaling グループを希望の設定に更新します。インスタンスの更新中にスケールアウト イベントが発生した場合、Amazon EC2 Auto Scaling は、グループの現在の設定ではなく、希望の設定で新しいインスタンスを起動します。インスタンスの更新が成功した後、Amazon EC2 Auto Scaling は Auto Scaling グループの設定を更新し、インスタンスの更新の一環として指定した新しい必要な設定を反映します。

**スキップマッチング**  
スキップマッチングは、既に最新の更新が適用されているインスタンスを無視するように Amazon EC2 Auto Scaling に指示します。これにより、必要以上のインスタンスを置き換えることはありません。これは、Auto Scaling グループが特定バージョンの起動テンプレートを使用し、異なるバージョンを使用するインスタンスのみを置き換えることを確認したいときに役立ちます。

**チェックポイント**  
*チェックポイント*とは、インスタンスの更新が指定した時間のみ一時停止する時点のことです。インスタンスの更新には、複数のチェックポイントを含めることができます。Amazon EC2 Auto Scaling は、チェックポイントごとにイベントを発行します。したがって、EventBridge ルールを追加し、チェックポイントに到達したときに Amazon SNS などのターゲットにイベントを送信して通知できます。チェックポイントに到達した後で、デプロイを検証する機会があります。問題が特定された場合、インスタンスの更新をキャンセルまたはロールバックできます。更新プログラムを段階的にデプロイできることは、チェックポイントのキーの利点です。チェックポイントを使用しない場合、ローリング置換は継続的に実行されます。

インスタンスの更新を開始するときに設定できるすべてのデフォルト設定の詳細については、「[インスタンスの更新のデフォルト値について説明する](understand-instance-refresh-default-values.md)」を参照してください。

## ヘルスチェックの猶予期間
<a name="instance-refresh-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)」を参照してください。

## インスタンスタイプの互換性
<a name="instance-type-compatibility"></a>

インスタンスタイプを変更する前に、起動テンプレートで動作することを確認することをお勧めします。これにより、指定した AMI との互換性を確認できます。例えば、準仮想化 (PV) AMI から元のインスタンスを起動したが、ハードウェア仮想マシン (HVM) AMI でのみサポートされている現行世代のインスタンスタイプに変更したいとします。この場合、起動テンプレートで HVM AMI を使用する必要があります。

インスタンスを起動せずにインスタンスタイプの互換性を確認するには、次の例で示すように、「[run-instances](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/run-instances.html)」コマンドを `--dry-run` オプションとともに使用します。

```
aws ec2 run-instances --launch-template LaunchTemplateName=my-template,Version='1' --dry-run
```

互換性の判断方法については、「*Amazon EC2 ユーザーガイド*」の「[インスタンスタイプ変更の互換性](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resize-limitations.html)」を参照してください。

## 制限事項
<a name="instance-refresh-limitations"></a>
+ **合計持続時間**: インスタンスの更新がインスタンスをアクティブに置き換えることができる最大時間は、14 日間です。
+ **加重グループ固有の動作の違い**: 混合のインスタンスグループがグループの必要キャパシティ以上のインスタンス分量に設定されている場合、Amazon EC2 Auto Scaling はすべての `InService` インスタンスを一度に置き換えることがあります。このような状況を回避するには、[インスタンスの重みを使用するように Auto Scaling グループを設定する](ec2-auto-scaling-mixed-instances-groups-instance-weighting.md) トピックの推奨事項に従ってください。Auto Scaling グループで分量を使用するとき、最大の分量よりも大きい必要キャパシティを指定します。
+ **1 時間のタイムアウト**: インスタンスの更新がスタンバイ状態またはスケールインから保護されているインスタンスを置き換えるために待機しているため、置き換えが続行できない、あるいは新しいインスタンスがヘルスチェックに合格しない場合、Amazon EC2 Auto Scaling は再試行を 1 時間続行します。加えて、問題の解決に役立つステータスメッセージが表示されます。1 時間経っても問題が解決しない場合は、オペレーションは失敗となります。1 時的な問題が発生した場合に、回復する時間を与えることを意図しています。
+ **ユーザーデータによるコードのデプロイ**: スキップマッチングは、ユーザーデータスクリプトからデプロイされたコードの変更をチェックしません。ユーザーデータを使用して新しいコードを取得し、これらの更新を新しいインスタンスにインストールする場合は、起動テンプレートのバージョン更新がない場合でも、すべてのインスタンスが最新のコードを受信できるように、スキップマッチングをオフにすることをお勧めします。
+ **更新制限**: 目的の設定でインスタンスの更新が実行中に Auto Scaling グループの起動テンプレート、起動設定、または混合インスタンスポリシーを更新しようとすると、これらのリクエストは失敗し、次の検証エラーが発生します。`An active instance refresh with a desired configuration exists. All configuration options derived from the desired configuration are not available for update while the instance refresh is active.`
+ **属性ベースのインスタンス選択**: Auto Scaling グループが属性ベースのインスタンス選択を使用 (混合インスタンスポリシーで `InstanceRequirements` を指定) している場合、次のインスタンスの更新パラメータはサポートされません。
  + **SkipMatching**: `InstanceRequirements` が設定されている Auto Scaling グループで `SkipMatching` パラメータを使用してインスタンスの更新を開始すると、インスタンスの更新は失敗します。
  + **DesiredConfiguration**: `InstanceRequirements` が設定されている Auto Scaling グループで `DesiredConfiguration` パラメータを使用してインスタンスの更新を開始すると、インスタンスの更新は失敗します。

  属性ベースのインスタンス選択を使用して Auto Scaling グループでインスタンスの更新を実行する必要がある場合、これらのパラメータを指定せずにインスタンスの更新を開始します。
+ ルートボリュームの置き換えは Elastic Load Balancing をサポートしていません。

# インスタンスの更新のデフォルト値について説明する
<a name="understand-instance-refresh-default-values"></a>

インスタンスの更新を開始する前に、インスタンスの更新に影響するさまざまな設定をカスタマイズできます。一部の設定のデフォルトは、コンソールとコマンドライン (AWS CLI または AWS SDK) のどちらを使用するかによって異なります。

次の表には、インスタンスの更新設定のデフォルト値が一覧表示されています。


| 設定 | AWS CLI または AWS SDK | Amazon EC2 Auto Scaling コンソール | 
| --- | --- | --- | 
| CloudWatch アラーム | 無効 (null) | Disabled | 
| [自動ロールバック] | 無効 (false) | Disabled | 
| ベイク時間 | ゼロ | ゼロ | 
| チェックポイント | 無効 (false) | Disabled | 
| [チェックポイントの遅延] | 1 時間 (3600 秒) | 1 時間 | 
| インスタンスのウォームアップ | 定義されている場合は [デフォルトのインスタンスのウォームアップ](ec2-auto-scaling-default-instance-warmup.md)。定義されていない場合は[ヘルスチェックの猶予期間](health-check-grace-period.md)。 | 定義されている場合は [デフォルトのインスタンスのウォームアップ](ec2-auto-scaling-default-instance-warmup.md)。定義されていない場合は[ヘルスチェックの猶予期間](health-check-grace-period.md)。 | 
| 最大正常率 | インスタンスのメンテナンスポリシーによって異なります。インスタンスメンテナンスポリシーがない場合、デフォルトで 100% (null) になります。 | インスタンスのメンテナンスポリシーによって異なります。インスタンスメンテナンスポリシーがない場合、デフォルトで 100% (null) になります。 | 
| 最小正常率 | インスタンスのメンテナンスポリシーによって異なります。インスタンスメンテナンスポリシーがない場合、デフォルトで 90% になります。 | インスタンスのメンテナンスポリシーによって異なります。インスタンスメンテナンスポリシーがない場合、デフォルトで 90% になります。 | 
| [スケールインで保護されたインスタンス] | 待機 | Ignore (無視) | 
| スキップマッチング | 無効 (false) | 有効 | 
| [スタンバイインスタンス] | 待機 | Ignore (無視) | 

各設定の説明は次のとおりです。

**CloudWatch アラーム (`AlarmSpecification`)**  
CloudWatch アラーム仕様。CloudWatch アラームを使用すると、問題を特定し、アラームが `ALARM` 状態になったときにオペレーションを失敗させることができます。詳細については、「[自動ロールバックでインスタンスの更新を開始](instance-refresh-rollback.md#instance-refresh-using-auto-rollback)」を参照してください。

**自動ロールバック (`AutoRollback`)**  
インスタンスの更新が失敗した場合に、Amazon EC2 Auto Scaling が Auto Scaling グループを以前の設定にロールバックするかどうかを制御します。詳細については、「[手動または自動ロールバックを使用して変更を元に戻す](instance-refresh-rollback.md)」を参照してください。

**ベイク時間 (`BakeTime`)**  
インスタンスの更新が完了とみなされるまで、インスタンスの更新の終了時に待機する時間。

**チェックポイント (`CheckpointPercentages`)**  
Amazon EC2 Auto Scaling がインスタンスを段階的に置き換えるかどうかを制御します。これは、すべてのインスタンスを置き換える前にインスタンスの検証を実行する必要がある場合に便利です。詳細については、「[インスタンスの更新にチェックポイントを追加する](asg-adding-checkpoints-instance-refresh.md)」を参照してください。

**チェックポイントの遅延 (`CheckpointDelay`)**  
チェックポイントの後に続行する前に待機する時間 (秒単位)。詳細については、「[インスタンスの更新にチェックポイントを追加する](asg-adding-checkpoints-instance-refresh.md)」を参照してください。

**インスタンスのウォームアップ (`InstanceWarmup`)**  
Amazon EC2 Auto Scaling が新しいインスタンスの初期化が完了したと見なされてから次のインスタンスの置き換えに移行するまでの時間 (秒単位)。Auto Scaling グループのデフォルトのインスタンスウォームアップを既に正しく定義している場合、インスタンスのウォームアップ (デフォルトをオーバーライドする場合を除く) を変更する必要はありません。詳細については、「[Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する](ec2-auto-scaling-default-instance-warmup.md)」を参照してください。

**最大正常率 (`MaxHealthyPercentage`)**  
インスタンスを置き換える際、Auto Scaling グループの希望キャパシティを最大で何パーセントまで増やせるかを示す割合。

**最小正常率 (`MinHealthyPercentage`)**  
Auto Scaling グループの希望キャパシティのうち、オペレーションを続行するために必要な、稼働中で正常な、使用準備が整っているキャパシティの割合。

**スケールインで保護されたインスタンス (`ScaleInProtectedInstances`)**  
スケールインから保護されているインスタンスが見つかった場合の Amazon EC2 Auto Scaling の動作を制御します。これらのインスタンスの詳細については、「[インスタンスのスケールイン保護を使用してインスタンスの終了を制御する](ec2-auto-scaling-instance-protection.md)」を参照してください。  
Amazon EC2 Auto Scaling は次のオプションを提供します。  
+ **置き換え** (`Refresh`) – スケールインから保護されているインスタンスを置き換えます。
+ **無視** (`Ignore`) – スケールインから保護されているインスタンスを無視し、保護されていないインスタンスの置き換えを続行します。
+ **待機** (`Wait`) – スケールイン保護を解除するまで 1 時間待機します。そうしない場合、インスタンスの更新が失敗します。

**スキップマッチング (`SkipMatching`)**  
Amazon EC2 Auto Scaling が、目的の設定に一致するインスタンスの置換をスキップするかどうかを制御します。必要な設定が指定されていない場合、インスタンスの更新が開始される前に Auto Scaling グループが使用していた同じ起動テンプレートおよびインスタンスタイプを持つインスタンスの置き換えはスキップされます。詳細については、「[スキップマッチングでのインスタンスの更新の使用](asg-instance-refresh-skip-matching.md)」を参照してください。

**スタンバイインスタンス (`StandbyInstances`)**  
`Standby` 状態のインスタンスが見つかった場合の Amazon EC2 Auto Scaling の動作を制御します。これらのインスタンスの詳細については、「[Auto Scaling グループからインスタンスを一時的に削除する](as-enter-exit-standby.md)」を参照してください。  
Amazon EC2 Auto Scaling は次のオプションを提供します。  
+ **終了** (`Terminate`) – `Standby` にあるインスタンスを終了します。
+ **無視** (`Ignore`) – `Standby` 状態にあるインスタンスを無視し、`InService` 状態にあるインスタンスの置き換えを続行します。
+ **待機** (`Wait`) – インスタンスをサービスに戻すまで 1 時間待機します。そうしない場合、インスタンスの更新が失敗します。

# AWS マネジメントコンソール または を使用してインスタンスの更新を開始する AWS CLI
<a name="start-instance-refresh"></a>

**重要**  
進行中のインスタンスの更新をロールバックし、すべての変更を元に戻すことができます。これが実行されるには、インスタンスの更新を開始する前に、Auto Scaling グループがロールバックを使用するための前提条件を満たす必要があります。詳細については、「[手動または自動ロールバックを使用して変更を元に戻す](instance-refresh-rollback.md)」を参照してください。

次の手順は、 AWS マネジメントコンソール または を使用してインスタンスの更新を開始するのに役立ちます AWS CLI。

## インスタンスの更新の開始 (コンソール)
<a name="start-instance-refresh-console"></a>

初めてインスタンスの更新を開始する場合は、コンソールにより、利用できる機能とオプションを理解することができます。

### コンソールでインスタンスの更新を開始する (基本的な手順)
<a name="starting-an-instance-refresh-in-the-console"></a>

Auto Scaling グループの[混合インスタンスポリシー](ec2-auto-scaling-mixed-instances-groups.md)を事前定義していない場合は、次の手順に従います。混合インスタンスポリシーを事前定義している場合は、[コンソールでインスタンスの更新を開始する (混合インスタンスグループ)](#starting-an-instance-refresh-in-the-console-mig) を参照してインスタンスの更新を開始します。

**インスタンスの更新をスタートするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

   **Auto Scaling グループ**ページの下部に分割ペインが開きます。

1. **[Instance refresh]** (インスタンスの更新) タブの **[Active instance refresh]** (アクティブインスタンスの更新) で、**[Start instance refresh]** (インスタンスの更新を開始する) を選択します。

1. **[可用性の設定]** では、次の操作を行います。

   1. **インスタンス置換方法**：
      + Auto Scaling グループにインスタンスメンテナンスポリシーを設定*していない*場合、**インスタンス置換方法**のデフォルト設定は**終了と起動**です。これは、インスタンス更新の従来のデフォルト動作です。
      + Auto Scaling グループにインスタンスメンテナンスポリシーを設定すると、**インスタンス置換方法**のデフォルト値が提供されます。インスタンスメンテナンスポリシーを上書きするには、**[オーバーライド]** を選択します。オーバーライドは、現在のインスタンスの更新にのみ適用されます。次回インスタンスの更新を開始すると、これらの値はインスタンスメンテナンスポリシーのデフォルト値にリセットされます。

      次の手順では、インスタンス置換方法を更新する方法について説明します。

      1. 次のいずれかのインスタンス置換方法を選択します。
         + **終了前の起動**: 既存のインスタンスを終了する前に、新しいインスタンスをプロビジョニングする必要があります。これは、コスト削減よりも可用性を重視するアプリケーションに適しています。
         + **終了と起動**: 新しいインスタンスは、既存のインスタンスが終了すると同時にプロビジョニングされます。これは、可用性よりもコスト削減を優先するアプリケーションに適しています。これは、現在利用可能なキャパシティを超えて処理能力を増やす必要のないアプリケーションにも適しています。
         + **カスタム動作 **: このオプションを使用すると、インスタンスを置き換えるときに使用可能なキャパシティの最小範囲と最大範囲をカスタム設定できます。これにより、コストと可用性の適切なバランスを実現できます。

      1. **[正常率を設定]**には、次のフィールドの 1 つまたは両方に値を入力します。有効化フィールドは、**インスタンス置換方法**で選択したオプションによって異なります。
         + **最小 **: インスタンスの更新を進めるために必要な最小正常率を設定します。
         + **最大 **: インスタンスの更新中に可能な最大正常率を設定します。

      1. **現在のグループサイズに基づいて置換中の推定一時容量を表示**セクションを展開し、**最小**と**最大**の値がどのようにグループに適用されるかを確認します。使用される正確な値は、希望するキャパシティ値によって異なります。これは、グループがスケールすると変化します。

      1. **無効な置換サイズに対するフォールバック動作の設定**セクションを展開し、可用性を優先するために**最大正常率に違反する**か、**最小正常率に違反する**かを選択します。

         デフォルトの**最小正常率**オプションを維持することは、非常に小さなグループにはお勧めしません。Auto Scaling グループにインスタンスが 1 つしかない場合、インスタンスの更新を開始すると停止する場合があります。

         このステップでは、インスタンスメンテナンスポリシーがまだない Auto Scaling グループを使用している場合のフォールバック動作を設定します。グループにインスタンス メンテナンス ポリシーがある場合、このオプションは使用できず、表示されません。このオプションは、**終了と起動**の置き換え方法でのみ使用できます。他の置き換え方法は、可用性を優先するために最大正常率に違反します。

   1. **[インスタンスのウォームアップ]** には、新しいインスタンスの状態が `InService` に変更されてから初期化が完了するまでの秒数を入力します。Amazon EC2 Auto Scaling は、次のインスタンスを置き換える前にこの時間を待機します。

      ウォームアップ中、新しく起動されたインスタンスは Auto Scaling グループの (`CPUUtilization`、`NetworkIn`、`NetworkOut` など) 集計インスタンスのメトリクスにも計上されません。Auto Scaling グループにスケーリング ポリシーを追加した場合、スケーリングアクティビティは並行して実行されます。インスタンス更新のウォームアップ期間に長い間隔を設定する場合、新しく起動されたインスタンスがメトリクスに表示されるまでに時間がかかります。このため、適切なウォームアップ期間を設定することで、Amazon EC2 Auto Scaling が古いメトリクスデータに基づいてスケーリングしないようにすることができます。

      Auto Scaling グループにデフォルトのインスタンスのウォームアップを既に正しく定義している場合、インスタンスのウォームアップを変更する必要はありません。ただし、デフォルトを上書きする場合は、このオプションの値を設定できます。デフォルトのインスタンスのウォームアップにおける設定の詳細については、「[Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する](ec2-auto-scaling-default-instance-warmup.md)」を参照してください。

1. **[設定を更新]** で、以下を実行します｡

   1. (オプション) **[Checkpoints]** (チェックポイント) で **[Enable checkpoints]** (チェックポイントを有効にする) を選択し、インスタンスの更新に増分または段階的なアプローチを使用するインスタンスを置換します。これにより、置換セット間の検証にさらに時間がかかります。チェックポイントの有効化を選択しない場合、インスタンスはほぼ連続した 1 回のオペレーションで置換されます。

      チェックポイントを有効にする場合は、追加ステップ [チェックポイントを有効にする (コンソール)](enable-checkpoints-console-cli.md#enable-checkpoints-console) を参照してください。

   1. (オプション) **[ベイク時間]** には、インスタンスの更新が完了とみなされるまで、インスタンスの更新の終了時に待機する時間を指定します。

   1. **スキップマッチング**を有効または無効にする:
      + 起動テンプレートに既に一致しているインスタンスの置き換えをスキップするには、**[スキップマッチングを有効にする]** のチェックボックスをオンのままにします。
      + このチェックボックスをオフにしてスキップマッチングを無効にすると、すべてのインスタンスを置換することができます。

      スキップマッチングを有効にすると、既存の起動テンプレートを使用する代わりに、新しい起動テンプレートまたは起動テンプレートの新しいバージョンを設定できます。これは、**[インスタンスの更新を開始]** ページの **[必要な設定]** セクションで行います。
**注記**  
スキップマッチング機能を使用して、現在起動設定を使用している Auto Scaling グループを更新するには、**希望する設定**で起動テンプレートを選択する必要があります。起動設定でのスキップマッチングはサポートされていません。

   1. **[スタンバイインスタンス]** の場合、**[無視]**、**[終了]**、**[待機]** のいずれかを選択します。これにより、インスタンスが `Standby` 状態で見つかった場合の処理が決まります。詳細については、「[Auto Scaling グループからインスタンスを一時的に削除する](as-enter-exit-standby.md)」を参照してください。

      **[待機]** を選択する場合、これらのインスタンスをサービスに戻すために追加のステップを実行する必要があります。そうしない場合、インスタンスの更新がすべての `InService` インスタンスを置き換えて 1 時間待機します。次に、`Standby` インスタンスが残っていると、インスタンスの更新は失敗します。この状況を防ぐには、代わりにこれらのインスタンスに対して **[無視]** または **[終了]** を選択してください。

   1. **[スケールインで保護されたインスタンス]** の場合、**[無視]**、**[置換]**、**[待機]** のいずれかを選択します。これにより、スケールインで保護されたインスタンスが見つかった場合の処理が決まります。詳細については、「[インスタンスのスケールイン保護を使用してインスタンスの終了を制御する](ec2-auto-scaling-instance-protection.md)」を参照してください。

      **[待機]** を選択する場合、これらのインスタンスからスケールイン保護を解除するために追加のステップを実行する必要があります。そうしない場合、インスタンスの更新は保護されていないすべてのインスタンスを置き換えて 1 時間待機します。次に、スケールインで保護されたインスタンスが残っている場合、インスタンスの更新が失敗します。この状況を防ぐには、代わりにこれらのインスタンスに対して **[無視]** または **[置き換え]** を選択してください。

1. (オプション) **CloudWatch アラーム**で、**[CloudWatch アラームを有効にする]**を選択し、1 つ以上のアラームを選択します。CloudWatch アラームを使用すると、問題を特定し、アラームが `ALARM` 状態になったときにオペレーションを失敗させることができます。詳細については、「[自動ロールバックでインスタンスの更新を開始](instance-refresh-rollback.md#instance-refresh-using-auto-rollback)」を参照してください。

1. (オプション) **[必要な設定]** セクションを拡張し、Auto Scaling グループに実行する更新を指定します。

   このステップでは、コンソールインターフェイスで選択する代わりに、JSON または YAML 構文を使用してパラメータ値を編集するように選択できます。このためには、**[Use console interface]** (コンソールインターフェイスを使用する) の代わりに**[Use code editor]** (コードエディタを使用する) を選択します。以下の手順では、コンソールインターフェイスを使用して選択する方法について説明します。

   1. **起動テンプレートを更新する**場合: 
      + Auto Scaling グループの新しい起動テンプレートまたは新しい起動テンプレートバージョンを作成*していない*場合、このチェックボックスをオンにしないでください。
      + 新しい起動テンプレートまたは新しい起動テンプレートバージョンを作成した場合は、このチェックボックスをオンにします。このオプションを選択すると、Amazon EC2 Auto Scaling が現在の起動テンプレートおよび現在の起動テンプレートバージョンを表示します。他の利用可能なバージョンもすべて確認できます。起動テンプレートを選択し、バージョンを選択します。

        バージョンを選択すると、バージョン情報が表示されます。これは、インスタンスの更新の一部としてインスタンスを置換するときに使用される起動テンプレートのバージョンです。インスタンスの更新に成功すると、グループのスケール時など、新しいインスタンスが起動するたびに起動テンプレートのこのバージョンが使用されます。

   1. **インスタンスタイプと購入オプションのセットを選択して、起動テンプレートのインスタンスタイプを上書きする**場合:
      + 起動テンプレートで指定したインスタンスタイプおよび購入オプションを使用する場合、このチェックボックスをオンにしないでください。
      + 起動テンプレートのインスタンスタイプをオーバーライドまたはスポットインスタンスを実行する場合、このチェックボックスをオンにします。各インスタンスタイプを手動で追加するか、プライマリインスタンスタイプおよび一致する追加のインスタンスタイプを取得する推奨オプションを選択できます。スポットインスタンスを起動する予定がある場合は、いくつかの異なるインスタンスタイプを追加することをお勧めします。そうすることで、選択したアベイラビリティーゾーンに十分なインスタンスのキャパシティがない場合、Amazon EC2 Auto Scaling は別のインスタンスタイプを起動できます。詳細については、「[複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ](ec2-auto-scaling-mixed-instances-groups.md)」を参照してください。
**警告**  
スポットインスタンスの中断を処理できないアプリケーションにはスポットインスタンスを使用しないでください。Amazon EC2 スポットサービスがキャパシティを回収する必要がある場合、中断が発生する可能性があります。

      このチェックボックスをオンにした場合は、起動テンプレートがまだスポットインスタンスをリクエストしていないことを確認してください。複数のインスタンスタイプを使用し、スポットインスタンスとオンデマンドインスタンスを起動する Auto Scaling グループを作成するため、スポットインスタンスをリクエストする起動テンプレートを使用することはできません。
**注記**  
現在起動設定を使用している Auto Scaling グループでこれらのオプションを設定するには、**起動テンプレートの更新**で起動テンプレートを選択する必要があります。起動設定のインスタンスタイプの上書きはサポートされていません。

1. (オプション) **[ロールバック設定]** で **[自動ロールバックを有効にする]** を選択すると、インスタンスの更新が失敗した場合に自動的にロールバックされます。

   この設定は、Auto Scaling グループがロールバックを使用するための前提条件を満たしている場合にのみ有効にできます。

   詳細については、「[手動または自動ロールバックを使用して変更を元に戻す](instance-refresh-rollback.md)」を参照してください。

1. すべての選択内容を見直し、正しく設定されていることを確認します。

   現在の設定と提案された変更の違いが、想定外または望ましくない形でアプリケーションに影響を及ぼさないよう、この時点で確認することをお勧めします。インスタンスタイプが起動テンプレートと互換性があることを確認するには、「[インスタンスタイプの互換性](instance-refresh-overview.md#instance-type-compatibility)」を参照してください。

1. インスタンス更新の選択内容が正しい場合は、**[インスタンスの更新の開始]**  を選択します。

### コンソールでインスタンスの更新を開始する (混合インスタンスグループ)
<a name="starting-an-instance-refresh-in-the-console-mig"></a>

[混合インスタンスポリシー](ec2-auto-scaling-mixed-instances-groups.md)で Auto Scaling グループを作成した場合は、次の手順に従います。グループに混合インスタンスポリシーをまだ定義していない場合は、[コンソールでインスタンスの更新を開始する (基本的な手順)](#starting-an-instance-refresh-in-the-console) を参照してインスタンスの更新を開始します。

**インスタンスの更新をスタートするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

   **Auto Scaling グループ**ページの下部に分割ペインが開きます。

1. **[Instance refresh]** (インスタンスの更新) タブの **[Active instance refresh]** (アクティブインスタンスの更新) で、**[Start instance refresh]** (インスタンスの更新を開始する) を選択します。

1. **[可用性の設定]** では、次の操作を行います。

   1. **インスタンス置換方法**：
      + Auto Scaling グループにインスタンスメンテナンスポリシーを設定*していない*場合、**インスタンス置換方法**のデフォルト設定は**終了と起動**です。これは、インスタンス更新の従来のデフォルト動作です。
      + Auto Scaling グループにインスタンスメンテナンスポリシーを設定すると、**インスタンス置換方法**のデフォルト値が提供されます。インスタンスメンテナンスポリシーを上書きするには、**[オーバーライド]** を選択します。オーバーライドは、現在のインスタンスの更新にのみ適用されます。次回インスタンスの更新を開始すると、これらの値はインスタンスメンテナンスポリシーのデフォルト値にリセットされます。

      次の手順では、インスタンス置換方法を更新する方法について説明します。

      1. 次のいずれかのインスタンス置換方法を選択します。
         + **終了前の起動**: 既存のインスタンスを終了する前に、新しいインスタンスをプロビジョニングする必要があります。これは、コスト削減よりも可用性を重視するアプリケーションに適しています。
         + **終了と起動**: 新しいインスタンスは、既存のインスタンスが終了すると同時にプロビジョニングされます。これは、可用性よりもコスト削減を優先するアプリケーションに適しています。これは、現在利用可能なキャパシティを超えて処理能力を増やす必要のないアプリケーションにも適しています。
         + **カスタム動作 **: このオプションを使用すると、インスタンスを置き換えるときに使用可能なキャパシティの最小範囲と最大範囲をカスタム設定できます。これにより、コストと可用性の適切なバランスを実現できます。

      1. **[正常率を設定]**には、次のフィールドの 1 つまたは両方に値を入力します。有効化フィールドは、**インスタンス置換方法**で選択したオプションによって異なります。
         + **最小 **: インスタンスの更新を進めるために必要な最小正常率を設定します。
         + **最大 **: インスタンスの更新中に可能な最大正常率を設定します。

      1. **現在のグループサイズに基づいて置換中の推定一時容量を表示**セクションを展開し、**最小**と**最大**の値がどのようにグループに適用されるかを確認します。使用される正確な値は、希望するキャパシティ値によって異なります。これは、グループがスケールすると変化します。

      1. **無効な置換サイズに対するフォールバック動作の設定**セクションを展開し、可用性を優先するために**最大正常率に違反する**か、**最小正常率に違反する**かを選択します。

         デフォルトの**最小正常率**オプションを維持することは、非常に小さなグループにはお勧めしません。Auto Scaling グループにインスタンスが 1 つしかない場合、インスタンスの更新を開始すると停止する場合があります。

         このステップでは、インスタンスメンテナンスポリシーがまだない Auto Scaling グループを使用している場合のフォールバック動作を設定します。グループにインスタンス メンテナンス ポリシーがある場合、このオプションは使用できず、表示されません。このオプションは、**終了と起動**の置き換え方法でのみ使用できます。他の置き換え方法は、可用性を優先するために最大正常率に違反します。

   1. **[インスタンスのウォームアップ]** には、新しいインスタンスの状態が `InService` に変更されてから初期化が完了するまでの秒数を入力します。Amazon EC2 Auto Scaling は、次のインスタンスを置き換える前にこの時間を待機します。

      ウォームアップ中、新しく起動されたインスタンスは Auto Scaling グループの (`CPUUtilization`、`NetworkIn`、`NetworkOut` など) 集計インスタンスのメトリクスにも計上されません。Auto Scaling グループにスケーリング ポリシーを追加した場合、スケーリングアクティビティは並行して実行されます。インスタンス更新のウォームアップ期間に長い間隔を設定する場合、新しく起動されたインスタンスがメトリクスに表示されるまでに時間がかかります。このため、適切なウォームアップ期間を設定することで、Amazon EC2 Auto Scaling が古いメトリクスデータに基づいてスケーリングしないようにすることができます。

      Auto Scaling グループにデフォルトのインスタンスのウォームアップを既に正しく定義している場合、インスタンスのウォームアップを変更する必要はありません。ただし、デフォルトを上書きする場合は、このオプションの値を設定できます。デフォルトのインスタンスのウォームアップにおける設定の詳細については、「[Auto Scaling グループに対するインスタンスのデフォルトウォームアップを設定する](ec2-auto-scaling-default-instance-warmup.md)」を参照してください。

1. **[設定を更新]** で、以下を実行します｡

   1. (オプション) **[Checkpoints]** (チェックポイント) で **[Enable checkpoints]** (チェックポイントを有効にする) を選択し、インスタンスの更新に増分または段階的なアプローチを使用するインスタンスを置換します。これにより、置換セット間の検証にさらに時間がかかります。チェックポイントの有効化を選択しない場合、インスタンスはほぼ連続した 1 回のオペレーションで置換されます。

      チェックポイントを有効にする場合は、追加ステップ [チェックポイントを有効にする (コンソール)](enable-checkpoints-console-cli.md#enable-checkpoints-console) を参照してください。

   1. **スキップマッチング**を有効または無効にする:
      + 起動テンプレートと既に一致しているインスタンスの置き換えおよびすべてのインスタンスタイプのオーバーライドをスキップするには、**[スキップマッチングを有効にする]** チェックボックスをオンのままにします。
      + このチェックボックスをオフにしてスキップマッチングを無効にすると、すべてのインスタンスを置換することができます。

      スキップマッチングを有効にすると、既存の起動テンプレートを使用する代わりに、新しい起動テンプレートまたは起動テンプレートの新しいバージョンを設定できます。これは、**[インスタンスの更新を開始]** ページの **[必要な設定]** セクションで行います。**[Desired configuration]** (希望する設定) でインスタンスタイプの上書きを更新することもできます。

   1. **[スタンバイインスタンス]** の場合、**[無視]**、**[終了]**、**[待機]** のいずれかを選択します。これにより、インスタンスが `Standby` 状態で見つかった場合の処理が決まります。詳細については、「[Auto Scaling グループからインスタンスを一時的に削除する](as-enter-exit-standby.md)」を参照してください。

      **[待機]** を選択する場合、これらのインスタンスをサービスに戻すために追加のステップを実行する必要があります。そうしない場合、インスタンスの更新はすべての `InService` インスタンスを置き換えて 1 時間待機します。次に、`Standby` インスタンスが残っていると、インスタンスの更新は失敗します。この状況を防ぐには、代わりにこれらのインスタンスに対して **[無視]** または **[終了]** を選択してください。

   1. **[スケールインで保護されたインスタンス]** の場合、**[無視]**、**[置換]**、**[待機]** のいずれかを選択します。これにより、スケールインで保護されたインスタンスが見つかった場合の処理が決まります。詳細については、「[インスタンスのスケールイン保護を使用してインスタンスの終了を制御する](ec2-auto-scaling-instance-protection.md)」を参照してください。

      **[待機]** を選択する場合、これらのインスタンスからスケールイン保護を解除するために追加のステップを実行する必要があります。そうしない場合、インスタンスの更新は保護されていないすべてのインスタンスを置き換えて 1 時間待機します。次に、スケールインで保護されたインスタンスが残っている場合、インスタンスの更新が失敗します。この状況を防ぐには、代わりにこれらのインスタンスに対して **[無視]** または **[置き換え]** を選択してください。

1. (オプション) **CloudWatch アラーム**で、**[CloudWatch アラームを有効にする]**を選択し、1 つ以上のアラームを選択します。CloudWatch アラームを使用すると、問題を特定し、アラームが `ALARM` 状態になったときにオペレーションを失敗させることができます。詳細については、「[自動ロールバックでインスタンスの更新を開始](instance-refresh-rollback.md#instance-refresh-using-auto-rollback)」を参照してください。

1. **[Desired configuration]** (希望する設定) セクションで以下を実行します。

   このステップでは、コンソールインターフェイスで選択する代わりに、JSON または YAML 構文を使用してパラメータ値を編集するように選択できます。このためには、**[Use console interface]** (コンソールインターフェイスを使用する) の代わりに**[Use code editor]** (コードエディタを使用する) を選択します。以下の手順では、コンソールインターフェイスを使用して選択する方法について説明します。

   1. **起動テンプレートを更新する**場合: 
      + Auto Scaling グループの新しい起動テンプレートまたは新しい起動テンプレートバージョンを作成*していない*場合、このチェックボックスをオンにしないでください。
      + 新しい起動テンプレートまたは新しい起動テンプレートバージョンを作成した場合は、このチェックボックスをオンにします。このオプションを選択すると、Amazon EC2 Auto Scaling が現在の起動テンプレートおよび現在の起動テンプレートバージョンを表示します。他の利用可能なバージョンもすべて確認できます。起動テンプレートを選択し、バージョンを選択します。

        バージョンを選択すると、バージョン情報が表示されます。これは、インスタンスの更新の一部としてインスタンスを置換するときに使用される起動テンプレートのバージョンです。インスタンスの更新に成功すると、グループのスケール時など、新しいインスタンスが起動するたびに起動テンプレートのこのバージョンが使用されます。

   1. **これらの設定を使用して、起動テンプレートで定義されているインスタンスタイプと購入オプションを上書きする**場合: 

      デフォルトでは、このチェックボックスはオンになっています。Amazon EC2 Auto Scaling により、現在、Auto Scaling グループの*混合インスタンスポリシー*で設定されている値が各パラメータに入力されます。変更するパラメータの値のみを更新します。これらの設定に関するガイダンスについては、[複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ](ec2-auto-scaling-mixed-instances-groups.md) を参照してください。
**警告**  
このチェックボックスはオフにしないことをお勧めします。混合インスタンスポリシーの使用を停止する場合にのみオフにします。インスタンスの更新に成功すると、Amazon EC2 Auto Scaling は**希望する設定**に一致するようグループを更新します。混合インスタンスポリシーが含まれなくなった場合、Amazon EC2 Auto Scaling は現在実行中のスポットインスタンスを徐々に終了し、オンデマンドインスタンスに置換します。または、起動テンプレートがスポットインスタンスをリクエストした場合、Amazon EC2 Auto Scaling は現在実行中のオンデマンドインスタンスを徐々に終了し、スポットインスタンスに置換します。

1. (オプション) **[ロールバック設定]** で **[自動ロールバックを有効にする]** を選択すると、何らかの理由でインスタンスの更新が失敗した場合に自動的にロールバックされます。

   この設定は、Auto Scaling グループがロールバックを使用するための前提条件を満たしている場合にのみ有効にできます。

   詳細については、「[手動または自動ロールバックを使用して変更を元に戻す](instance-refresh-rollback.md)」を参照してください。

1. すべての選択内容を見直し、正しく設定されていることを確認します。

   現在の設定と提案された変更の違いが、想定外または望ましくない形でアプリケーションに影響を及ぼさないよう、この時点で確認することをお勧めします。インスタンスタイプが起動テンプレートと互換性があることを確認するには、「[インスタンスタイプの互換性](instance-refresh-overview.md#instance-type-compatibility)」を参照してください。

   インスタンス更新の選択内容が正しい場合は、**[インスタンスの更新の開始]**  を選択します。

## インスタンスの更新 (AWS CLI) の開始
<a name="start-instance-refresh-cli"></a>

**インスタンスの更新をスタートするには**  
[start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)コマンドを使用して、 AWS CLIからインスタンスの更新をスタートします。JSON 設定ファイルでは、変更する任意の設定を指定できます。設定ファイルを参照するとき、次の例に示すように、ファイルパスおよび名前を指定します。

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

`config.json` の内容:

```
{
    "AutoScalingGroupName": "my-asg",
    "Preferences": {
      "InstanceWarmup": 60,
      "MinHealthyPercentage": 50,
      "AutoRollback": true,
      "ScaleInProtectedInstances": Ignore,
      "StandbyInstances": Terminate
    }
}
```

設定が指定されない場合、デフォルト値が使用されます。詳細については、「[インスタンスの更新のデフォルト値について説明する](understand-instance-refresh-default-values.md)」を参照してください。

出力例:

```
{
    "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

# AWS マネジメントコンソール または を使用してインスタンスの更新をモニタリングする AWS CLI
<a name="check-status-instance-refresh"></a>

 AWS マネジメントコンソール または を使用して、進行中のインスタンスの更新をモニタリングしたり、過去 6 週間の過去のインスタンスの更新のステータスを検索したりできます AWS CLI。

## インスタンスの更新ステータスをモニタリングおよびチェックする
<a name="monitor-and-check-status"></a>

インスタンスの更新ステータスをモニタリングおよびチェックするには、以下のいずれかの方法を使用します。

------
#### [ Console ]

**ヒント**  
この手順では、名前付き列がすでに表示されている必要があります。非表示の列を表示、あるいは表示される行の数を変更するには、セクションの右上隅にある歯車アイコンを選択し、設定モーダルを開きます。必要に応じて設定を更新し、**[確認]** を選択します。

**インスタンスの更新のステータスをモニタリングおよび確認する (コンソール)**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

   ページの下部に分割されたペインが開きます。

1. **[Instance refresh history]** (インスタンスの更新履歴) の **[Instance refresh]** (インスタンスの更新) タブで、**[Status]** (ステータス) 列を確認し、リクエストのステータスを決定できます。初期化中は `Pending` のステータスになります。その後、ステータスはすぐに `InProgress` に変わります。すべてのインスタンスが更新されると、ステータスが `Successful` に変わります。

1. グループのスケーリングアクティビティを表示することで、進行中のアクティビティの成功または失敗をさらにモニタリングできます。[**Activity (アクティビティ)**] タブの [**Activity history (アクティビティ履歴)**] では、インスタンスの更新が開始されると、インスタンスの終了時、インスタンスの起動時に、それぞれ別のエントリが表示されます。多数のスケーリングアクティビティが存在する場合、アクティビティ履歴の上部にある **[>]** アイコンを選択すると、さらに多くのアクティビティを表示できます。アクティビティの失敗の原因となりうる問題のトラブルシューティングについては、「[Amazon EC2 Auto Scaling の問題をトラブルシューティングする](CHAP_Troubleshooting.md)」を参照してください。

1. (オプション) **[インスタンス管理]** タブの**[インスタンス]** で、必要に応じて特定のインスタンスの進行状況を確認できます。

------
#### [ AWS CLI ]

**インスタンスの更新ステータスを確認するには (AWS CLI)**  
次の [describe-instance-refreshes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-instance-refreshes.html) コマンドを使用します。

```
aws autoscaling describe-instance-refreshes --auto-scaling-group-name my-asg
```

以下は出力の例です。

インスタンスの更新は、開始時刻順に並べられます。まだ進行中のインスタンスの更新については、最初に説明します。

```
{
  "InstanceRefreshes":[
    {
      "InstanceRefreshId":"08b91cf7-8fa6-48af-b6a6-d227f40f1b9b",
      "AutoScalingGroupName":"my-asg",
      "Status":"InProgress",
      "StatusReason":"Waiting for instances to warm up before continuing. For example: i-0645704820a8e83ff is warming up.",
      "StartTime":"2023-11-24T16:46:52+00:00",
      "PercentageComplete":50,
      "InstancesToUpdate":0,
      "Preferences":{
        "MaxHealthyPercentage":120,
        "MinHealthyPercentage":90,
        "InstanceWarmup":60,
        "SkipMatching":false,
        "AutoRollback":true,
        "ScaleInProtectedInstances":"Ignore",
        "StandbyInstances":"Ignore"
      }
    },
    {
      "InstanceRefreshId":"0e151305-1e57-4a32-a256-1fd14157c5ec",
      "AutoScalingGroupName":"my-asg",
      "Status":"Successful",
      "StartTime":"2023-11-22T13:53:37+00:00",
      "EndTime":"2023-11-22T13:59:45+00:00",
      "PercentageComplete":100,
      "InstancesToUpdate":0,
      "Preferences":{
        "MaxHealthyPercentage":120,
        "MinHealthyPercentage":90,
        "InstanceWarmup":60,
        "SkipMatching":false,
        "AutoRollback":true,
        "ScaleInProtectedInstances":"Ignore",
        "StandbyInstances":"Ignore"
      }
    }
  ]
}
```

グループのスケーリングアクティビティを表示することで、進行中のアクティビティの成功または失敗をさらにモニタリングできます。スケーリングアクティビティは、インスタンスの更新に関する問題のトラブルシューティングにおいて、より詳細な情報を得るためにも役立ちます。詳細については、「[Amazon EC2 Auto Scaling の問題をトラブルシューティングする](CHAP_Troubleshooting.md)」を参照してください。

------

## インスタンスの更新ステータス
<a name="instance-refresh-statuses"></a>

インスタンスの更新を開始するとき、**[ペンディング]** ステータスになります。**[成功]**、**[失敗]**、**[キャンセル済み]**、**[RollbackSuccessful]**、**[RollbackFailed]** のいずれかに達するまで、**[保留中]** から **[InProgress]** に移行します。

インスタンスの更新には、次のステータスがあります。


| ステータス | 説明 | 
| --- | --- | 
| [保留中] | リクエストは作成されましたが、インスタンスの更新が開始されていません。 | 
| InProgress | インスタンスの更新が進行中です。 | 
| [成功] | インスタンスの更新が正常に完了しました。 | 
| 失敗 | インスタンスの更新を完了できませんでした。ステータスの理由とスケーリングアクティビティを使用してトラブルシューティングを行うことができます。 | 
| [キャンセル中] | 進行中のインスタンスの更新をキャンセルしています。 | 
| [キャンセル済] | インスタンスの更新はキャンセルされました。 | 
| [RollbackInProgress] | インスタンスの更新がロールバックされています。 | 
| [RollbackFailed] | ロールバックを完了できませんでした。ステータスの理由とスケーリングアクティビティを使用してトラブルシューティングを行うことができます。 | 
| [RollbackSuccessful] | ロールバックが正常に完了しました。 | 
| Baking | インスタンスの更新でインスタンスのアップデートが完了した後、指定されたベイク時間を待機しています。 | 

# インスタンスの更新中にルートボリュームを置き換える
<a name="replace-root-volume"></a>

**Topics**
+ [仕組み](#start-instance-refresh-replace-root-volume-how-it-works)
+ [要件](#start-instance-refresh-replace-root-volume-requirements)
+ [ルートボリュームを置き換えてインスタンスの更新を開始する](#start-instance-refresh-replace-root-volume-cli)
+ [制限事項](#start-instance-refresh-replace-root-volume-limitations)
+ [ルートボリュームを置き換えるライフサイクルフックを使用する](#replace-root-volume-lifecycle-hooks)

## 仕組み
<a name="start-instance-refresh-replace-root-volume-how-it-works"></a>

ルートボリュームの置き換えは、インスタンスの実行中にルート EBS ボリュームのみを置き換えることでインスタンスを更新します。これにより、新しいインスタンスを起動する必要がなくなり、潜在的な容量の制約を回避できます。このプロセスでは、以下を含む他のすべてのインスタンスリソースが保持されます。
+ ネットワークインターフェイスと IP アドレス 
+ 非ルート EBS ボリューム 
+ インスタンスストアボリュームとデータ 
+ セキュリティグループと IAM ロール 

ルートボリュームの置き換え中、アプリケーションは既存のインスタンスで引き続き実行されます。元のルートボリュームはデタッチされ、指定された AMI から新しいルートボリュームが作成され、同じインスタンスにアタッチされます。元のルートボリュームは、置き換えが成功すると自動的に削除されます。

ルートボリュームの置き換え戦略を使用すると、インスタンスは次のライフサイクル状態を通過します。

1. `ReplacingRootVolume` - ルートボリュームの置換が開始されます

1. `ReplacingRootVolume:Wait` - ライフサイクルフックの完了を待機します (設定されている場合)

1. `ReplacingRootVolume:Proceed` - 置き換えを続行します

1. `RootVolumeReplaced` - 置き換えが正常に完了しました

ルートボリュームの置換が完了すると、Auto Scaling は更新されたインスタンスに対してヘルスチェックを実行します。インスタンスのルートボリュームの置換が失敗した場合、Auto Scaling はそのインスタンスを終了としてマークし、新しいインスタンスに置き換えます。

## 要件
<a name="start-instance-refresh-replace-root-volume-requirements"></a>
+ Auto Scaling グループは混合インスタンスポリシーを使用する必要があります
+ 混合インスタンスポリシーのすべてのオーバーライドでは、 を指定する必要があります。 `ImageId`
+ AMIs には 1 つのルートボリュームのみを含める必要があります
+ すべてのインスタンスは、グループの起動テンプレート設定と一致する必要があります
+ `ImageId` オーバーライドを含む混合インスタンスポリシーを使用して、必要な設定でインスタンスの更新を開始する必要があります。

## ルートボリュームを置き換えてインスタンスの更新を開始する
<a name="start-instance-refresh-replace-root-volume-cli"></a>

**ルートボリュームの置き換え (AWS CLI) を使用してインスタンスの更新を開始するには**  
次の [start-instance-refresh ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html) コマンドを使用して、 からインスタンスの更新を開始します AWS CLI。JSON 設定ファイルでは、変更する任意の設定を指定できます。設定ファイルを参照するとき、次の例に示すように、ファイルパスおよび名前を指定します。

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

`config.json` の内容: 

**Example**  

```
{
  "AutoScalingGroupName": "my-asg",
  "Strategy" : "ReplaceRootVolume",
  "DesiredConfiguration":{
    "MixedInstancesPolicy":{
      "LaunchTemplate": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId":"my-launch-template",
          "Version": "1"
        },
        "Overrides": [
          {
            "InstanceType":"c5.large",
            "ImageId":"ami-1234example"
          },
          {
            "InstanceType":"m5.large",
            "ImageId":"ami-2345example"
          }
        ]
      }
    }
  },
  "Preferences": {
    "InstanceWarmup": 60,
    "MinHealthyPercentage": 90,
    "AutoRollback": true,
    "ScaleInProtectedInstances": Ignore,
    "StandbyInstances": Ignore
  }
}
```

設定が指定されない場合、デフォルト値が使用されます。詳細については、「[インスタンスの更新のデフォルト値について説明する](understand-instance-refresh-default-values.md)」を参照してください。

出力例:

```
{
    "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

## 制限事項
<a name="start-instance-refresh-replace-root-volume-limitations"></a>
+ EC2 Auto Scaling グループまたはインスタンスの更新に必要な設定が `$Latest`または `$Default`起動テンプレートバージョンを使用している場合、ルートボリュームの置換でインスタンスの更新を開始することはできません。
+ 混合インスタンスポリシーにインスタンスタイプが存在しないインスタンスが含まれている場合、Amazon EC2 Auto Scaling グループのルートボリュームの置換でインスタンスの更新を開始することはできません。
+ ルートボリュームの置き換えによるインスタンスの更新中、必要な設定の混合インスタンスポリシーに存在するタイプのインスタンスのみをアタッチできます。
+ ウォームプールがある EC2 Auto Scaling グループでは、ルートボリュームの置換を使用してインスタンスの更新を開始することはできません。
+ ルートボリュームの置き換えでアクティブなインスタンスの更新がある Amazon EC2 Auto Scaling グループにウォームプールを追加することはできません。

## ルートボリュームを置き換えるライフサイクルフックを使用する
<a name="replace-root-volume-lifecycle-hooks"></a>

ルートボリューム置換中のインスタンスは、独自のライフサイクル移行に従い、置換の前後にアクション (Lambda 関数など) を呼び出すことができます。ルートボリューム置換中のライフサイクル状態の詳細については、「」を参照してください[ルートボリューム置換中のインスタンスのライフサイクル状態遷移](lifecycle-hooks-overview.md#rvr-lifecycle-state-transitions)。

ライフサイクルフック追加の詳細については、[Auto Scaling グループにライフサイクル フックを追加する](adding-lifecycle-hooks.md) を参照してください。ライフサイクルアクション完了の詳細については、[Auto Scaling グループでライフサイクルアクションを完了する](completing-lifecycle-hooks.md) を参照してください。

ルートボリュームを置き換える前に、ライフサイクルフックは以下のシナリオで役立ちます。
+ ルートボリュームが置き換えられ、インスタンスが再起動される前に、アプリケーションを適切にシャットダウンする必要があります。
+ ボリュームが置き換えられる前に、ルートボリュームから別の場所にデータを移動したい。

ルートボリュームの交換後、ライフサイクルフックは以下のシナリオで役立ちます。
+ トラフィックの受信を開始する前に、インスタンスが新しい AMI で完全に準備されていることを確認する必要があります。
+ ルートボリュームに以前存在していたアプリケーションデータをブートストラップします。

ライフサイクルフックを追加するときは、次の点を考慮してください。
+ ライフサイクルアクションに`autoscaling:EC2_INSTANCE_TERMINATING`ライフサイクルフックが設定されている場合、ルートボリュームの置換が近いインスタンスは一時停止し、 `ReplacingRootVolume:Wait`状態になったときにカスタムアクションを実行します。
+ ライフサイクルフックが`autoscaling:EC2_INSTANCE_LAUNCHING`ライフサイクルアクション用に設定されている場合、ルートボリュームを置き換えたばかりのインスタンスは一時停止し、 `Pending:Wait`状態に達したときにカスタムアクションを実行します。

インスタンスが待機状態になると、Amazon EC2 Auto Scaling は通知を送信します。Auto Scaling ライフサイクルフック通知には、インスタンスがルートボリュームの交換中である`ReplaceRootVolume`ことを示す値を持つ `Action`フィールドが含まれています。

これらの通知の例については、このガイドの EventBridge セクションを参照してください。詳細については、「[ルートボリュームのライフサイクルイベントを置き換えるインスタンスの更新](instance-refresh-eventbridge-events.md#instance-refresh-rvr-lifecycle-events)」を参照してください。

# AWS マネジメントコンソール または を使用してインスタンスの更新をキャンセルする AWS CLI
<a name="cancel-instance-refresh"></a>

まだ進行中のインスタンスの更新はキャンセルできますが、完了した後にキャンセルすることはできません。

インスタンスの更新をキャンセルしても、既に置き換えられたインスタンスはロールバックされません。インスタンスの変更をロールバックするには、代わりにロールバックを実行してください。詳細については、「[手動または自動ロールバックを使用して変更を元に戻す](instance-refresh-rollback.md)」を参照してください。

**Topics**
+ [インスタンスの更新のキャンセル (コンソール)](#cancel-instance-refresh-console)
+ [インスタンスの更新のキャンセル (AWS CLI)](#cancel-instance-refresh-cli)

## インスタンスの更新のキャンセル (コンソール)
<a name="cancel-instance-refresh-console"></a>

**インスタンスの更新をキャンセルする方法**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

1. **[アクティブインスタンスの更新]** の **[インスタンスの更新]** タブで、**[アクション]** および **[キャンセル]** を選択します。

1. 確認を求められたら、[**確認**] を選択します。

インスタンス更新のステータスは **[キャンセル中]** に設定されます。キャンセルが完了した後、インスタンスの更新のステータスは **[キャンセル済み]** に設定されます。

## インスタンスの更新のキャンセル (AWS CLI)
<a name="cancel-instance-refresh-cli"></a>

**インスタンスの更新をキャンセルする方法**  
から [cancel-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/cancel-instance-refresh.html) コマンドを使用し AWS CLI 、Auto Scaling グループ名を指定します。

```
aws autoscaling cancel-instance-refresh --auto-scaling-group-name my-asg
```

出力例:

```
{
    "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

**インスタンスの移行を待たずにインスタンスの更新をキャンセルするには**  
から [cancel-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/cancel-instance-refresh.html) コマンドで `--no-wait-for-transitioning-instances`オプションを使用して AWS CLI 、インスタンスの移行を待たずにインスタンスの更新をキャンセルします。

```
aws autoscaling cancel-instance-refresh —auto-scaling-group-name my-asg --no-wait-for-transitioning-instances
```

デフォルトでは、インスタンスの更新をキャンセルすると、Amazon EC2 Auto Scaling は実施中の起動と終了が完了するのを待ってから、ステータスを **[キャンセル済み]** に設定します。ドレイン期間が長いインスタンスがある場合、または新しいインスタンスの更新をすぐに開始する必要がある場合は、これらの移行オペレーションを待つ必要がないようにこのコマンドを使用できます。

このオプションを使用すると、インスタンスの更新ステータスが **[キャンセル済み]** に変わり、新しいインスタンスの更新を開始できます。実施中の起動と終了はバックグラウンドで続行されます。

# 手動または自動ロールバックを使用して変更を元に戻す
<a name="instance-refresh-rollback"></a>

まだ進行中のインスタンスの更新をロールバックできます。終了後はロールバックできません。ただし、新しいインスタンスの更新を開始することによって Auto Scaling グループを再度更新できます。

ロールバックするとき、Amazon EC2 Auto Scaling はそれまでにデプロイされたインスタンスを置き換えます。新しいインスタンスは、インスタンスの更新を開始する前に Auto Scaling グループに最後に保存した設定と一致します。

Amazon EC2 Auto Scaling はロールバック方法として次のものを提供しています。
+ 手動ロールバック: ロールバックを手動で開始して、デプロイされた内容をロールバックポイントまで戻します。
+ 自動ロールバック: Amazon EC2 Auto Scaling は、何らかの理由でインスタンスの更新が失敗した場合、または指定した CloudWatch アラームが `ALARM` 状態になった場合に、デプロイされた内容を自動的に元に戻します。

**Topics**
+ [考慮事項](#instance-refresh-rollback-considerations)
+ [ロールバックを手動で開始する](#instance-refresh-manual-rollback)
+ [自動ロールバックでインスタンスの更新を開始](#instance-refresh-using-auto-rollback)

## 考慮事項
<a name="instance-refresh-rollback-considerations"></a>

以下の考慮事項は、ロールバックを使用する場合に適用されます。
+ ロールバックオプションは、インスタンスの更新の開始の一部として必要な設定を指定した場合にのみ使用できます。
+ 以前のバージョンの起動テンプレートにロールバックできるのは、バージョンが特定の番号の付いたバージョンである場合のみです。Auto Scaling グループが `$Latest` または `$Default` の起動テンプレートバージョンを使用するように設定されている場合、ロールバックオプションは使用できません。
+ また、 AWS Systems Manager Parameter Store から AMI エイリアスを使用するように設定された起動テンプレートにロールバックすることはできません。
+ Auto Scaling グループに最後に保存した設定は、安定した状態である必要があります。安定していない状態でも、ロールバックのワークフローは実行されますが、最終的には失敗します。問題を解決するまで、Auto Scaling グループは失敗状態になり、インスタンスを正常に起動できなくなる可能性があります。これはサービスまたはアプリケーションの可用性に影響する可能性があります。

## ロールバックを手動で開始する
<a name="instance-refresh-manual-rollback"></a>

------
#### [ Console ]

**インスタンスの更新のロールバックを手動で開始するには (コンソール)**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

1. **[インスタンスの更新]** タブの **[アクティブインスタンスの更新]** で、**[アクション]** および **[ロールバック開始]** を選択します。

1. 確認を求められたら、[**確認**] を選択します。

------
#### [ AWS CLI ]

**インスタンスの更新のロールバックを手動で開始するには (AWS CLI)**  
 AWS CLI から「[rollback-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/rollback-instance-refresh.html)」コマンドを使用し、Auto Scaling グループ名を指定します。

```
aws autoscaling rollback-instance-refresh --auto-scaling-group-name my-asg
```

出力例:

```
{
    "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

**ヒント**  
このコマンドがエラーをスローする場合は、 を AWS CLI ローカルで最新バージョンに更新していることを確認してください。

------

## 自動ロールバックでインスタンスの更新を開始
<a name="instance-refresh-using-auto-rollback"></a>

自動ロールバック機能を使用すると、エラーが発生したり、指定された Amazon CloudWatch アラームが `ALARM` 状態になったりした場合など、インスタンスの更新が失敗したときに、インスタンスの更新を自動的にロールバックできます。

自動ロールバックを有効にしていて、インスタンスの置き換え中にエラーが発生した場合、インスタンスの更新は失敗してロールバックされるまで 1 時間かけてすべての置換を完了しようとします。これらのエラーは通常、EC2 の起動失敗、ヘルスチェックの設定ミス、`Standby` 状態にあるインスタンスやスケールインから保護されているインスタンスの終了を無視または許可しないことなどが原因で発生します。

CloudWatch アラームの指定は任意です。アラームを指定するには、まずアラームを作成する必要があります。メトリクスアラームと複合アラームを作成できます。アラームの作成の詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)」を参照してください。Elastic Load Balancing メトリクスを例にとると、Application Load Balancer を使用する場合は `HTTPCode_ELB_5XX_Count` メトリクスと `HTTPCode_ELB_4XX_Count` メトリクスを使用できます。

**考慮事項**
+ CloudWatch アラームを指定しても自動ロールバックを有効にしていない場合、アラーム状態が `ALARM` になると、インスタンスの更新はロールバックせずに失敗します。
+ インスタンスの更新を開始するときに、最大 10 個のアラームを選択できます。
+ CloudWatch アラームを選択する場合、アラームは互換性のある状態である必要があります。アラームの状態が `INSUFFICIENT_DATA` または `ALARM` の場合、インスタンスの更新を開始しようとするとエラーが発生します。
+ Amazon EC2 Auto Scaling が使用するアラームを作成する場合、アラームに欠落データポイントの処理方法を含める必要があります。メトリクスのデータポイントが頻繁に欠落する仕様の場合は、これらの期間中、アラームの状態が `INSUFFICIENT_DATA` になります。この状態になると、Amazon EC2 Auto Scaling は、新しいデータポイントが見つかるまでインスタンスを置き換えることができません。アラームに以前の `ALARM` または `OK` 状態を強制的に維持するには、代わりに欠落データを無視することを選択できます。詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[CloudWatch アラームの欠落データの処理の設定](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data)」を参照してください。

------
#### [ Console ]

**自動ロールバックを使用してインスタンスの更新を開始するには (コンソール)**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

1. **[Instance refresh]** (インスタンスの更新) タブの **[Active instance refresh]** (アクティブインスタンスの更新) で、**[Start instance refresh]** (インスタンスの更新を開始する) を選択します。

1. [インスタンスの更新の開始 (コンソール)](start-instance-refresh.md#start-instance-refresh-console) の手順に従い、必要に応じてインスタンスの更新設定を行います。

1. (オプション) **[設定の更新]** で、**[CloudWatch アラーム]** で** [CloudWatch アラームを有効にする]** を選択し、アラームが `ALARM` 状態になった場合に問題を特定し、操作を失敗させるために 1 つ以上のアラームを選択します。

1. **[ロールバックの設定]** で、**[自動ロールバックを有効にする]** を選択して、失敗したインスタンスの更新を、インスタンスの更新を開始する前に最後に Auto Scaling グループに保存した設定に自動的にロールバックします。

1. 選択内容を確認して、**[インスタンスの更新を開始する]**を選択します。

------
#### [ AWS CLI ]

**自動ロールバック (AWS CLI) でインスタンスの更新を開始するには**  
[start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html) コマンドを使用し、`Preferences` の `AutoRollback` オプションに `true` を指定します。

次の例は、何かが失敗した場合に自動的にロールバックするインスタンスの更新を開始する方法を示しています。*`italicized`* パラメータ値をユーザー自身の値に置き換えてください。

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

`config.json` の内容。

```
{
    "AutoScalingGroupName": "my-asg",
    "DesiredConfiguration": {
      "LaunchTemplate": {
          "LaunchTemplateName": "my-launch-template",
          "Version": "1"
       }
    },
    "Preferences": {
      "AutoRollback": true
    }
}
```

または、インスタンスの更新が失敗した場合、または指定した CloudWatch アラームが `ALARM` 状態の場合に自動的にロールバックするには、次の例のように、`Preferences` で `AlarmSpecification` オプションを指定し、アラーム名を指定します。*`italicized`* パラメータ値をユーザー自身の値に置き換えてください。

```
{
    "AutoScalingGroupName": "my-asg",
    "DesiredConfiguration": {
      "LaunchTemplate": {
          "LaunchTemplateName": "my-launch-template",
          "Version": "1"
       }
    },
    "Preferences": {
      "AutoRollback": true,
      "AlarmSpecification": { "Alarms": [ "my-alarm" ] }
    }
}
```

成功すると、コマンドは以下のような出力を返します。

```
{
  "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

**ヒント**  
このコマンドがエラーをスローする場合は、 を AWS CLI ローカルで最新バージョンに更新していることを確認してください。

------

# スキップマッチングでのインスタンスの更新の使用
<a name="asg-instance-refresh-skip-matching"></a>

スキップマッチングは、既に最新の更新が適用されているインスタンスを無視するように Amazon EC2 Auto Scaling に指示します。これにより、必要以上のインスタンスを置き換えることはありません。これは Auto Scaling グループが特定のバージョンの起動テンプレートを使用していることを確認し、異なるバージョンを使用するインスタンスのみを置き換えたいときに役立ちます。

スキップマッチングを使用する際は、以下を考慮してください。
+ スキップマッチングと*必要な設定*の両方でインスタンスの更新を開始する場合、Amazon EC2 Auto Scaling は必要な設定と一致するインスタンスがあるかどうかをチェックします。次に、必要な設定に一致しないインスタンスのみを置き換えます。インスタンスの更新に成功した後、Amazon EC2 Auto Scaling はグループを更新して必要な設定を反映させます。
+ スキップマッチングでインスタンスの更新を開始しても、必要な設定を指定しない場合、Amazon EC2 Auto Scaling は、Auto Scaling グループに最後に保存した設定と一致するインスタンスがあるかどうかをチェックします。次に、最後に設定した構成と一致しないインスタンスのみが置き換えられます。
+ スキップマッチングは、新しい起動テンプレート、起動テンプレートの新しいバージョン、一連のインスタンスタイプにで使用できます。スキップマッチングを有効にしますが、これらのうちどれも変更されていない場合は、インスタンスの更新はインスタンスを置き換えることなく直ちに成功します。必要な設定にその他の変更 (スポット割り当て戦略の変更など) を行った場合、Amazon EC2 Auto Scaling はインスタンスの更新が成功するまで待機します。次に、新しい必要な設定を反映するように Auto Scaling グループ設定を更新します。
+ 新しい起動設定では、スキップマッチングを使用することはできません。
+ インスタンスの更新を開始し、希望する設定を与えると、Amazon EC2 Auto Scaling はすべてのインスタンスが指定した設定になるように調整します。したがって、起動テンプレートに必要なバージョンとして `$Default` または `$Latest` を指定し、インスタンスの更新中に新しいバージョンの起動テンプレートを作成すると、既に置き換えられているインスタンスは再び置き換えられます。
+ スキップマッチングでは、起動テンプレートのユーザーデータスクリプトが更新されたコードを取得して新しいインスタンスにインストールするかどうかを判断できません。その結果、マッチングをスキップすると、古いコードがインストールされているインスタンスの置換がスキップされる可能性があります。この場合、起動テンプレートのバージョンを更新しなくても、スキップマッチングをオフにして、すべてのインスタンスが最新のコードを確実に受信できるようにする必要があります。

このセクションでは、スキップマッチングを有効にしてインスタンスの更新を開始する AWS CLI 手順について説明します。コンソールを使用する手順については、「[インスタンスの更新の開始 (コンソール)](start-instance-refresh.md#start-instance-refresh-console)」を参照してください。

## スキップマッチング (基本手順)
<a name="skip-matching"></a>

このセクションの手順に従って、 AWS CLI を使用して以下を実行します。
+ インスタンスに適用する起動テンプレートを作成します。
+ インスタンスの更新を開始して起動テンプレートを Auto Scaling グループに適用します。スキップマッチングを有効にしない場合、すべてのインスタンスが置き換えられます。これは、インスタンスのプロビジョニングに使用した起動テンプレートが、必要な設定に指定した起動テンプレートと同じであっても当てはまります。

**新しい起動テンプレートでスキップマッチングを使用するには**

1. 「[create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)」コマンドを使用し、Auto Scaling グループに新しい起動テンプレートを作成します。Auto Scaling グループに作成されたインスタンスの詳細を定義する `--launch-template-data` オプションおよび JSON 入力を含めます。

   例えば、次のコマンドを使用して AMI ID *`ami-0123456789abcdef0`* および `t2.micro` インスタンスタイプを含む基本的な起動テンプレートを作成します。

   ```
   aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
     --launch-template-data '{"ImageId":"ami-0123456789abcdef0","InstanceType":"t2.micro"}'
   ```

   成功すると、コマンドは以下のような出力を返します。

   ```
   {
      "LaunchTemplate": {
        "LaunchTemplateId": "lt-068f72b729example",
        "LaunchTemplateName": "my-template-for-auto-scaling",
        "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
        "CreateTime": "2023-01-30T18:16:06.000Z",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
     }
   }
   ```

   詳細については、「[を使用した起動テンプレートの作成と管理の例 AWS CLI](examples-launch-templates-aws-cli.md)」を参照してください。

1. 「[start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)」コマンドを使用し、インスタンス置き換えワークフローを開始して ID *`lt-068f72b729example`* を含む新しい起動テンプレートを適用します。起動テンプレートは新しいため、バージョンは 1 つしかありません。つまり、起動テンプレートの `1` バージョンはこのインスタンスの更新の対象となります。インスタンスの更新中にスケールアウトイベントが発生し、かつ Amazon EC2 Auto Scaling がこの起動テンプレートのバージョン `1` を使用して新しいインスタンスをプロビジョニングする場合は置き換えられません。操作が正常に完了すると、新しい起動テンプレートが Auto Scaling グループに正常に適用されます。

   ```
   aws autoscaling start-instance-refresh --cli-input-json file://config.json
   ```

   `config.json` の内容。

   ```
   {
       "AutoScalingGroupName": "my-asg",
       "DesiredConfiguration": {
         "LaunchTemplate": {
             "LaunchTemplateId": "lt-068f72b729example",
             "Version": "$Default"
          }
       },
       "Preferences": {
         "SkipMatching": true
       }
   }
   ```

   成功すると、コマンドは以下のような出力を返します。

   ```
   {
     "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
   }
   ```

## スキップマッチング (混合インスタンスグループ)
<a name="skip-matching-mixed-instances-group"></a>

[混合インスタンスポリシー](ec2-auto-scaling-mixed-instances-groups.md)を持つ Auto Scaling グループがある場合は、このセクションの手順に従って、 AWS CLI を使用してスキップマッチングでインスタンスの更新を開始します。次のオプションがあります。
+ ポリシーで指定されたすべてのインスタンスタイプに適用する新しい起動テンプレートを指定します。
+ ポリシーの起動テンプレートを変更するかどうかを問わず、更新された一連のインスタンスタイプを指定します。例えば、不要なインスタンスタイプから移行できます。起動テンプレートは、置き換えるインスタンスの AMI、セキュリティグループ、その他の詳細を変更せず、そのまま使用します。

ニーズに合ったオプションに応じて、次のいずれかのセクションにある手順に従ってください。

**新しい起動テンプレートでスキップマッチングを使用するには**

1. 「[create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)」コマンドを使用し、Auto Scaling グループに新しい起動テンプレートを作成します。Auto Scaling グループに作成されたインスタンスの詳細を定義する `--launch-template-data` オプションおよび JSON 入力を含めます。

   例えば、次のコマンドを使用して AMI ID *`ami-0123456789abcdef0`* を含む起動テンプレートを作成します。

   ```
   aws ec2 create-launch-template --launch-template-name my-new-template --version-description version1 \
     --launch-template-data '{"ImageId":"ami-0123456789abcdef0"}'
   ```

   成功すると、コマンドは以下のような出力を返します。

   ```
   {
      "LaunchTemplate": {
        "LaunchTemplateId": "lt-04d5cc9b88example",
        "LaunchTemplateName": "my-new-template",
        "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
        "CreateTime": "2023-01-31T15:56:02.000Z",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
     }
   }
   ```

   詳細については、「[を使用した起動テンプレートの作成と管理の例 AWS CLI](examples-launch-templates-aws-cli.md)」を参照してください。

1. Auto Scaling グループの既存の混合インスタンスポリシーを表示するには、「[describe-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html)」コマンドを実行します。この情報は、インスタンスの更新を開始する次のステップで必要になります。

   次のコマンドの例では、*`my-asg`* という名前の Auto Scaling グループに設定された混合インスタンスポリシーを返します。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
   ```

   成功すると、コマンドは以下のような出力を返します。

   ```
   {
     "AutoScalingGroups":[
       {
         "AutoScalingGroupName":"my-asg",
         "AutoScalingGroupARN":"arn",
         "MixedInstancesPolicy":{
           "LaunchTemplate":{
             "LaunchTemplateSpecification":{
               "LaunchTemplateId":"lt-073693ed27example",
               "LaunchTemplateName":"my-old-template",
               "Version":"$Default"
             },
             "Overrides":[
               {
                 "InstanceType":"c5.large"
               },
               {
                 "InstanceType":"c5a.large"
               },
               {
                 "InstanceType":"m5.large"
               },
               {
                 "InstanceType":"m5a.large"
               }
             ]
           },
           "InstancesDistribution":{
             "OnDemandAllocationStrategy":"prioritized",
             "OnDemandBaseCapacity":1,
             "OnDemandPercentageAboveBaseCapacity":50,
             "SpotAllocationStrategy":"price-capacity-optimized"
           }
         },
         "MinSize":1,
         "MaxSize":5,
         "DesiredCapacity":4,
         ...
       }
     ]
   }
   ```

1. 「[start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)」コマンドを使用し、インスタンス置き換えワークフローを開始して ID *`lt-04d5cc9b88example`* を含む新しい起動テンプレートを適用します。起動テンプレートは新しいため、バージョンは 1 つしかありません。つまり、起動テンプレートの `1` バージョンはこのインスタンスの更新の対象となります。インスタンスの更新中にスケールアウトイベントが発生し、かつ Amazon EC2 Auto Scaling がこの起動テンプレートのバージョン `1` を使用して新しいインスタンスをプロビジョニングする場合は置き換えられません。操作が正常に完了すると、更新された混合インスタンスポリシーが Auto Scaling グループに正常に適用されます。

   ```
   aws autoscaling start-instance-refresh --cli-input-json file://config.json
   ```

   `config.json` の内容。

   ```
   {
     "AutoScalingGroupName":"my-asg",
     "DesiredConfiguration":{
       "MixedInstancesPolicy":{
         "LaunchTemplate":{
           "LaunchTemplateSpecification":{
             "LaunchTemplateId":"lt-04d5cc9b88example",
             "Version":"$Default"
           },
           "Overrides":[
             {
               "InstanceType":"c5.large"
             },
             {
               "InstanceType":"c5a.large"
             },
             {
               "InstanceType":"m5.large"
             },
             {
               "InstanceType":"m5a.large"
             }
           ]
         },
         "InstancesDistribution":{
           "OnDemandAllocationStrategy":"prioritized",
           "OnDemandBaseCapacity":1,
           "OnDemandPercentageAboveBaseCapacity":50,
           "SpotAllocationStrategy":"price-capacity-optimized"
           }
         }
       }
     },
     "Preferences":{
       "SkipMatching":true
     }
   }
   ```

   成功すると、コマンドは以下のような出力を返します。

   ```
   {
     "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
   }
   ```

次の手順では、起動テンプレートを変更せずに更新された一連のインスタンスタイプを指定します。

**更新された一連のインスタンスタイプでスキップマッチングを使用するには**

1. Auto Scaling グループの既存の混合インスタンスポリシーを表示するには、「[describe-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html)」コマンドを実行します。この情報は、インスタンスの更新を開始する次のステップで必要になります。

   次のコマンドの例では、*`my-asg`* という名前の Auto Scaling グループに設定された混合インスタンスポリシーを返します。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
   ```

   成功すると、コマンドは以下のような出力を返します。

   ```
   {
     "AutoScalingGroups":[
       {
         "AutoScalingGroupName":"my-asg",
         "AutoScalingGroupARN":"arn",
         "MixedInstancesPolicy":{
           "LaunchTemplate":{
             "LaunchTemplateSpecification":{
               "LaunchTemplateId":"lt-073693ed27example",
               "LaunchTemplateName":"my-template-for-auto-scaling",
               "Version":"$Default"
             },
             "Overrides":[
               {
                 "InstanceType":"c5.large"
               },
               {
                 "InstanceType":"c5a.large"
               },
               {
                 "InstanceType":"m5.large"
               },
               {
                 "InstanceType":"m5a.large"
               }
             ]
           },
           "InstancesDistribution":{
             "OnDemandAllocationStrategy":"prioritized",
             "OnDemandBaseCapacity":1,
             "OnDemandPercentageAboveBaseCapacity":50,
             "SpotAllocationStrategy":"price-capacity-optimized"
           }
         },
         "MinSize":1,
         "MaxSize":5,
         "DesiredCapacity":4,
         ...
       }
     ]
   }
   ```

1. [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html) コマンドを使用し、インスタンス置き換えワークフローを開始して更新を適用します。特定のインスタンスタイプを使用するインスタンスを置き換える場合、必要な設定で希望するインスタンスタイプのみを含む混合インスタンスポリシーを指定する必要があります。代わりに新しいインスタンスタイプを追加するかどうかを選択できます。

   次のコマンドの例では、不要なインスタンスタイプ *`m5a.large`* なしでインスタンスの更新を開始します。グループ内のインスタンスタイプが残り 3 つのインスタンスタイプのいずれかと一致しないとき、インスタンスは置き換えられます。(インスタンスの更新は、新しいインスタンスをプロビジョンするインスタンスタイプを選択しませんのでご注意ください。代わりに[割り当て戦略](allocation-strategies.md)によって選択されます) 操作が正常に完了すると、更新された混合インスタンスポリシーが Auto Scaling グループに正常に適用されます。

   ```
   aws autoscaling start-instance-refresh --cli-input-json file://config.json
   ```

   `config.json` の内容 

   ```
   {
     "AutoScalingGroupName":"my-asg",
     "DesiredConfiguration":{
       "MixedInstancesPolicy":{
         "LaunchTemplate":{
           "LaunchTemplateSpecification":{
             "LaunchTemplateId":"lt-073693ed27example",
             "Version":"$Default"
           },
           "Overrides":[
             {
               "InstanceType":"c5.large"
             },
             {
               "InstanceType":"c5a.large"
             },
             {
               "InstanceType":"m5.large"
             }
           ]
         },
         "InstancesDistribution":{
           "OnDemandAllocationStrategy":"prioritized",
           "OnDemandBaseCapacity":1,
           "OnDemandPercentageAboveBaseCapacity":50,
           "SpotAllocationStrategy":"price-capacity-optimized"
           }
         }
       }
     },
     "Preferences":{
       "SkipMatching":true
     }
   }
   ```

# インスタンスの更新にチェックポイントを追加する
<a name="asg-adding-checkpoints-instance-refresh"></a>

インスタンスの更新を使用するとき、段階的にインスタンスを置き換え、進行しながらインスタンスに検証を実行できます。段階的な置き換えを行うには、チェックポイントを追加します。チェックポイントは、インスタンスの更新が一時停止する時点です。チェックポイントを使用すると、Auto Scaling グループの更新の選択方法をより詳細に管理できます。これにより、アプリケーションが確実かつ予測可能な方法で機能することを確認できます。

**Topics**
+ [仕組み](#instance-refresh-checkpoints-how-it-works)
+ [考慮事項](#instance-refresh-checkpoints-considerations)
+ [チェックポイントを有効にする](enable-checkpoints-console-cli.md)

## 仕組み
<a name="instance-refresh-checkpoints-how-it-works"></a>

インスタンスの更新を開始するときは、Auto Scaling グループ内のインスタンスの合計数のパーセンテージとしてチェックポイントを指定します。これらのチェックポイントは、チェックポイントに到達する前に、Auto Scaling グループ内の新しいインスタンスでなければならないインスタンスの最小割合を示します。例えば、チェックポイントが `[20, 50, 100]` の場合、インスタンスの 20% が新しいときに最初のチェックポイントに到達し、50% が新しいときに 2 番目のチェックポイントに到達し、すべてのインスタンスが新しいときに最後のチェックポイントに到達します。

Amazon EC2 Auto Scaling は、グループの最小正常率を維持しながら、指定されたチェックポイントのパーセンテージを尊重するようにインスタンス置換をペース調整します。チェックポイントのパーセンテージを満たすために、Amazon EC2 Auto Scaling は、最小の正常なパーセンテージで許容されるよりも少ない数を置き換えることがありますが、それを超える数を置き換えることは決してありません。

10 個のインスタンスがある次の Auto Scaling グループについて考えてみましょう。チェックポイントのパーセンテージは `[20,50,100]` で、最小正常率は 80 %、最大正常率は 100% です。最小の正常なパーセンテージを維持するために、一度に置き換えることができるインスタンスは 2 つだけです。次の図は、チェックポイントに達する前にインスタンスを置き換えるプロセスの概要を示しています。

![\[この図は、チェックポイントがインスタンス更新のフローにどのような影響を及ぼすかを示しています。\]](http://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/images/checkpoints-instance-refresh.png)


上記の例では、開始される新しいインスタンスごとにインスタンスのウォームアップ期間が設けられます。インスタンスを待機状態にして、起動または終了時にカスタムアクションを実行するライフサイクルフックを使用することもできます。

Amazon EC2 Auto Scaling は、100% 完了したチェックポイントを除き、各チェックポイントに対してイベントを出力します。EventBridge ルールを追加してイベントを Amazon SNS などのターゲットに送信できます。これにより、必要な検証を実行できるタイミングが通知されます。詳細については、「[インスタンスの更新イベント用の EventBridge ルールを作成する](monitor-events-eventbridge-sns.md)」を参照してください。

## 考慮事項
<a name="instance-refresh-checkpoints-considerations"></a>

チェックポイントを使用する際は、次の考慮事項に注意してください。
+ チェックポイントは割合に基づいているため、置換されるインスタンスの数はグループサイズに応じて変化します。スケールアウトアクティビティが発生し、グループサイズが大きくなると、進行中のオペレーションがチェックポイントに再び到達する可能性があります。この場合、Amazon EC2 Auto Scaling は別の通知を送信し、チェックポイント間の待機時間を繰り返してから続行します。
+ 特定の状況下では、チェックポイントをスキップすることができます。例えば、Auto Scaling グループに 2 個のインスタンスがあり、チェックポイントの割合が `[10,40,100]` だとします。最初のインスタンスが置換された後、Amazon EC2 Auto Scaling は、グループの 50% が置換されたと計算します。50% は最初の 2 つのチェックポイントよりも高いため、最初のチェックポイント (`10`) をスキップし、2 番目のチェックポイント (`40`) の通知を送信します。
+ オペレーションをキャンセルすると、それ以降の置換は行われません。オペレーションをキャンセルするか、最後のチェックポイントに到達する前に失敗した場合、すでに置き換えられたインスタンスは前の設定にロールバックされません。
+ 部分更新の場合、オペレーションを再実行するとき、Amazon EC2 Auto Scaling は最後のチェックポイントから再開せず、古いインスタンスのみが置換されても停止しません。ただし、新しいインスタンスをターゲットにする前に、まず古いインスタンスを置き換え対象とします。
+ グループ内のインスタンスの数に比べてチェックポイントのパーセンテージが低すぎる場合、実際の完了パーセンテージがそのチェックポイントのパーセンテージより高くなることもあります。例えば、チェックポイントのパーセンテージが 20 % で、グループに 4 つのインスタンスがあるとします。Amazon EC2 Auto Scaling が 4 つのインスタンスのうち 1 つを置き換える場合、実際に置き換えられるパーセンテージ (25 %) はチェックポイントのパーセンテージ (20 %) よりも高くなります。
+ チェックポイントに到達すると、表示される全体的な完了パーセンテージは、インスタンスのウォームアップが完了するまで更新されません。例えば、チェックポイントの割合は `[20,50]` で、チェックポイントの遅延は 15 分、最小正常率は 80% です。Auto Scaling グループには 10 個のインスタンスがあり、次の置換を行います。
  + 0:00: 2 個の古いインスタンスが新しいインスタンスに置き換えられます。
  + 0:10: 2 個の新しいインスタンスがウォームアップを完了します。
  + 0:25: 2 個の古いインスタンスが新しいインスタンスに置き換えられます。(最小正常率を維持するために、2 個のインスタンスのみが置換されます)。
  + 0:35: 2 個の新しいインスタンスがウォームアップを完了します。
  + 0:35: 1 個の古いインスタンスが新しいインスタンスに置き換えられます。
  + 0:45: 1 個の新しいインスタンスがウォームアップを完了します。

  0:35 で、オペレーションは新しいインスタンスの起動を停止します。新しいインスタンスがウォームアップされていないため、完了率は、完了した置換の数 (50%) を正確に反映していません。新しいインスタンスがウォームアップ期間を 0:45 に完了すると、完了率は 50% と表示されます。
+ 複数のチェックポイントが有効になっている場合は、すべてのインスタンスが完全に置き換えられるように、インスタンスの更新チェックポイントを 100% に設定する必要があります。最終チェックポイントを 100% 未満の割合 (例: 50%) に設定すると、そのチェックポイントの割合に達した後、インスタンスの更新はインスタンスの置き換えを停止し、100% の完了まで自動的に続行されません。

# AWS マネジメントコンソール または を使用して を使用してチェックポイントを有効にする AWS CLI
<a name="enable-checkpoints-console-cli"></a>

 AWS マネジメントコンソール または を使用してチェックポイント AWS CLI を有効にできます。

## チェックポイントを有効にする (コンソール)
<a name="enable-checkpoints-console"></a>

インスタンスの更新を開始する前にチェックポイントを有効にして、増分または段階的なアプローチを使用し、インスタンスを置換することができます。これにより、検証にさらに時間がかかります。

**チェックポイントを使用するインスタンスの更新をスタートするには**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) でAmazon EC2 コンソールを開き、ナビゲーションペインで [**Auto Scaling グループ**] を選択します。

1. Auto Scaling グループの横にあるチェックボックスを選択します。

   **Auto Scaling グループ**ページの下部に分割ペインが開きます。

1. **[Instance refresh]** (インスタンスの更新) タブの **[Active instance refresh]** (アクティブインスタンスの更新) で、**[Start instance refresh]** (インスタンスの更新を開始する) を選択します。

1. **[Start instance refresh]** (インスタンスの更新をスタートする) ページで、**[Minimum healthy percentage]** (最小正常率) および **[Instance warmup]** (インスタンスのウォームアップ) に値を入力します。

1. **[Enable checkpoints]** (チェックポイントを有効にする) チェックボックスをオンにします。

   これにより、最初のチェックポイントのしきい値をパーセンテージで定義できるボックスが表示されます。

1. **[Proceed until \$1\$1\$1\$1 % of the group is refreshed]** (グループの \$1\$1\$1\$1% が更新されるまで続行する) に数値 (1～100) を入力します。これにより、最初のチェックポイントの割合が設定されます。

1. 別のチェックポイントを追加するには、[**Add checkpoint (チェックポイントの追加)**]を選択し、次のチェックポイントの割合を定義します。

1. チェックポイントに達した後、Amazon EC2 Auto Scaling が待機する時間を指定するには、[**Wait for `1` `hour` between checkpoints　(チェックポイント間で待機)**]のフィールドを更新します。時間単位は、時、分、秒のいずれかです。

1. インスタンスの更新の選択が終了したら、**[インスタンスの更新を開始する]** を選択します。

## チェックポイントを有効にする (AWS CLI)
<a name="enable-checkpoints-cli"></a>

を使用してチェックポイントを有効にしてインスタンスの更新を開始するには AWS CLI、次のパラメータを定義する設定ファイルが必要です。
+ `CheckpointPercentages`: 置き換えるインスタンスの割合のしきい値を指定します。これらのしきい値は、チェックポイントを提供します。置換およびウォームアップされたインスタンスの割合が指定されたしきい値の 1 つに達すると、オペレーションは指定された期間待機します。待機時間を`CheckpointDelay`秒単位で指定します。指定した期間が経過すると、インスタンスの更新は次のチェックポイント（該当する場合）に到達するまで続行されます。
+ `CheckpointDelay`: チェックポイントに到達してから続行するまでに待機する時間 (秒) を規定します。検証の実行に十分な時間を選択します。

`CheckpointPercentages` 配列に表示される最後の値は、正常に置換する必要がある Auto Scaling グループの割合を示します。このパーセンテージが正常に置き換えられ、各インスタンスの初期化が完了したとみなされると、オペレーションは `Successful` になります。

**複数のチェックポイントを作成するには**  
複数のチェックポイントを作成するには、次の例の[スタートインスタンスの更新](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)コマンドを使用します。この例では、最初に Auto Scaling グループの 1% を更新する、インスタンスの更新を設定します。10 分の待機後、次の 19% が更新され、さらに 10 分待機します。最後に、オペレーション終了前にグループの残りの部分が更新されます。

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

`config.json` の内容:

```
{
    "AutoScalingGroupName": "my-asg",
    "Preferences": {
      "InstanceWarmup": 60,
      "MinHealthyPercentage": 80,
      "CheckpointPercentages": [1,20,100],
      "CheckpointDelay": 600
    }
}
```

**単一のチェックポイントを作成するには**  
単一のチェックポイントを作成するには、次の例の[スタートインスタンスの更新](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)コマンドを使用します。この例では、最初に Auto Scaling グループの 20% を更新する、インスタンスの更新を設定します。10 分の待機後、オペレーション終了前にグループの残りの部分が更新されます。

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

`config.json` の内容:

```
{
    "AutoScalingGroupName": "my-asg",
    "Preferences": {
      "InstanceWarmup": 60,
      "MinHealthyPercentage": 80,
      "CheckpointPercentages": [20,100],
      "CheckpointDelay": 600
    }
}
```

**Auto Scaling グループを部分的に更新するには**  
Auto Scaling グループの一部のみを置換して完全に停止させるには、次の例の [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html) コマンドを使用します。この例では、最初に Auto Scaling グループの 1% を更新する、インスタンスの更新を設定します。10 分の待機後、オペレーション終了前に次の 19% が更新されます。

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

`config.json` の内容:

```
{
    "AutoScalingGroupName": "my-asg",
    "Preferences": {
      "InstanceWarmup": 60,
      "MinHealthyPercentage": 80,
      "CheckpointPercentages": [1,20],
      "CheckpointDelay": 600
    }
}
```