S3 Lifecycle

홍준·2022년 3월 11일
2
post-thumbnail

S3 비용 청구에 대해 궁금하여 공식 문서를 확인해 보았다.
공식 문서를 확인 해보면 S3 버킷에 객체를 저장하는 비용을 지불하며, 부과되는 요금은 객체의 크기, 해당 월에 객체를 저장한 기간, 스토리지 클래스에 따라 다르다고 한다.
이번 작업은 S3 Tagging 으로 수명 주기 적용하여 버킷 관리와 비용 절감에 대해 공유해보려고 한다.


수명 주기란?

AWS S3에서 제공하는 기능으로 오래된 파일을 삭제하거나 파일의 위치를 다른 스토리지로 옮기는 등 저장된 객체의 수명 주기(Life Cycle)를 관리할 수 있는 기능을 말한다.

S3 수명 주기 구성에는 다음과 같은 두 가지 유형의 작업이 있다.

  • 전환 작업
    객체가 다른 스토리지 클래스로 전환할 시기를 정의한다.

  • 만료 작업
    객체가 만료되는 시기를 정의하고 만료된 객체를 자동으로 삭제한다.


수명 주기 규칙 생성 해보자

Step1. 규칙 만들기

관리 탭에서 「수명 주기 규칙 생성」 버튼을 클릭한다.

수명 주기 규칙 이름을 입력 후 규칙 범위 선택을 한다.

규칙범위 선택은

  • 하나 이상의 필터를 사용하여 이 규칙의 범위 제한
  • 이 규칙은 버킷의 모든 객체에 적용됨
두가지가 있다. 「하나 이상의 필터를 사용하여 이 규칙의 범위 제한」은 특정 디렉토리의 파일들만 규칙을 적용시키는 옵션이고 「이 규칙은 버킷의 모든 객체에 적용됨」은 버킷 내의 모든 파일에 적용시키는 옵션이다.

이번 작업은 Tagging을 이용하여 수명주기를 적용하는 작업으로 하나 이상의 필터를 사용하여 이 규칙의 범위 제한을 선택 후 객체 태그에 Filtering 적용 할 태그 값을 지정해준다.

Step 2. 태그 넣기

Tagging은 Console에서 Object를 클릭하여 객체 작업 창의 태그 편집으로 할 수 있고, Sdk를 사용하여 태그를 넣을 수 있다.

  • Console에서 태그 넣기

  • Sdk를 이용한 태그 넣기
public class ManagingObjectTags {

    public static void main(String[] args) {
        Regions clientRegion = Regions.AP_NORTHEAST_2;
        String bucketName = "*** Bucket name ***";
        String keyName = "*** Object key ***";
        String filePath = "*** File path ***";

        try {
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withCredentials(new ProfileCredentialsProvider())
                    .withRegion(clientRegion)
                    .build();

            PutObjectRequest putRequest = new PutObjectRequest(bucketName, keyName, new File(filePath));
            List<Tag> tags = new ArrayList<Tag>();
            tags.add(new Tag("status", "delete"));
            tags.add(new Tag("velog", "S3 Lifecycle"));
            putRequest.setTagging(new ObjectTagging(tags));
            PutObjectResult putResult = s3Client.putObject(putRequest);

        } catch (AmazonServiceException e) {
            e.printStackTrace();
        } catch (SdkClientException e) {
            e.printStackTrace();
        }
    }
}

Step 3. 적용 화면

  • 태그 적용

  • 수명주기 적용


마무리

여기까지 S3 수명 주기 적용 방법에 대해 알아보았다.
간단한 설정으로 버킷 관리와 비용 절감에 도움이 될 것으로 생각한다.👏👏👏

profile
어제의 나를 이기자 🔥

0개의 댓글