전체 또는 루트 권한이 있는데도 Amazon S3 콘솔 또는 AWS CLI를 사용하여 S3 버킷을 삭제할 수 없는 이유는 무엇입니까?

최종 업데이트 날짜: 2021년 1월 5일

Amazon S3 콘솔 또는 AWS CLI(AWS 명령줄 인터페이스)를 사용하여 Amazon Simple Storage Service(S3) 버킷을 삭제하려고 합니다. 그리고 버킷에 대한 전체 또는 루트 권한이 있습니다. 그러나 삭제 요청이 실패하고 버킷은 여전히 사용 가능합니다. 버킷을 삭제하려면 어떻게 해야 합니까?

간략한 설명

S3 버킷이 100,000개 이상의 객체를 포함하고 있는 경우 Amazon S3 콘솔을 사용하여 해당 버킷을 삭제할 수 없습니다. 버전 관리가 활성화되어 있는 경우 AWS CLI를 사용하여 S3 버킷을 삭제할 수 없습니다. 자세한 내용은 버킷 삭제 또는 비우기를 참조하세요.

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

두 시나리오 모두 S3 버킷을 삭제하려면, 활성화된 버전 관리 기능이 있으면 이를 일시 중지한 다음 버킷의 객체가 하루 후에 만료되도록 수명 주기 규칙을 설정합니다. 객체가 삭제되면 버킷을 삭제할 수 있습니다.

해결 방법

경고: 다음 절차는 S3 버킷에 있는 모든 데이터를 영구적으로 삭제합니다. 버킷에서 삭제 또는 제거된 데이터는 복구될 수 없습니다. 계속하기 전에 버킷 내의 모든 객체 및 데이터를 검토하여 더 이상 필요없는지 확인합니다.

다음 절차를 따라 버전 관리를 일시 중지한 다음 버킷의 객체를 삭제하는 수명 주기 규칙을 설정합니다.

1.    Amazon S3 콘솔을 엽니다.

2.    버킷 이름을 선택하여 삭제하려는 버킷을 엽니다.

3.    (선택 사항) 버전 관리가 활성화된 경우 버킷의 버전 관리를 일시 중지합니다.

4.    관리(Management) 보기를 선택합니다.

5.    수명 주기 규칙(Lifecyle Rules)에서 수명 주기 규칙 작성(Create lifecycle rule)을 선택합니다.

6.    수명 주기 규칙 이름(Lifecycle rule name)에 수명 주기 규칙의 이름을 입력합니다.

7.    전체 버킷에 규칙을 실행하려면 이 규칙이 버킷의 모든 객체에 적용됨(This rule applies to all objects in the bucket)을 선택합니다. 특정 접두어에 대해 규칙을 실행하려면 하나 이상의 필터를 사용하여 이 규칙의 범위 제한(Limit the scope of this rule using one or more filters)을 선택합니다. 그런 다음 접두어(Prefix) 아래에 접두어 이름을 입력합니다.

8.    수명 주기 규칙 작업(Lifecycle rule actions)에서 다음을 선택합니다.

객체의 현재 버전 만료(Expire current versions of objects)
객체의 이전 버전 영구 삭제(Permanently delete previous versions of objects)
만료된 삭제 마커 또는 불완전한 멀티파트 업로드 삭제(Delete expired delete markers or incomplete multipart uploads)

9.    객체의 현재 버전 만료(Expire current versions of objects)에서 객체 생성 후 경과 일수(Number of days after object creation)에 "1"을 입력합니다.

10.    객체의 이전 버전 영구 삭제(Permanently delete previous versions of objects)에서 객체가 이전 버전이 된 후 경과 일수(Number of days after objects become previous versions)에 "1"을 입력합니다.

11.    만료된 삭제 마커 또는 불완전한 멀티파트 업로드 삭제(Delete expired delete markers or incomplete multipart uploads)에서 불완전한 멀티파트 업로드 삭제(Delete incomplete multipart uploads)를 선택합니다. 그런 다음 “1"을 입력하여 일 수(Number of days)를 지정합니다.

12.    규칙 생성(Create rule)을 선택합니다.

참고: "이 규칙에 (이전_규칙_이름)과 중첩되는 접두사가 있습니다(This rule has prefix(es) that are overlapping with (previous_rule_name))"라는 오류 메시지가 표시되어도 규칙은 저장할 수 있습니다.

수명 주기 규칙은 협정 세계시(UTC)로 자정 경에 실행됩니다. 수명 주기 규칙이 실행된 후에는 객체가 즉시 삭제되지는 않지만 삭제 대상으로 표시됩니다. 객체가 삭제 대상으로 표시되면 해당 객체에 대한 요금이 더 이상 청구되지 않습니다. 자세한 내용은 객체 만료 구성을 참조하세요.

버킷에 많은 수의 객체가 있는 경우 이러한 객체는 며칠 동안 Amazon S3 콘솔에 계속 표시될 수 있습니다. 이 상태는 특히 버전 관리가 활성화된 Amazon S3 버킷에 적용됩니다. 버킷에 버전 관리가 활성화된 경우 현재 버전의 객체가 삭제된 후 삭제 마커가 생성됩니다. 삭제 마커의 연령이 적어도 1일을 경과하고 나면 수명 주기 규칙에서 삭제 마커도 정리합니다. 삭제 마커의 연령이 1일을 경과하고 수명 주기 규칙이 연령을 탐지하여 제거하기까지는 수일이 소요될 수 있습니다.

객체(삭제 마커 포함)가 완전히 삭제되면 버킷을 삭제할 수 있습니다.