
버전 관리가 켜진 S3 버킷에서는 현재 객체를 만료시켜도 이전 데이터 버전이 남을 수 있습니다. 목록에서 사라졌다는 사실과 저장 데이터가 영구 삭제됐다는 사실을 구분해야 합니다.
적용 환경: Amazon S3 버전 관리 Enabled 버킷; Suspended와 Object Lock은 별도 확인. 공식 문서 확인일: 2026-10-23. 아래 내용은 문서 기반 점검 가이드이며 운영 환경에서 실행한 시험 결과가 아닙니다.
1. 원인: 현재 목록이 전체 저장량은 아닙니다
Enabled 버킷의 현재 버전 만료는 삭제 마커를 현재 버전으로 만들고 기존 데이터를 비현재 버전으로 남기는 방식입니다. 비현재 버전도 저장되어 있는 동안 비용 검토 대상입니다. 삭제 마커는 원본 데이터의 영구 삭제 증명이 아닙니다.
| 구분 | 확인할 의미 |
| 현재 데이터 버전 | 기본 조회에서 접근하는 데이터 |
| 비현재 데이터 버전 | 이전 내용으로 남아 있는 데이터 |
| 삭제 마커 | 기본 조회에서 삭제된 것으로 보이게 하는 표시 |
2. 해결 순서: 규칙 범위를 먼저 읽습니다
버킷의 실제 버전 관리 상태부터 확인합니다. 이 글은 Enabled 상태를 기준으로 하며, 중지(Suspended) 상태의 null 버전 동작을 같은 것으로 취급하지 않습니다.
다음으로 Lifecycle 규칙의 활성화 여부와 접두사·태그 등 필터를 확인합니다. 대상 객체가 규칙 밖에 있으면 보존 일수만 바꿔도 의도대로 적용되지 않습니다. 현재 버전의 Expiration과 비현재 버전의 NoncurrentVersionExpiration을 별도 항목으로 읽으세요.
오래된 버전이 필요한 복구 기간, 법적 보존, Object Lock 등 제약을 먼저 정합니다. 비용을 줄이려고 비현재 버전 만료를 즉시 추가하지 말고, 작은 시험 범위에서 영향과 복구 가능성을 검토합니다.
3. 확인: 버전 수와 저장량을 함께 봅니다
콘솔의 버전 표시와 Storage Lens 등 허용된 조회로 현재·비현재 버전을 구분합니다. 점검 기록에는 버킷, 규칙 필터, 버전 상태, 관찰 시각을 남기세요. 화면에서 객체 이름이 사라진 것만으로 저장 비용이 즉시 0이 됐다고 보고하지 않습니다.
4. 주의와 FAQ
비현재 버전 만료를 취소하면 복구되나요? 이미 영구 삭제된 버전은 규칙을 되돌려도 복구되지 않습니다. 원본 보존과 복구 요구를 사전에 확인해야 합니다.
삭제 마커만 정리하면 용량이 해결되나요? 데이터 버전이 따로 남아 있는지 먼저 봅니다. 마커와 데이터는 다른 대상입니다.
이 글에 삭제 명령이 없는 이유는? 버킷별 보존 조건을 확인하지 않은 일괄 삭제는 위험합니다. 여기서는 읽기 중심의 원인 분류까지만 다룹니다.
공식 출처와 이어 읽기
'소프트웨어개발' 카테고리의 다른 글
| git stash 후 새 파일이 남을 때: 미추적 파일과 무시 파일 구분 (0) | 2026.10.24 |
|---|---|
| CloudWatch 데이터 부족 경보: missing·ignore·breaching 선택 기준 (0) | 2026.10.24 |
| curl은 성공인데 HTTP 404일 때: 종료 코드와 응답 상태를 따로 확인 (0) | 2026.10.23 |