

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

# インスタンスのスケールイン保護を使用してインスタンスの終了を制御する
<a name="ec2-auto-scaling-instance-protection"></a>

インスタンスのスケールイン保護によって、Amazon EC2 Auto Scaling が終了できるインスタンスを制御できます。この機能の一般的なユースケースとしては、コンテナベースのワークロードのスケーリングがあります。詳細については、「[インスタンスの終了を的確に処理するようにアプリケーションを設計する](gracefully-handle-instance-termination.md)」を参照してください。

デフォルトでは、Auto Scaling グループを作成すると、インスタンスのスケールイン保護は無効になります。つまり、Amazon EC2 Auto Scaling はグループ内のすべてのインスタンスを終了できます。

Auto Scaling グループでスケールイン保護設定を有効化しインスタンスを起動すると、その直後からインスタンスの保護が開始されます。インスタンスのスケールイン保護は、インスタンスの状態が `InService` の場合に開始されます。その後、終了できるインスタンスを制御するには、Auto Scaling グループ内で個別インスタンスのスケールイン保護設定を無効にします。そうすることで、引き続き特定のインスタンスを望ましくない終了から保護できます。

**Topics**
+ [考慮事項](#instance-protection-considerations)
+ [Auto Scaling グループのスケールイン保護を変更する](#instance-protection-group)
+ [インスタンスのスケールイン保護を変更する](#instance-protection-instance)

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

インスタンスのスケールイン保護を使用する場合の考慮事項を次に示します。
+ Auto Scaling グループのすべてのインスタンスがスケールインから保護されている場合にスケールインイベントが発生すると、希望するキャパシティは減少します。ただし、Auto Scaling グループはインスタンスのスケールイン保護の設定が無効になるまで、必要な数のインスタンスを終了することはできません。で AWS マネジメントコンソール、スケールインイベントが発生したときに Auto Scaling グループ内のすべてのインスタンスがスケールインから保護されている場合、Auto Scaling グループの**アクティビティ履歴**に次のメッセージが含まれます。 `Could not scale to desired capacity because all remaining instances are protected from scale in.`
+ スケールインから保護されているインスタンスをデタッチすると、インスタンスのスケールイン保護の設定は失われます。インスタンスをグループに再度アタッチすると、グループの現在のインスタンスのスケールイン保護を受け継ぎます。Amazon EC2 Auto Scaling が新しいインスタンスを起動する、あるいはウォームプールから Auto Scaling グループにインスタンスを移動すると、そのインスタンスには、Auto Scaling グループでのインスタンスのスケールイン保護に関する設定が受け継がれます。
+ インスタンスのスケールイン保護は、次の状況から Auto Scaling インスタンスを保護することはできません。
  + インスタンスがヘルスチェックに失敗した場合のヘルスチェックの置換。詳細については、「[Auto Scaling グループでのインスタンスのヘルスチェック](ec2-auto-scaling-health-checks.md)」を参照してください。
  + スポットインスタンスの中断。キャパシティーが使用できなくなった場合、またはスポット料金が上限価格を超えた場合、スポットインスタンスは終了されます。
  + キャパシティブロック予約は終了します。Amazon EC2 は、スケールインから保護されていてもキャパシティブロックインスタンスを再利用します。
  + `terminate-instance-in-auto-scaling-group` コマンドによる手動での終了。詳細については、「[Auto Scaling グループのインスタンスを終了する (AWS CLI)](ec2-auto-scaling-scaling-manually.md#terminate-an-instance-aws-cli)」を参照してください。
  + Amazon EC2 コンソール、CLI コマンド、API オペレーションによる手動終了。Auto Scaling インスタンスを手動の終了から保護するには、Amazon EC2 の終了保護を有効にします。(この操作によって Amazon EC2 Auto Scaling によるインスタンスの終了や `terminate-instance-in-auto-scaling-group` コマンドによる手動終了は防止されません)。起動テンプレートで Amazon EC2 終了保護を有効にする方法については、「[詳細設定を使用して起動テンプレートを作成する](advanced-settings-for-your-launch-template.md)」を参照してください。

## Auto Scaling グループのスケールイン保護を変更する
<a name="instance-protection-group"></a>

Auto Scaling グループのインスタンスのスケールイン保護の設定は、有効または無効にすることができます。有効にすると、グループによって起動されたすべての新しいインスタンスで、インスタンスのスケールイン保護が有効になります。

Auto Scaling グループのこの設定を有効または無効にしても、既存のインスタンスには影響しません。

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

**新しい Auto Scaling グループのスケールイン保護を有効にするには**  
Auto Scaling グループを作成するときに、**[グループサイズとスケーリングポリシーを設定する]** ページの **[インスタンスのスケールイン保護]** で、**[インスタンスのスケールイン保護を有効にする]** チェックボックスを選択します。

**既存のグループのスケールイン保護を有効または無効にするには**

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

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

   ページの下部にスプリットペインが開きます。

1. [**詳細**] タブで、[**高度な設定**]、[**編集**] の順に選択します。

1. **[インスタンスのスケールイン保護]** で、**[インスタンスのスケールイン保護を有効にする]** チェックボックスを選択または選択解除して、必要に応じてこのオプションを有効または無効にします。

1. **[更新]** を選択します。

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

**新しい Auto Scaling グループのスケールイン保護を有効にするには**  
次の [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用してインスタンスのスケールイン保護を有効にします。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in ...
```

**既存のグループのスケールイン保護を有効にするには**  
次の [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用して、指定した Auto Scaling グループにインスタンスのスケールインの保護を有効にします。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in
```

**既存のグループのスケールイン保護を無効にするには**  
次のコマンドを使用して、指定したグループのインスタンスのスケールイン保護を無効にします。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --no-new-instances-protected-from-scale-in
```

------

## インスタンスのスケールイン保護を変更する
<a name="instance-protection-instance"></a>

デフォルトで、インスタンスは所属する Auto Scaling グループからインスタンスのスケールイン保護の設定を取得します。ただし、起動後に個々のインスタンスのスケールイン保護を有効または無効にできます。

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

**インスタンスのスケールイン保護を有効または無効にするには**

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

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

   ページの下部にスプリットペインが開きます。

1. [**Instance management (インスタンス管理)**] タブの [**Instances (インスタンス)**] で、インスタンスを選択します。

1. インスタンスのスケールイン保護を有効にするには、[**Actions (アクション)**]、[**Set scale-in protection (スケールイン保護を設定)**] の順に選択します。プロンプトが表示されると、[**Set scale-in protection (スケールイン保護を設定)**] を選択します。

1. インスタンスのスケールイン保護を無効にするには、[**Actions (アクション)**]、[**Remove scale-in protection (スケールイン保護の削除)**] の順に選択します。プロンプトが表示されたら、[**Remove scale-in protection (スケールイン保護の削除)**] を選択します。

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

**インスタンスのスケールイン保護を有効にするには**  
次の [set-instance-protection](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/set-instance-protection.html) コマンドを使用して、指定したインスタンスにおけるインスタンスのスケールインの保護を有効にします。

```
aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --protected-from-scale-in
```

**インスタンスのスケールイン保護を無効にするには**  
次のコマンドを使用して、指定したインスタンスにおけるインスタンスのスケールイン保護を無効にします。

```
aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --no-protected-from-scale-in
```

------

**注記**  
インスタンスのスケールイン保護は、例えば、誰かが Amazon EC2 コンソールまたは AWS CLIを使用してインスタンスを手動で終了する場合など、人為的なエラーが発生してもインスタンスが終了しないことを保証するものではないことに注意してください。インスタンスが誤って終了されないように保護するために、Amazon EC2 終了保護を使用します。ただし、終了保護とインスタンスのスケールイン保護が有効になっている場合でも、ヘルスチェックでインスタンスが異常であると判断された場合、またはグループ自体が誤って削除された場合、インスタンスストレージに保存されたデータが失われる可能性があります。あらゆる環境と同様に、ベスト・プラクティスは、データのバックアップを頻繁に行うこと、またはビジネス継続性要件に適している場合にいつでもバックアップすることです。