スキップしてコンテンツを表示

削除できない Amazon EBS スナップショットを削除する方法を教えてください。

所要時間3分
0

Amazon Elastic Block Store (Amazon EBS) のスナップショットを削除できません。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

表示されたエラーメッセージまたは発生した問題に基づいて解決策を選択してください。

エンコードされた認証失敗エラー

AWS CloudTrail に次のエラーメッセージが表示されます。

"You are not authorized to perform this operation.Encoded authorization failure message: Bght_tAZ..."

このエラーは、AWS Identity and Access Management (IAM) のユーザーまたはロールに DeleteSnapshot API オペレーションを実行するアクセス許可がないために発生します。

認証失敗メッセージをデコードするには、次のコマンドを実行します。

aws sts decode-authorization-message --encoded-message your_encoded_message

注: your_encoded_message を、表示されたエンコードされた認証失敗メッセージに置き換えてください。

IAM ポリシーシミュレーターを使用してエラーのトラブルシューティングを行うこともできます。IAM ユーザーまたはロールにアタッチされているポリシーに、ec2:DeleteSnapshot アクションを拒否するルールがあるかどうかを確認します。

ec2:DeleteSnapshot アクションを拒否する JSON ポリシーの例:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Deny",
      "Action": "ec2:DeleteSnapshot",
      "Resource": "*"
    }
  ]
}

また、操作を完了するために満たす必要がある条件 (ec2:SnapshotID など) を拒否するルールも確認してください。スナップショットの削除を許可するように IAM ユーザーまたはロールポリシーを更新します。

スナップショットが存在しないというエラー

次のエラーメッセージが表示されます。

"The snapshot 'snap-abcdef1234567890' does not exist."

このエラーは、別の AWS アカウントがスナップショットを所有し、それを自分のアカウントと共有しているために発生します。

スナップショットを共有しているアカウントにアクセスできる場合は、スナップショットを削除できます。そうでない場合は、別のアカウントの所有者にスナップショットの削除を依頼する必要があります。

スナップショットの所有者を確認するには、次の describe-snapshots AWS CLI コマンドを実行します。

aws ec2 describe-snapshots --snapshot-ids snap-abcdef1234567890

注: snap-abcdef1234567890 をスナップショットの ID に置き換えてください。

Amazon Elastic Compute Cloud (Amazon EC2) コンソールを使用してスナップショットに関する情報を取得することもできます。

スナップショットを所有していて、他のアカウントとのスナップショット共有を停止したい場合は、次の手順を実行してください。

  1. Amazon EC2 コンソールを開きます。
  2. ナビゲーションペインで [スナップショット] を選択します。
  3. 共有したスナップショットを選択し、[アクション] を選択します。
  4. [スナップショットの設定] を選択し、[アクセス許可を変更] を選択します。
  5. [共有アカウント] で、スナップショット共有を取り消したいアカウントの ID を選択します。
  6. [選択項目を削除] を選択します。
  7. [変更の保存] を選択します。

AMI が使用中というスナップショットエラー

次のエラーメッセージが表示されます。

"The snapshot 'snap-abcdef1234567890' is currently in use by ami-abcdef1234567890."

このエラーは、登録された Amazon マシンイメージ (AMI) が EBS ボリュームのルートデバイスのスナップショットを使用しているために発生します。

この問題を解決するには、AMI の登録を解除し、スナップショットを削除します。

AMI ID を含むエラーメッセージが表示されなくなった場合は、次の describe-snapshots AWS CLI コマンドを実行します。

aws ec2 describe-snapshots --snapshot-ids snap-abcdef1234567890

注: snap-abcdef1234567890 をスナップショットの ID に置き換えてください。

AMI ID は JSON ファイルの [説明] セクションにあります。

{  "Snapshots": [
    {
      "Description": "Created by CreateImage(i-abcdef1234567890) for ami-abcdef1234567890",
      "Encrypted": false,
      "OwnerId": "111122223333",
      "Progress": "100%",
      "SnapshotId": "snap-abcdef1234567890",
      "StartTime": "2022-11-12T03:15:16.272000+00:00",
      "State": "completed",
      "VolumeId": "vol-abcdef1234567890",
      "VolumeSize": 8,
      "StorageTier": "standard"
    }
  ]
}

DeleteSnapshot オペレーションエラー

次のエラーメッセージが表示されます。

