안녕하세요,
베스핀글로벌 클라우드 기술지원팀입니다.
이번 아티클에서는 S3 버킷에 대한 수명 주기 정책을 설정하는 방법에 대하여 안내해 드리고자 합니다.
객체 수명 주기 관리
S3는 버킷에 저장된 객체의 수명 주기(Life Cycle)를 관리할 수 있는 기능이 있습니다.
이 기능은 일정 시간이 지났을 때, 사용되지 않는 파일들을 삭제하거나 다른 곳에 백업하여 S3 저장 공간을 절약할 수 있는 비용 효율적인 방법입니다.
우선 객체 수명 주기 관리를 말씀 드리기 앞서, S3 스토리지 클래스에 대한 이해가 필요 합니다.
사용 용도에 따라 적절한 S3 클래스를 사용 할 수 있다면, 비용 효율적인 구성을 하실 수 있습니다.
수명 주기 정책은 이러한 파일의 성격에 따라서 자동으로 스토리지 클래스는 전환 ~ 만료 해주는 작업을 해주게 됩니다.
가장 예를 들어 설명하기 좋은 것은, 로그성 데이터입니다.
Access Log, VPC FlowLog, Cloudtrail Log 등.. 지속적으로 데이터의 양이 증가하는데 계속 보관 할 필요는 없는 데이터입니다.
서비스 혹은 로그마다 보존기간을 설정하고, 6개월 이후에는 해당 로그를 확인 할 일이 많지 않기 때문에 Glacier로 전환 시킵니다.
1년 이후 로그는 보관 할 필요가 없다면 만료일자를 설정해서 1년 후 로그들은 삭제 하도록 설정 합니다.
S3 수명 주기 구성에는 다음과 같은 두 가지 유형의 작업이 있습니다.
- 전환 작업
객체가 다른 스토리지 클래스로 전환할 시기를 정의합니다.
예를 들어, 생성 후 30일이 지나면 객체를 S3 Standard-IA 스토리지 클래스로 전환하거나, 생성 후 1년이 지나면 객체를 S3 Glacier 스토리지 클래스에 아카이브하도록 선택할 수 있습니다.
전환 작업: 수명 주기 규칙은 정의된 기간에 서로 다른 스토리지 클래스 간에 개체를 이동할 수 있습니다.
예를 들어 30일 후에 S3 Standard(자주 액세스하는 데이터용)에서 S3 Standard-IA(자주 액세스하지 않는 데이터용)로 객체를 이동한 다음 90일 후에 S3 Glacier(아카이브용)로 객체를 이동하는 규칙을 설정할 수 있습니다. 이렇게 하면 스토리지 클래스 비용이 낮아지면서 비용을 최적화하는 데 도움이 되며 일반적으로 액세스 빈도가 낮은 데이터의 경우 효과가 좋습니다.
- 만료 작업
수명 주기 규칙은 또한 객체가 만료되는 시기를 정의할 수 있으며 Amazon S3는 객체를 자동으로 삭제합니다.
예를 들어 365일 후에 객체를 삭제하도록 규칙을 설정할 수 있습니다.
필터링: 필터를 사용하여 수명 주기 규칙의 범위를 접두사 또는 특정 태그가 있는 객체로 지정할 수 있습니다. 예를 들어 접두사 "logs/"로 시작하거나 특정 태그가 있는 개체에만 적용되는 규칙을 설정할 수 있습니다.
수명 주기 규칙은 비용 최적화 및 데이터 관리를 위한 강력한 도구이지만 주의해서 사용해야 합니다. 잘못 구성된 규칙으로 인해 객체를 실수로 삭제하면 데이터가 손실될 수 있습니다. 항상 규칙을 테스트하고 중요한 데이터를 백업하십시오.
수명 주기 구성을 사용해야 할 때는 언제입니까?
1. 버킷에 주기적으로 로그를 업로드할 경우 (eg. ELB access log, VPC flow log 등)
-> 애플리케이션으로 부터 쌓이는 로그를 일정 기간 동안에 필요로 하지만, 그 이후에 사용자가 삭제하고 싶을 경우
2. 특정 기간 동안만 자주 액세스하는 문서
-> 일부 문서는 특정 기간 동안에만 자주 액세스 되고, 그 이후에 거의 액세스가 없는 경우가 있습니다.
어느 시점이 되면 이러한 문서에 실시간으로 액세스할 필요가 없지만, 조직 또는 규정에서 특정 기간 동안 해당 문서를 보관할 것을 요구할 수 있습니다. 그 이후에는 사용자가 문서를 삭제할 수 있습니다.
3. 보관 목적의 데이터
-> 어떤 유형의 데이터는 주로 보관 목적으로 Amazon S3에 업로드할 수 있습니다.
예를 들어, 디지털 미디어, 금융 및 의료 기록, 가공되지 않은 유전체 염기 서열 데이터, 장기 데이터베이스 백업 파일, 그리고 규제 준수를 위해 보존해야 하는 데이터 등이 있습니다.
S3 수명 주기 정책을 사용하면 Amazon S3가 객체를 더 저렴한 스토리지 클래스로 전환하거나 아카이브하거나 삭제하도록 지시할 수 있습니다.
수명 주기 정책 사용의 예제
- S3 콘솔 -> 해당하는 버킷 선택 -> [관리] -> [수명 주기 규칙] -> [수명 주기 규칙 생성]
- 수명 주기 규칙의 범위를 선택할 수 있습니다.
1. 모든 객체에 적용
2. 하나 이상의 필터를 사용하여 이 규칙의 범위 제한
S3에 저장된 객체들의 변화를 저장하는 것을 말합니다.
예를 들어, A라는 객체를 사용자가 삭제하거나 변경하여도 각각의 변화를 모두 기록하기 때문에 실수를 만회할 수 있습니다.
버전 관리를 활성화한 버킷의 객체에 대하여 수명 주기 규칙을 사용하면 아래의 "수명 주기 규칙 작업" 중,
"이전 버전"에 대한 규칙을 정의할 수 있습니다.
Amazon S3는 아래 표와 같이 여러 사용 사례에 맞춰 설계된 다양한 스토리지 클래스를 제공합니다.
범용 | 알 수 없거나 변화하는 액세스 | 빈번하지 않은 액세스 | 아카이브 |
---|---|---|---|
S3 Standard | S3 Intelligent-Tiering | S3 Standard-IA | S3 Glacier |
S3 One Zone-IA (단일 AZ) | S3 Glacier Deep Archive |
예제 1: VPC Flow Log (vpc flow log 활성화 및 S3에 적재하기)
- VPC Flow Log -> S3 적재 -> 생성 180일 후 객체의 스토리지 클래스 전환 (S3 Standard-IA) -> 365일 후 만료(삭제)
예제 2: ELB Access Log (ALB access log 활성화)
- ALB Access Log -> S3 적재 -> 생성 90일 후 객체의 스토리지 클래스 전환 (S3 Standard-IA) -> 365일 후 만료(삭제)
예제 3: CloudTrail 추적 (CloudTrail 추적 생성)
- CloudTrail 추적 -> S3 적재 -> 생성 180일 후 객체 스토리지 클래스 전환 (S3 Glacier) -> 365일 후 만료(삭제)
참조 링크:
#1 객체 수명 주기 관리 -
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/object-lifecycle-mgmt.html
#2 S3 버킷에 대한 수명 주기 정책을 생성하는 방법 -
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/user-guide/create-lifecycle.html
관련하여 문의사항 있으시면 포털에 문의 남겨주시기 바랍니다.
감사합니다.