

# インスタンスの終了保護を変更する
<a name="Using_ChangingDisableAPITermination"></a>

Amazon EC2 API の使用中にインスタンスが誤って終了するのを防ぐには、`TerminateInstances` を直接呼び出すか、別のインターフェイス (Amazon EC2 コンソールなど) を使用するかにかかわらず、インスタンスの*終了保護*を有効にします。`DisableApiTermination` 属性は、インスタンスを終了可能にするかどうかを制御します。デフォルトでは、インスタンスの削除保護は無効になっています。この属性の値は、インスタンスの起動時、もしくはインスタンスの実行中または停止時に、設定することができます。

`InstanceInitiatedShutdownBehavior` 属性が `terminate` に設定された場合、`DisableApiTermination` 属性は (システムシャットダウン用のオペレーティングシステムコマンドを使用するなどして) インスタンスからシャットダウンを開始して、インスタンスを終了できます。詳細については、「[インスタンスによるシャットダウン動作を変更する](Using_ChangingInstanceInitiatedShutdownBehavior.md)」を参照してください。

**考慮事項**
+ 終了保護を有効にしても、インスタンスにインスタンスを終了する[予定されたイベント](monitoring-instances-status-check_sched.md)がある場合、AWS によるインスタンスの終了は防げません。
+ 終了保護を有効にしても、インスタンスが異常な場合やスケールインイベント中に Amazon EC2 Auto Scaling がインスタンスを終了することは防げません。スケールイン時に Auto Scaling グループが特定のインスタンスを終了できるかどうかを制御するには、[インスタンスのスケールイン保護](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html)を使用します。Auto Scaling グループが異常なインスタンスを終了できるかどうかを制御するには、[ReplaceUnhealthy スケーリングプロセスを中断します](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html)。
+ スポットインスタンス の削除保護を有効にすることはできません。

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

**起動時にインスタンスに対する終了保護を有効にするには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ダッシュボードで、[**Launch Instance (インスタンスの起動)**] を選択してください。

1. **[Advanced Details]** (高度な詳細) を展開します。**[終了保護]** で、**[有効化]** を選択します。

1. インスタンスの詳細の指定が終了したら、**[インスタンスの起動]** を選択します。

**インスタンスに対する終了保護を変更するには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションペインで、[**インスタンス**] を選択します。

1. インスタンスを選択してください。

1. インスタンスを選択してから、**[アクション]**、**[インスタンスの設定]**、**[削除保護の変更]** の順に選択します。

1. **[終了保護]** で、**[有効化]** を選択またはクリアします。

1. **[保存]** を選択します。

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

**インスタンスに対する終了保護を有効にするには**  
[modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) コマンドを使用します。

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --disable-api-termination
```

**インスタンスに対する終了保護を無効化するには**  
[modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) コマンドを使用します。

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --no-disable-api-termination
```

------
#### [ PowerShell ]

**インスタンスに対する終了保護を有効にするには**  
[Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) コマンドレットを使用します。

```
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -DisableApiTermination $true
```

**インスタンスに対する終了保護を無効化するには**  
[Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) コマンドレットを使用します。

```
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -DisableApiTermination $false
```

------

## 終了保護を使用して複数のインスタンスを終了する
<a name="terminate-multiple"></a>

複数のアベイラビリティーゾーンにある複数のインスタンスを同じリクエストで同時に終了する場合、指定した中に終了保護が有効になっているインスタンスが 1 つ以上存在すると、そのリクエストは失敗し次のような結果が返されます。
+ 保護されたインスタンスと同じアベイラビリティーゾーンにあるインスタンスは終了されません。
+ 保護されたインスタンスが他に存在しないアベイラビリティーゾーンでは、特定のインスタンスを正常に終了することができます。

**例**  
2 つのアベイラビリティーゾーンに次の 4 つのインスタンスがあるとします。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Using_ChangingDisableAPITermination.html)

これらのインスタンスすべてを同じリクエストで終了しようとすると、リクエストは以下のような結果とともに失敗を返します。
+ **インスタンス 1** と**インスタンス 2** は、どちらのインスタンスも終了保護が有効化されていないため、正常に終了します。
+ **インスタンス 3** と**インスタンス 4** は、**インスタンス 3** で終了保護が有効になっているため、終了に失敗します。