객체 버전 관리는 AWS S3에서 제공해 주는 중요한 기능으로, 버킷 단위로 활성화할 수 있다. 버전 관리가 활성화되면, 동일한 객체 키로 업로드된 파일들은 각각의 고유한 버전 ID를 할당받게 된다. 이때 처음 업로드된 객체가 기본적으로 버전 1이 되고, 이후 같은 키로 업로드된 객체들은 버전 2, 버전 3 순서대로 증가하는 방식으로 버전이 할당된다.
주요 장점
- 데이터 보호: 실수로 데이터를 삭제하거나 덮어썼을 때, 객체의 이전 버전을 보존할 수 있으며 복원할 수 있다. 이를 통해서 중요한 데이터의 손실을 방지할 수 있다.
- 딜리트 마크: 객체를 삭제하면 실제로 삭제되는 것이 아니라 삭제 마커가 추가된다. 이로 인해 삭제되었다는 표시만 남고, 객체의 이전 버전들은 그대로 유지된다.
- 라이프 사이클 관리: 객체 버전 관리로 인해 쌓이는 많은 데이터와 그에 따른 스토리지 비용을 라이프 사이클 정책을 통해 관리할 수 있다. 라이프 사이클 정책을 활용해 오래된 버전의 객체들을 자동으로 삭제하거나 비용절감을 위해 저비용 스토리지로 이동시킬 수 있다.
실습
객체 버전 활성화
S3 콘솔에서 생성했던 버킷으로 이동하고 속성 탭의 항목 중 버킷 버전을 활성화로 수정해 준다.
이제 객체탭에서 버전 표시를 켜주면, 버전 ID를 확인할 수 있다. 현재 버전 관리를 활성화하지 않은 상태에서 생성된 객체들은 버전이 NULL로 표시된다.
같은 키 값의 객체를 업로드하면 추가된 객체에 대해서 버전 ID를 가지고 있는 것을 확인할 수 있다. 이 객체를 확인하면 최신 버전의 객체가 조회된다.
이전 버전 객체 조회
이전 버전의 객체를 조회하기 위해서는 객체를 선택해서 상자 화면으로 이동해서, 버전 스탭에서 버전을 선택해 주면 된다.
오브젝트 아이디가 url 마지막에 추가된다.
객체 삭제
삭제를 하게 되면, 버전 표시를 안 켜두면 안 보이고 키게 되면 삭제 마커 표시가 된 상태로 확인할 수 있다
이전 버전 객체 영구 삭제
만약 람다나 애플리케이션에서 삭제를 하면 딜리트 요청에 버전 아이디를 같이 넣어주면 되고, 콘솔에서 삭제를 하기 위해 버전 표시를 활성화한 상태로 삭제하려는 버전을 선택하고 삭제하게 되면 영구 삭제를 할 수 있다.
딜리트 마커 삭제
딜리트 마커 역시 일반 객체와 버저닝에 대해 똑같이 관리되기 때문에, 앞서 삭제들과 똑같이 작동하게 될 것이다.
Expired Object Delete Marker
딜리트 마커를 제외한 모든 버전이 사라지고 의미 없는 상태가 된 경우를 의미한다. 이 상태의 객체는 객체 사이즈도 0이고 비용에도 영향을 주진 않지만 콘솔에서 직접 조작하는 경우 운영상의 불편함을 줄 수 있고, 이를 S3 라이프 사이클로 쉽게 해결할 수 있다.
'Django > 인프라' 카테고리의 다른 글
[AWS] CloudFront (0) | 2024.10.15 |
---|---|
[AWS] 스토리지 클래스와 Lifecycle (0) | 2024.10.14 |
[AWS] S3 - 무한 확장 저장소, 버킷 생성, 권한 설정 & 객체 추가 (0) | 2024.10.14 |
[AWS] S3란 무엇인가? (0) | 2024.10.14 |
[AWS] 연결 최적화를 위한 RDS Proxy (0) | 2024.10.11 |