AWS Cloud

S3 수명 주기 규칙 적용

Sungtaek, YOO 2021. 7. 14. 00:25
반응형

1. S3의 수명주기??

 -. S3의 수명주기는 무한으로 증가되는 S3 버킷 용량을 주기적으로 정리 하는데 목적이 있습니다.(S3는 용량 베이스 요금 청구)

 -. 수명주기는 각 버킷별로 생성할 수 있으며, 같은 수명주기를 가지더라도 각 버킷에서 새롭게 생성 해줘야 합니다.

 

 

2. S3 수명 주기 생성하기

보이는 것과 같이, 4개의 버킷이 있으며 수명주기는 버킷마다 생성해줘야 합니다.

위에 언급한 것처럼 네 개의 버킷 수명주기가 모두 같더라도 각 버킷에서 수명주기를 생성해줘야 합니다.

 

 

'look-at-this'라는 버킷을 기준으로 수명주기를 생성.

수명주기를 생성하고 싶은 버킷을 클릭하여, '관리'로 들어갑니다.

 

 

 

'관리'탭으로 가보면 위와 같이 '수명 주기 규칙'을 볼 수 있습니다.

현재 care-accesslog라는 수명 주기 규칙을 생성해두었으며, 상태가 Enable로 보아 현재 정상적으로 작동하는 수명주기 규칙입니다. 수명 주기 규칙을 만들었더라도, 상태를 Disable로 변경하면 해당 규칙은 적용되지 않으니 참고하시면 됩니다.

 

 

생성해둔 수명 주기 규칙 상세를 보면,

크게 '현재 버전 작업'과 '이전 버전 작업'으로 나눌 수 있습니다.

S3의 경우, 버저닝을 통해 관리를 할 수 있으며, 수정을 할때마다 버전 표기를 할 수 있습니다.

따라서, 현재 버전에서 버전 변경 없이 30일(수정가능)이 지날 경우 객체가 만료됩니다.

 

S3객체의 버저닝을 사용하지 않는 경우, 현재 버전 작업에서 객체가 만료되면 삭제가 진행됩니다.

(위를 기준으로 30일이 지난 객체는 삭제됩니다.)

S3객체의 버저닝을 사용하는 경우, 현재 버전이 만료되어 이전 버전 작업으로 이동합니다.

(위를 기준으로 30일이 지난 객체는 버전이 만료되고, 이전 버전 작업으로 가게됩니다. 이전 버전은 +1일 후 버킷 삭제 규칙이 적용되어있으므로, 31일 후 삭제됩니다. 만약, 객체 버전 작업이 30일, 이전 버전 작업이 40일로 설정되어 있다면, 실제로 버킷내에서 삭제되는 것은 30일+40일, 즉, 70일이 됩니다.)

 

 

3. 같은 버킷내 접두사 규칙 적용

같은 버킷에 생성된 객체라도 삭제 주기가 다를 수 있습니다.

ex. look-at-this 버킷이 있으며, 해당 버킷에 'AWSlogs/' 폴더가 있고, 'AWSdatas/' 폴더가 있다고 가정해봅니다.

logs 폴더만 규칙을 적용하려면 아래와 같이 진행하면 됩니다.

위와 같이 적용할 경우 AWSlogs/ 하위에 규칙이 적용됩니다.

 

 

4. 주의사항

*. 직접 S3 버킷을 정리하는 것과 마찬가지로, 수명 주기 규칙을 생성 후 삭제가 되면 복구할 수 없습니다.

따라서, 제가 작성한 정보는 참고해주시고, 실제 적용 전 한번 더 테스트 해보시는 것이 안전합니다.

(객체만료일을 1일로 하여 테스트하는 방법이 있으며, 실제 하루가 지나야합니다.)

 

*. 약 1년정도의 데이터가 있는 상태에서 30일 후 삭제 등의 규칙을 입력할 경우, 30일이 지난 모든 데이터(30일 초과 데이터는 모두 삭제되니 참고하세요.....)

반응형