수백만 개의 객체를 저장하는 Amazon Simple Storage Service(Amazon S3) 버킷이 있습니다. 스토리지 요금이 부과되지 않도록 수명 주기 구성 규칙을 사용하여 버킷을 비우려고 합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
참고: 이 수명 주기 구성 지침은 범용 Amazon S3 버킷에만 적용됩니다. 디렉터리 버킷에는 다양한 수명 주기 관리 요구 사항이 있습니다. 테이블 버킷은 수명 주기 구성 규칙을 지원하지 않습니다.
중요: 다음 해결 방법은 S3 버킷의 모든 데이터를 영구적으로 삭제합니다. 데이터를 복구할 수 없으므로 삭제하기 전에 버킷에 있는 모든 객체와 데이터를 검토하십시오.
수명 주기 구성 규칙을 사용하여 버킷을 비우려면 콘솔 또는 AWS CLI를 사용하십시오.
콘솔 사용
콘솔에서 현재 버전의 객체를 만료하고 이전 버전의 객체를 영구적으로 삭제하는 수명 주기 구성 규칙을 생성할 수 있습니다. 규칙을 생성하려면 다음 단계를 완료하십시오.
- Amazon S3 콘솔을 엽니다.
- 범용 버킷 목록에서 비우려는 버킷을 선택합니다.
- 관리 탭을 선택합니다.
- 수명 주기 규칙 생성을 선택합니다.
- 수명 주기 규칙 이름에 규칙 이름을 입력합니다.
- 규칙 범위 선택에서 버킷의 모든 객체에 적용을 선택합니다.
- 이 규칙이 버킷의 모든 객체에 적용됨을 인정합니다를 선택합니다.
- 수명 주기 규칙 작업에서 다음 옵션을 선택합니다.
현재 버전의 객체 만료
객체의 이전 버전을 영구적으로 삭제
만료된 삭제 마커 또는 불완전한 멀티파트 업로드 삭제.
- 현재 버전의 객체 만료 필드에서 객체 생성 후 일수 필드에 1을 입력합니다.
- 이전 버전의 객체 영구 삭제 필드에서 객체가 최신이 아닌 상태로 전환된 후 경과 일수 필드에 1을 입력합니다.
- 모든 버전을 삭제하려면 유지할 새 버전 수(선택 사항) 필드를 비워 둡니다.
- 불완전 멀티파트 업로드 삭제를 선택하고 일수 필드에 1을 입력합니다.
- 규칙 생성을 선택합니다.
- 두 번째 수명 주기 규칙을 만들려면 4~7단계를 반복합니다.
- 만료된 객체 삭제 마커 또는 불완전 멀티파트 업로드 삭제를 선택합니다.
- 만료된 객체 삭제 마커 삭제를 선택합니다.
- 규칙 생성을 선택합니다.
Amazon S3는 하루에 한 번 수명 주기 구성 규칙을 실행합니다. Amazon S3가 규칙을 처음 실행하면 만료될 수 있는 모든 객체를 삭제하도록 표시합니다. 삭제 대상으로 표시한 객체에 대해서는 더 이상 요금이 부과되지 않습니다.
Amazon S3는 비동기적으로 객체 버전을 만료하고 삭제 마커를 제거합니다. 버킷이 비워지기 전에 규칙을 실행하는 데 며칠이 걸릴 수 있습니다. Amazon S3의 비동기 객체 제거에 대한 자세한 내용은 객체 만료를 참조하십시오.
AWS CLI 사용
AWS CLI를 사용하여 S3 버킷을 비우는 수명 주기 규칙을 만들 수 있습니다. 다음 단계를 완료하십시오.
-
JSON 콘텐츠로 파일(예: lifecycle-rules.json)을 만듭니다. 다음 코드 예제는 수명 주기 규칙 세트를 보여줍니다.
{ "Rules": [{
"Expiration": {
"Days": 1
},
"ID": "FullDelete",
"Filter": {
"Prefix": ""
},
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 1
},
"AbortIncompleteMultipartUpload": {
"DaysAfterInitiation": 1
}
},
{
"Expiration": {
"ExpiredObjectDeleteMarker": true
},
"ID": "DeleteMarkers",
"Filter": {
"Prefix": ""
},
"Status": "Enabled"
}
]
}
-
put-bucket-lifecycle-configuration 명령을 실행하여 수명 주기 구성을 만들거나 업데이트합니다. 다음 명령은 lifecycle-rules.json이라는 JSON 파일을 사용합니다.
aws s3api put-bucket-lifecycle-configuration --bucket delete-marker-testing-demo --lifecycle-configuration file://lifecycle-rules.json
참고: JSON 콘텐츠에 접두사 필터를 추가하여 접두사 수준에서만 규칙을 적용할 수 있습니다. 다음은 명령 예시입니다.
"Filter": { "Prefix": "folder1/"
},
관련 정보
버전 관리를 사용하는 버킷에서 만료된 객체 삭제 마커 제거
객체 수명 주기 관리
Amazon S3 객체 및 버킷을 삭제하려면 어떻게 해야 합니까?
범용 버킷 삭제
버킷의 S3 수명 주기 구성 설정