Amazon EBS 스냅샷 삭제와 관련된 문제를 해결하려면 어떻게 해야 합니까?

5분 분량
0

Amazon Elastic Block Store(Amazon EBS) 스냅샷을 삭제하려고 하는데 삭제할 수 없습니다. 이 문제를 해결하려면 어떻게 해야 하나요?

간략한 설명

Amazon EBS 스냅샷 삭제가 실패하는 일반적인 이유는 다음과 같습니다.

  • AWS Identity and Access Management(IAM) 사용자 또는 역할에 DeleteSnapshot API 작업을 실행할 권한이 없습니다.
  • 다른 계정이 스냅샷을 소유하고 이를 AWS 계정과 공유합니다.
  • EBS 볼륨 루트 디바이스의 스냅샷은 등록된 Amazon Machine Image(AMI)에서 사용됩니다.
  • 스냅샷은 휴지통에 있습니다.
  • 스냅샷은 AWS Backup에서 생성되거나 AWS Backup에서 생성된 스냅샷은 휴지통에서 복원됩니다.
  • 스냅샷은 Amazon Data Lifecycle Manager를 사용하여 생성되며 휴지통에 있거나 휴지통에서 복원됩니다.
  • DeleteSnapshot API 결과는 후속 명령에 즉시 표시되지 않습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

IAM 사용자 또는 역할에 DeleteSnapshot API 작업을 실행할 권한이 없습니다.

AWS CloudTrail에서 다음과 같은 오류 메시지가 표시됩니다. “You are not authorized to perform this operation. Encoded authorization failure message: Bght_tAZ......"

인증 실패 메시지를 디코딩하려면 다음 명령을 실행합니다.

$  aws sts decode-authorization-message --encoded-message encoded_message

참고: 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 사용자 또는 역할 정책을 업데이트합니다.

관련 조건 키 목록은 Amazon EC2의 작업, 리소스 및 조건 키의 DeleteSnapshot 섹션을 참조하세요.

스냅샷을 다른 AWS 계정에서 소유하고 공유합니다.

다음과 같은 오류 메시지가 나타납니다. "The snapshot 'snap-abcdef1234567890' does not exist.

다른 계정이 소유하고 계정과 공유하는 스냅샷은 계정에서 삭제할 수 없습니다. 스냅샷을 소유한 계정에 액세스할 수 있는 경우 스냅샷을 삭제할 수 있습니다. 그렇지 않은 경우 해당 계정의 소유자에게 문의해야 합니다.

스냅샷의 소유자를 확인하려면 다음 describe-snapshots AWS CLI 명령을 실행합니다.

$ aws ec2 describe-snapshots --snapshot-id snap-abcdef1234567890

참고: snap-abcdef1234567890을 스냅샷의 ID로 바꾸세요.

Amazon Elastic Compute Cloud(Amazon EC2) 콘솔에서도 스냅샷에 대한 정보를 찾을 수 있습니다. 자세한 내용은 Amazon EBS 스냅샷 정보 보기를 참조하세요.

스냅샷을 소유하고 있고 다른 계정과의 스냅샷 공유를 취소하려면 다음 단계를 따릅니다.

  1. Amazon EC2 콘솔을 엽니다.
  2. 탐색 창에서 Snapshots을 선택합니다.
  3. 공유한 스냅샷을 선택한 다음 Actions, Modify permissions을 선택합니다.
  4. Shared accounts에서 스냅샷 공유를 취소하려는 계정의 계정 ID를 선택합니다. 그런 다음 Remove selected를 선택합니다.
  5. Save changes을 선택합니다.

Amazon EBS 볼륨 루트 디바이스의 스냅샷은 등록된 AMI에서 사용됩니다.

다음과 같은 오류 메시지가 나타납니다. “The snapshot 'snap-abcdef1234567890' is currently in use by ami-abcdef1234567890.

AWS Management Console 또는 AWS CLI를 사용하여 AMI를 등록 취소합니다. 그런 다음 스냅샷을 삭제합니다.

오류 메시지에서 AMI ID를 찾을 수 있습니다. 또는 다음과 같은 describe-snapshots AWS CLI 명령을 실행할 수 있습니다.

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

Description 섹션에서 AMI ID를 찾을 수 있습니다.

{
  "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"
    }
  ]
}

스냅샷은 휴지통에 있습니다.

다음과 같은 오류 메시지가 나타납니다. “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

참고: 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 리전의 보존 규칙을 확인합니다. 태그 수준 보존 규칙에서 스냅샷 태그가 보존 규칙과 일치하지 않도록 수정합니다. 그런 다음 스냅샷을 삭제합니다. 리전 수준 규칙에서 보존 규칙을 삭제한 다음 스냅샷을 삭제합니다. 보존 규칙을 삭제해도 휴지통에 있는 다른 스냅샷에는 영향을 주지 않습니다.

스냅샷이 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."

Amazon EC2 콘솔이나 AWS CLI를 사용하여 AWS Backup에서 생성되고 관리되는 스냅샷을 삭제할 수는 없습니다. AWS Backup 콘솔에서 스냅샷을 삭제해야 합니다. 스냅샷 ID를 적어둔 다음 백업 삭제 단계를 따릅니다.

하지만 AWS Backup에서 생성하여 휴지통으로 보낸 다음 복원한 스냅샷은 AWS Backup 콘솔을 사용하여 삭제할 수 없습니다. Amazon EC2 콘솔 또는 AWS CLI를 사용하여 스냅샷을 삭제해야 합니다.

스냅샷은 Amazon Data Lifecycle Manager를 사용하여 생성되며 휴지통에 저장됩니다.

Amazon Data Lifecycle Manager는 Amazon Data Lifecycle Manager 또는 스냅샷 정책을 사용하여 생성된 휴지통에 있는 스냅샷을 관리하지 않습니다. 스냅샷을 삭제하려면 Amazon EC2 콘솔 또는 AWS CLI를 사용해야 합니다.

DeleteSnapshot API 결과는 후속 요청에 즉시 표시되지 않습니다.

모든 Amazon EC2 API는 최종 일관성 모델을 따릅니다. 즉, DeleteSnapshot API를 사용할 때 실행하는 후속 명령에 결과가 즉시 표시되지 않을 수 있습니다.

최근에 삭제된 스냅샷의 상태를 확인하려면 다음 describe-snapshots AWS CLI 명령을 실행합니다.

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

다음과 같은 오류 메시지가 표시되면 스냅샷이 성공적으로 삭제된 것입니다. "An error occurred (InvalidSnapshot.NotFound) when calling the DescribeSnapshots operation: The snapshot 'snap-abcdef1234567890' does not exist.


AWS 공식
AWS 공식업데이트됨 일 년 전