"An error occurred (InvalidSnapshot.NotFound) when calling the DeleteSnapshot operation.The snapshot 'snap-abcdef1234567890' does not exist."

AWS CLI を使用してスナップショットを削除し、前述のエラーメッセージが表示された場合、そのスナップショットはごみ箱に入っている可能性があります。

ごみ箱にあるスナップショットは削除できません。スナップショットを削除できるのは、保持期間が終了した場合のみです。

スナップショットがごみ箱にあるかどうかを確認するには、list-snapshots-in-recycle-bin AWS CLI コマンドを実行します。

aws ec2 list-snapshots-in-recycle-bin --snapshot-id snap-abcdef1234567890 --region region

注: snap-abcdef1234567890 をスナップショットの ID に、region を AWS リージョンに置き換えてください。

出力例:

{  "Snapshots": [
    {
      "SnapshotId": "snap-0460a240fc523552e",
      "RecycleBinEnterTime": "2022-11-13T16:33:54.707000+00:00",
      "RecycleBinExitTime": "2022-11-14T16:33:54.707000+00:00",
      "Description": "",
      "VolumeId": "vol-08d1428974b817a18"
    }
  ]
}

ごみ箱に残っているスナップショットを削除する必要がある場合は、ごみ箱からスナップショットを復元します。IAM ユーザーまたはロールに、ごみ箱にあるスナップショットを表示および復元するための適切なアクセス許可があることを確認してください。

次に、使用しているリージョンの保持ルールを確認します。タグレベルの保持ルールについては、保持ルールと一致しないようにスナップショットタグを変更します。次に、AWS CLI を使用してスナップショットを削除します。リージョンレベルのルールの場合は、保持ルールを削除し、AWS CLI を使用してスナップショットを削除します。AWS Backup で作成し、ごみ箱から復元したスナップショットの場合は、AWS Backup コンソールを使用して削除することはできません。

注: スナップショットの保持ルールを削除しても、ごみ箱内の他のスナップショットは影響を受けません。

AWS Backup で管理されているというスナップショットエラー

次のエラーメッセージが表示されます。

"snap-abcdef1234567890 This snapshot is managed by AWS Backup service and cannot be deleted via EC2 APIs.If you wish to delete this snapshot, please do so via the Backup console."

このエラーは、AWS Backup が作成したスナップショットを、Amazon EC2 コンソールまたは AWS CLI を使用して削除したときに発生します。または、AWS Backup が作成したスナップショットがごみ箱にあり、そのスナップショットを復元しようとした場合にも発生します。

スナップショットを手動で削除するには、AWS Backup コンソールを使用する必要があります。

重要: AWS Backup が作成し、ごみ箱に送った後に復元したスナップショットの場合は、AWS Backup コンソールを使用して削除することはできません。スナップショットを削除するには、Amazon EC2 コンソールまたは AWS CLI を使用する必要があります。

ResourceNotFound エラー

スナップショットを削除しようとしたときに、"ResourceNotFound" エラーが表示されることがあります。このエラーは、Amazon Data Lifecycle Manager を使用してスナップショットを作成してから削除したときに、Amazon EBS がそのスナップショットをごみ箱に保持している場合に発生します。

Amazon Data Lifecycle Manager は、Amazon Data Lifecycle Manager またはスナップショットポリシーを使用して作成したごみ箱のスナップショットを管理しません。スナップショットを削除するには、Amazon EC2 コンソールまたは AWS CLI を使用する必要があります。

DeleteSnapshot API の結果がすぐに表示されない

Amazon EC2 API は最終的な一貫性モデルに従っているため、DeleteSnapshot の後に実行する後続のコマンドでは結果がすぐには表示されない場合があります。

最近削除されたスナップショットのステータスを確認するには、次の describe-snapshots AWS CLI コマンドを実行します。

aws ec2 describe-snapshots --region region --snapshot-ids snap-abcdef1234567890

注: region を実際のリージョンに、snap-abcdef1234567890 をスナップショットの ID に置き換えてください。

次のエラーメッセージが表示された場合、スナップショットは正常に削除されています。

"An error occurred (InvalidSnapshot.NotFound) when calling the DescribeSnapshots operation: The snapshot 'snap-abcdef1234567890' does not exist."

AWS公式更新しました 6ヶ月前
コメントはありません

関連するコンテンツ