버킷 비우기 - Amazon Simple Storage Service

버킷 비우기

Amazon S3 콘솔, AWS SDK 또는 AWS Command Line Interface(AWS CLI)를 사용하여 버킷의 콘텐츠를 비울 수 있습니다. 버킷을 비우면 모든 객체가 삭제되지만 버킷은 유지됩니다. 버킷을 비운 후에는 실행 취소할 수 없습니다. 버킷 비우기 작업이 진행되는 동안 버킷에 추가된 객체도 삭제될 수 있습니다. 버킷 자체를 삭제하려면 먼저 버킷의 모든 객체(모든 객체 버전 및 삭제 마커 포함)를 삭제해야 합니다.

S3 버전 관리를 활성화한 상태로 또는 일시 중지된 상태로 버킷을 비우면 버킷에 있는 모든 객체의 모든 버전이 삭제됩니다. 자세한 내용은 버전 관리가 사용 설정된 버킷의 객체 작업 단원을 참조하십시오.

버킷에 객체 만료를 위한 수명 주기 구성을 지정하여 Amazon S3에서 객체를 삭제할 수 있습니다. 자세한 내용은 버킷에서 수명 주기 구성 설정 단원을 참조하십시오. 대용량 버킷을 비우려면 S3 수명 주기 구성 규칙을 사용하는 것이 좋습니다. 수명 주기 만료는 비동기 프로세스이므로 버킷이 비워지기 전에 규칙이 실행되는 데 며칠이 걸릴 수 있습니다. Amazon S3가 처음 규칙을 실행하면 만료 대상인 모든 객체가 삭제 대상으로 표시됩니다. 삭제 대상으로 표시된 객체에 대해서는 더 이상 요금이 청구되지 않습니다. 자세한 내용은 수명 주기 구성 규칙을 사용하여 Amazon S3 버킷을 비우려면 어떻게 해야 합니까?를 참조하세요.

Amazon S3 콘솔을 사용하여 버킷을 비울 수 있습니다. 버킷을 비우면 버킷은 삭제되지 않고 버킷의 모든 객체가 삭제됩니다.

S3 버킷을 비우려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. [버킷 이름(Bucket name)] 목록에서 비우려는 버킷의 이름 옆에 있는 옵션을 선택한 다음 [비우기(Empty)]를 선택합니다.

  3. 버킷 비우기 페이지에서 텍스트 필드에 버킷 이름을 입력하여 버킷을 비울 것인지 확인한 다음 Empty(비우기)를 선택합니다.

  4. [버킷 비우기: 상태(Empty bucket: Status)] 페이지에서 버킷 비우기 프로세스의 진행 상황을 모니터링합니다.

버킷 버전 관리가 사용되지 않은 경우에만 AWS CLI를 사용하여 버킷을 비울 수 있습니다. 버전 관리가 사용되지 않은 경우 rm(제거) AWS CLI 명령을 --recursive 파라미터와 함께 사용하여 버킷을 비우거나 특정 키 이름 접두사를 가진 객체의 하위 집합을 제거할 수 있습니다.

다음 rm 명령은 키 이름 접두사 doc가 있는 객체(예: doc/doc1doc/doc2)를 제거합니다.

$ aws s3 rm s3://bucket-name/doc --recursive

다음 명령을 사용하여 접두사를 지정하지 않고 모든 객체를 제거합니다.

$ aws s3 rm s3://bucket-name --recursive

자세한 내용은 AWS Command Line Interface 사용 설명서AWS CLI와 함께 상위 수준 S3 명령 사용을 참조하세요.

참고

버전 관리가 활성화된 버킷에서는 객체를 제거할 수 없습니다. 이 명령을 사용하면 객체를 삭제할 때 Amazon S3가 삭제 마커를 추가합니다. S3 버킷 버전 관리에 대한 자세한 내용은 S3 버킷에서 버전 관리 사용 섹션을 참조하세요.

AWS SDK를 사용하여 버킷을 비우거나 특정 키 이름 접두사를 가진 객체의 하위 집합을 제거할 수 있습니다.

AWS SDK for Java 제품을 사용하여 버킷을 비우는 방법의 예는 버킷 삭제 단원을 참조하십시오. 버킷의 버전 관리가 활성화되었는지 여부와 관계 없이 코드가 모든 객체를 삭제한 후 버킷을 삭제합니다. 버킷을 비우기만 하려면 버킷을 삭제하는 문을 제거해야 합니다.

그 밖의 AWS SDK 사용에 대한 자세한 내용은 Amazon Web Services용 도구를 참조하세요.

대용량 버킷을 비우려면 S3 수명 주기 구성 규칙을 사용하는 것이 좋습니다. 수명 주기 만료는 비동기 프로세스이므로 버킷이 비워지기 전에 규칙이 실행되는 데 며칠이 걸릴 수 있습니다. Amazon S3가 처음 규칙을 실행하면 만료 대상인 모든 객체가 삭제 대상으로 표시됩니다. 삭제 대상으로 표시된 객체에 대해서는 더 이상 요금이 청구되지 않습니다. 자세한 내용은 수명 주기 구성 규칙을 사용하여 Amazon S3 버킷을 비우려면 어떻게 해야 합니까?를 참조하세요.

수명 주기 구성을 사용하여 버킷을 비우는 경우, 수명 주기 구성에는 최신 버전, 최신이 아닌 버전, 삭제 마커, 불완전 멀티파트 업로드가 포함되어야 합니다.

수명 주기 구성 규칙을 추가하여 특정 키 이름 접두사를 가진 모든 객체 또는 객체의 하위 집합에 대해 만료를 지정할 수 있습니다. 예를 들어, 버킷의 모든 객체를 제거하기 위해서는 생성 후 하루가 지나면 객체가 만료되도록 수명 주기 규칙을 설정할 수 있습니다.

이제 Amazon S3는 시작된 후 지정 일수 내에 완료되지 않은 멀티파트 업로드를 중단하는 데 사용할 수 있는 버킷 수명 주기 규칙을 지원합니다. 스토리지 비용을 최소화하려면 이 수명 주기 규칙을 구성하는 것이 좋습니다. 자세한 내용은 불완전한 멀티파트 업로드를 삭제하도록 버킷 수명 주기 구성 설정 섹션을 참조하세요.

수명 주기 구성을 사용하여 버킷을 비우는 방법에 대한 자세한 내용은 버킷에서 수명 주기 구성 설정객체 만료 단원을 참조하세요.

AWS CloudTrail이 구성된 버킷 비우기

AWS CloudTrail은 Amazon S3 버킷의 객체 수준 데이터 이벤트(예: 객체 삭제)를 추적합니다. 버킷을 대상으로 사용하여 CloudTrail 이벤트를 로깅하고 동일한 버킷에서 객체를 삭제하는 경우 버킷을 비우는 동안 새 객체가 생성될 수 있습니다. 이를 방지하려면 AWS CloudTrail 추적을 중지하세요. CloudTrail 추적에서 이벤트 로깅을 중지하는 방법에 대한 자세한 내용은 AWS CloudTrail 사용 설명서의 추적에 대해 로깅 비활성화를 참조하세요.

CloudTrail 추적이 버킷에 추가되는 것을 중지하는 또 다른 방법은 버킷 정책에 거부 s3:PutObject 문을 추가하는 것입니다. 나중에 버킷에 새 객체를 저장하려는 경우 이 거부 s3:PutObject 문을 제거해야 합니다. 자세한 내용은 IAM 사용 설명서객체 작업IAM JSON 정책 요소: 효과를 참조하세요.