Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを終了しようと考えています。
解決策
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Amazon EC2 インスタンスは、以下の理由で終了しない可能性があります。
インスタンスで停止保護が有効になっている
停止保護が有効な場合、EC2 インスタンスを終了することはできません。停止保護が有効になっているかどうかを確認したり、無効にしたりするには、AWS CLI または Amazon EC2 コンソールのいずれかを使用します。
AWS CLI を使用する
EC2 インスタンスで停止保護が有効になっているかどうかを確認するには、次の describe-instance-attribute コマンドを実行します。
aws ec2 describe-instance-attribute --instance-id i-1234567890 --attribute disableApiStop
出力が true を返す場合、インスタンスの停止保護が有効になっています。
停止保護を無効にしてインスタンスを終了できるようにするには、次の modify-instance-attribute コマンドを実行します。
aws ec2 modify-instance-attribute --instance-id i-1234567890 --no-disable-api-stop
Amazon EC2 コンソールを使用する
Amazon EC2 コンソールから停止保護のステータスを確認するには、次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- [アクション] を選択します。
- [インスタンス設定] を選択します。
- [停止保護を変更] を選択します。
[有効] が選択されている場合は、チェックボックスを解除して停止保護を無効にします。
インスタンスで終了保護が有効になっている
終了保護が有効な場合、EC2 インスタンスを終了することはできません。終了保護が有効になっているかどうかを確認したり、無効にしたりするには、AWS CLI または Amazon EC2 コンソールのいずれかを使用します。
AWS CLI を使用する
EC2 インスタンスで終了保護が有効になっているかどうかを確認するには、次の describe-instance-attribute コマンドを実行します。
aws ec2 describe-instance-attribute --instance-id i-1234567890 --attribute disableApiTermination
出力が true を返す場合、インスタンスで終了保護が有効になっています。
インスタンスを終了できるように終了保護を無効にするには、次の modify-instance-attribute コマンドを実行します。
aws ec2 modify-instance-attribute --instance-id i-1234567890 --no-disable-api-termination
Amazon EC2 コンソールを使用する
Amazon EC2 コンソールから終了保護ステータスを確認するには、次の手順を実行します。
- Amazon EC2 コンソールを開きます。
- [アクション] を選択します。
- [インスタンス設定] を選択します。
- [終了保護を変更] を選択します。
終了保護が有効な場合は、[はい、無効にします] を選択し、[保存] を選択して終了保護を無効にします。
IAM エンティティにアタッチされている IAM ポリシーに、インスタンスを終了するアクセス許可がない
インスタンスを終了するには、AWS Identity and Access Management (IAM) エンティティの IAM ポリシーで TerminateInstances API アクションを明示的に許可する必要があります。
ポリシーの例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:TerminateInstances",
"Resource": [
"arn:aws:ec2:us-west-2:123456789012:instance/i-0abcd1234efgh5678",
"arn:aws:ec2:us-west-2:123456789012:instance/i-1wxyz9876lmno4321"
]
}
]
}
AWS マネージドポリシー AmazonEC2FullAccess または AdministratorAccess が IAM エンティティにアタッチされている場合、そのエンティティには TerminateInstances アクション用のアクセス許可があります。IAM エンティティに AmazonEC2FullAccess または AdministratorAccess がアタッチされていない場合は、カスタマーマネージドポリシーを編集し、TerminateInstances アクションを許可する必要があります。または、TerminateInstances アクションを許可するカスタマーマネージドポリシーを作成します。
インスタンスが Auto Scaling グループの一部である
Auto Scaling グループの一部である EC2 インスタンスを終了すると、Auto Scaling グループによって代替インスタンスが起動することがあります。代替インスタンスにより、Auto Scaling グループは想定されるインスタンス数を維持できます。インスタンスを終了して Auto Scaling グループのサイズを調整するには、AWS CLI で terminate-instance-in-auto-scaling-group コマンドを実行します。
関連情報
Amazon EC2 インスタンスを終了する