AWS S3 LifeCycle

hyeok3011·2023년 10월 22일
0

LifeCycle이란

AWS S3 저장 비용을 효율적으로 관리하기 위한 기능이다.

수명 주기를 특정 규칙을 정하여 설정하면 그 규칙이 트리거가 되어 동작된다.
위에서 말하는 동작은 2가지다.

  • Transaction Action
    어떠한 기준으로 StorageClass를 변경한다.
  • Expiraction Action
    어떠한 기준으로 Object가 만료된다. (여기서 말하는 만료는 삭제를 뜻한다.)

장점

그래서 왜 써야하는데???

뉴스나 웹툰으로 예를 들어보자
막 업로드된 뉴스 기사나 웹툰의 경우 사람들이 많이 접근하기 때문에 빠르게 이미지를 제공해야한다.
빠르게 이미지를 제공하기 위해서는 Storage Class중 default로 설정되어 있는 S3 Standard로 Object를 업로드 하는것이 좋을것이다.
하지만 뉴스나 웹툰이 한달 뒤에도 사람들이 많이 접근할까? 사람들이 많이 보지도 않는 컨텐츠를 빠르게 제공할 필요 없이 조금 느리더라도 50%저렴한 S3 Standard - Infrequent Access클래스를 선택하는 것이 좋을것이다.
여기서 수천개 수만개나 되는 Object를 자동으로 클래스 변경, 삭제 내가 설정해놓은 규칙으로 클래스를 변경하거나 삭제 시키는 것이 LifeCycle이다.

LifeCycle 설정 방법

간단한 예시로 업로드된지 30일이 지난 오브젝트를 삭제하는 설정을 해보겠다.

aws console -> s3 -> bucket -> lifecycle configuration

temp폴더안에 업로드된지 30일이 지난 Object가 있는경우 Expire시키는 예제이다.
위에서 말했든이 expire는 삭제를 뜻한다. expire된다고 바로 삭제되는것은 아니고 아마존 백그라운드에서 비동기적으로 삭제 한다고 한다.
(30일 지났다고 생명주기 설정을 정지시키거나 삭제시키면 만료된 오브젝트들이 다시 살아나는 마법을 볼 수 있다.)

LifeCycle rule

aws docs

위 문서를 확인해보면 설정 방법이 다양하다. 자세한 설정 방법은 공식 문서를 보는것이 최신화에 더 도움이 될듯하다.

주의사항

  • lifecycle을 사용하여 데이터를 삭제시키는 경우 편리하지만 예상치 못한 데이터가 삭제될 수 있기 때문에 설정값과 스토리지 내에 객체들을 제대로 확인해야 한다.

  • lifecycle을 사용하여 storage class를 자동으로 변경시키는 설정을 걸어놓으면 비용측면에서 매우 효율적이다.
    하지만 storage class를 변경시킬때 나가는 금액이 존재하므로 확인 후 사용하도록 하자
    (데이터가 크고 개수가 적은 Object들은 StorageClass를 변경하여 저장하는것이 좋은 방법이겠지만 데이터가 작고 개수가 많은 경우 배보다 배꼽이 더 커지는 케이스가 있다.)

profile
뇌가 디스크가 아니라는 사실을 깨달아 버린 사람

0개의 댓글