About/Cloud

[AWS] S3 객체 생애주기

김징어 2022. 3. 24. 13:33

S3 워크로드 중 상당수는 백업 아카이브 작업이 수반됩니다. 잘 설계된 백업 아카이브 작업의 결과, 점점 더 많은 백업 아카이브가 정기적으로 누적됩니다.

백업 아카이브 작업에는 기존 아카이브 버전을 유지하는 일도 중요하지만, 스토리지 비용 및 공간 관리를 위해 구 버전을 삭제하거나 폐쇄하는 작업도 필요하며, S3는 이를 위해 자동화된 백업 관리 기법인 버전 관리 및 생애주기 관리 기법을 제공합니다.

버전 관리(Versioning)


다수의 파일 시스템은 하나의 저장 공간에서 동일한 이름이 붙은 파일을 여러 번 업데이트하면서 새로운 파일로 기존의 파일을 덮어쓰는 경우가 많습니다. 이후 사용자는 최신 버전의 파일을 쓰게 되지만, 때에 따라서 기존 버전의 파일을 가져와야 할 때가 있으며, 실수에 의해 덮어쓰기 된 파일을 복구해야 하는 경우도 있습니다.

기본적으로 S3에 저장된 객체 또한 비슷한 방식으로 관리되지만, 버킷 레벨에서 버전 관리(Versioning) 기능을 활성화해서 객체의 구 버전을 저장해 두고 필요할 때는 언제든 접속하도록 할 수 있습니다. 이는 실수에 의한 덮어쓰기 문제를 해소할 수 있긴 하지만 저장 공간이 지나치게 커지는 문제를 낳기도 합니다. 이에 대한 해법이 바로 생애주기 관리입니다.

생애주기 관리(Lifecycle)


앞서 살펴본 S3 Intelligent-Tiering 클래스가 데이터 접속 빈도에 따라 자동으로 클래스를 변경한다면, 버킷 레벨의 생애주기 규칙(lifecycle rules)을 작성해서 지정 일수에 따라 자동으로 클래스가 변경되도록 설정할 수 있습니다.

예를 들어, 처음 30일간 S3 Standard 클래스에 객체를 저장한 후, 다음 30일간은 좀 더 저렴한 One Zone IA 클래스에 객체를 저장하는 생애주기 규칙을 작성할 수 있습니다. 이후 법규 등에 의해 오래된 데이터를 1년간 추가로 보관해야 하는 경우, 365일간 Glacier 클래스에 저장한 뒤 영구적으로 삭제하는 규칙 또한 추가할 수 있습니다.

접두사를 이용해서 버킷 내 일부 객체에 대해서만 생애주기 규칙을 적용하는 것도 가능합니다. 단 객체 이동 전, 특정 클래스에 유지돼야 하는 최소 기간(ex. 30일)이 정해져 있으며, S3 Standard에서 Reduced Redundancy로 직접 이동시킬 수는 없습니다.


참고 사항

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/lifecycle-configuration-examples.html

 

S3 수명 주기 구성의 예제 - Amazon Simple Storage Service

동일한 규칙에 Days 및 ExpiredObjectDeleteMarker 태그를 모두 지정할 수는 없습니다. Days 태그를 지정하면 삭제 마커의 기간이 사용 기간 기준을 충족할 때 Amazon S3가 자동으로 ExpiredObjectDeleteMarker 정리

docs.aws.amazon.com

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791161756103 

 

AWS 공인 솔루션스 아키텍트 스터디 가이드: 어소시에이트 - 교보문고

◈ 이 책에서 다루는 내용 ◈ ◆ 내구성 아키텍처 설계 방법 ◆ 고성능 아키텍처 설계 방법 ◆ 보안성을 갖춘 애플리케이션 및 아키텍처 설계 방법 ◆ 비용 효율적인 아키텍처 설계 방법 ◈ 이

www.kyobobook.co.kr