안녕하세요,
베스핀글로벌 클라우드 기술지원팀입니다.
이번 아티클에서는 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
관련하여 문의사항 있으시면 포털에 문의 남겨주시기 바랍니다.
감사합니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.