← 목록으로AWS

S3 버킷 버전 관리 적용 가이드 — 데이터 보호와 비용 최적화

S3 버전 관리의 동작 원리, 비용 영향, 버킷 유형별 적용 판단 기준, 라이프사이클 정책을 활용한 비용 절감 방법까지 정리한 실무 가이드

AWSS3SecurityDevOps
2026-04-06

버전 관리란

S3 버킷 버전 관리를 활성화하면, 같은 키(파일명)로 업로드하거나 삭제할 때 이전 버전이 보존됩니다.

동작버전 관리 OFF버전 관리 ON
파일 덮어쓰기원본 영구 소실이전 버전 보존, 복구 가능
파일 삭제영구 삭제삭제 마커만 추가, 실제 데이터 보존
랜섬웨어 공격복구 불가이전 버전으로 롤백 가능

이전 버전이 생기는 조건

이전 버전은 "같은 파일명으로 다시 업로드하거나 삭제할 때"만 생깁니다. S3는 파일 내용 일부를 수정하는 개념이 없고, 항상 파일 전체를 새로 업로드하는 구조입니다.

동작이전 버전 생김?설명
같은 파일명으로 다시 업로드O기존 파일이 이전 버전으로 보존
파일 삭제O삭제 마커 추가, 원본은 이전 버전으로 보존
새 파일명으로 업로드X새 객체라서 이전 버전 없음
파일 읽기/다운로드X변경 아님

즉, EDI 허브처럼 매번 다른 파일명으로 쌓이는 구조면 이전 버전이 거의 안 생깁니다. 같은 파일명을 반복해서 덮어쓰는 경우(프론트엔드 빌드 배포 등)에만 이전 버전이 쌓입니다.


기존 시스템 영향

버전 관리를 켜도 기존 동작에 영향 없습니다.

  • 파일 읽기/쓰기: 동일하게 동작 (항상 최신 버전 반환)
  • CloudFront 연동: 영향 없음
  • presigned URL: 동일하게 동작
  • SDK/CLI: 변경 없음

유일한 변화: 덮어쓰기/삭제 시 이전 버전이 보존되어 스토리지 사용량 증가 가능.


비용 영향

추가 비용은 "이전 버전이 얼마나 쌓이느냐"에 따라 결정됩니다.

파일이 거의 덮어쓰기 안 되는 경우 (append-only)

EDI 데이터처럼 한번 올라가면 수정 없이 쌓이는 구조에서는 이전 버전이 거의 안 생기므로 추가 비용이 거의 $0입니다.

파일이 주기적으로 덮어쓰기되는 경우

일일 덮어쓰기량이전 버전 보존 30일S3 Standard 추가 비용 (월)
1GB30GB~$0.75
5GB150GB~$3.75
10GB300GB~$7.50

비용 절감 방법

라이프사이클 정책으로 이전 버전 자동 정리:

  • 이전 버전 30일 후 삭제 → 최대 30일치만 보존
  • 이전 버전 30일 후 Glacier Deep Archive 이동 → 비용 1/10 수준

적용 방법

버전 관리 활성화

  1. AWS 콘솔 → S3 → 대상 버킷 → "속성(Properties)" 탭
  2. "버킷 버전 관리(Bucket Versioning)" → "편집"
  3. "활성화(Enable)" 선택 → "변경 사항 저장"

라이프사이클 정책 (이전 버전 자동 정리)

  1. "관리(Management)" 탭 → "수명 주기 규칙 생성"
  2. 설정:
    • 규칙 이름: delete-old-versions
    • 범위: 버킷의 모든 객체에 적용
    • "객체의 이전 버전 영구 삭제" 체크
    • 경과 일수: 30
    • 보관할 새 버전 수: 1

버킷별 적용 판단 기준

버킷 유형버전 관리 필요성이유
프론트엔드 빌드 배포높음같은 파일명 덮어쓰기 빈번, 배포 실패 시 즉시 롤백 가능
사용자 데이터높음실수 삭제/덮어쓰기 복구
감사 로그높음로그 변조/삭제 방지
EDI 허브 (append-only)낮음매번 다른 파일명으로 쌓이는 구조라 이전 버전 거의 안 생김
임시/테스트낮음불필요한 비용 발생

적용 전 확인사항

버킷의 데이터 변경 패턴을 먼저 확인합니다.

S3 콘솔 → 대상 버킷 → 지표(Metrics) 탭 → 버킷 지표
→ PutObject 요청 수로 덮어쓰기 빈도 파악
  • PutObject가 거의 없으면 → 바로 적용 (비용 영향 없음)
  • PutObject가 많으면 → 라이프사이클 정책 필수로 같이 설정

주의사항

  • 버전 관리는 한번 켜면 "비활성화(Suspended)"만 가능하고 완전히 끌 수 없음
  • 비활성화해도 기존 이전 버전은 남아 있음 (수동 삭제 필요)
  • MFA Delete를 추가로 설정하면 삭제 시 MFA 인증 필요 (보안 강화)

정리

  • 버전 관리는 데이터 보호의 기본이지만, 모든 버킷에 일괄 적용할 필요는 없음
  • 버킷의 데이터 변경 패턴(append-only vs 덮어쓰기)에 따라 적용 판단
  • 라이프사이클 정책으로 이전 버전 자동 정리하여 비용 최적화
  • 프론트엔드 빌드, 사용자 데이터, 감사 로그 버킷은 우선 적용 권장