[AWS S3] S3 Life Cycle 설정으로 비용 절감하는 방법

2023. 5. 3. 16:03개발을 파헤치다/서버 인프라

반응형

S3를 활용해서 이미지나 파일 리소스들을 저장하게 되면 대개의 경우 쓰지 않는 리소스들이 생기게 마련입니다.

임시로 리소스를 업로드해 놓고 서버 어플리케이션에서 처리하게끔 구현하는 경우가 많은데요. 실제로 사용되지 않은 리소스들이 모여있을 때 낭비를 막기 위해 주기적으로 제거해 주면 비용 절감을 할 수 있겠죠.

이럴 때 사용하는 것이 바로 S3의 Life Cycle인데요. 이번에는 임시 디렉토리에 업로드된 후 사용되지 않는 리소스들을 주기적으로 삭제하는 설정을 해보도록 하겠습니다.

 

 

 

 

 


S3의 bucket의 관리 탭에세 수명 주기 규칙 생성을 클릭합니다.


수명 주기 규칙 이름을 설정하고 규칙 범위를 선택합니다.
버킷의 모든 객체에 적용하기 보다는 접두사(prefix) 필터링을 통해 특정 디렉토리의 리소스들을 삭제하는 것이 훨씬 효율적이겠죠.
접두사를 입력할 때에는 앞에 /를 절대 입력하지 않도록 합니다.
예를 들어 tmp 디렉토리 밑의 객체에 수명 주기를 적용하고 싶다면 위처럼 tmp/라고 접두사를 입력해야 합니다. /tmp라고 쓰면 에러가 발생합니다.

이렇게 하려면 애초에 클라이언트에서 이미지 업로드하는 방식을 잘 설계하는 것이 중요합니다. 이 부분이 궁금하시다면 이전 포스트를 참고해 주세요.

2023.04.24 - [개발을 파헤치다/서버 인프라] - AWS S3 Pre-Signed URL 초간단 사용 방법

 

AWS S3 Pre-Signed URL 초간단 사용 방법

보통 사용자가 S3 bucket에 접근해서 파일을 다운로드하거나 업로드하려면 3가지 방법이 가능합니다. public bucket으로 만들기 : 이렇게 구성하면 따로 관리할 필요 없이 모든 사용자가 S3 bucket에 파

show-me-the-money.tistory.com

 

 

이제 수명 주기 규칙을 설정합니다.
객체의 현재 버전 만료와 객체의 이전 버전 영구 삭제를 체크하면 
업로드된 객체의 버전 만료 일수와 이전 버전 영구 삭제 일수를 설정할 수 있습니다.

위와 같이 설정하면 업로드 된 후 1일 뒤에 버전이 만료되고 그 이후에 1일이 지나면 영구 삭제되게 됩니다.
여기서 주의할 점이 있는데 Amazon S3에서 업로드 된 객체의 만료 날짜를 익일 자정(UTC 기준)부터 계산한다는 점입니다.
예를 들어, 2023년 5월 1일 10:30(UTC)에 객체를 생성하고 3일 후에 만료되도록 수명 주기 규칙을 설정했다고 합시다.
그럼 실제 삭제 날짜는 2023년 5월 5일 00:00(UTC)이 됩니다.
5월 2일 00:00(UTC)을 기준으로 3일 후를 계산하기 때문입니다. 따라서 규칙이 실행되는지 확인할 때 이 점을 유의해서 확인해야 합니다.

저장을 누르면 수명 주기 규칙이 생성됩니다.

반응형