Prerequisite
- 오랫동안 액세스 되지 않은 객체가 S3에 존재해야 하며 버전 활성화를 적용했다는 가정하에 작성하였습니다.
- S3 Standard 또는 S3 Standard-IA 스토리지 클래스에서 S3 Intelligent-Tiering, S3 Standard-IA 또는 S3 One Zone-IA로 전환하는 경우 128KiB보다 작은 객체를 전환하지 않습니다.
- S3 수명 주기는 하루에 한 번만 실행됩니다. 또한 Amazon S3는 객체의 전환일 또는 만료일을 다음날 자정(UTC 기준)으로 반올림합니다.
- 람다 코드는 Intelligent-Tiering 만 삭제하는 기준으로 진행했습니다.
- 수명 주기 규칙 구성, 지능형 계층화 아카이브 구성의 구성 범위는 전부 모든 객체에 적용을 선택하였습니다.
Process
1. 수명주기 생성 방법
- [S3] -> [S3 버킷] -> [관리] -> [수명 주기 규칙 생성]
- 수명 주기 규칙 이름 : 수명 주기 규칙에 사용할 이름
- 규칙 범위 선택
- 하나 이상의 필터를 사용하여 이 규칙의 범위 제한
- 접두사를 입력하여 특정 경로 설정
- 버킷의 모든 객체의 적용
- 모든 객체에 적용
- 하나 이상의 필터를 사용하여 이 규칙의 범위 제한
- 수명 주기 규칙 작업
- 스토리지 클래스 간에 객체의 현재 버전 이동
- 객체의 현재 버전의 스토리지 클래스를 바꿈
- 스토리지 클래스 간에 객체의 이전 버전 이동
- 객체의 이전 버전의 스토리지 클래스를 바꿈
- 객체의 현재 버전 만료
- 객체의 현재 버전 삭제
- 객체의 이전 버전 영구 삭제
- 객체의 이전 버전 삭제
- 만료된 객체 삭제 마커 또는 완료되지 않은 멀티파트 업로드 삭제
- 만료된 객체 삭제 : 버전 관리가 활성화된 상태에서 객체를 삭제하면 '삭제 마커'가 생성됩니다. 이 설정으로 그 삭제 마커를 자동으로 제거할 수 있습니다.
- 완료되지 않은 멀티파트 업로드 삭제 : 큰 파일을 여러 부분으로 나누어 업로드하는 과정에서 완료되지 않은 멀티파트 업로드가 남을 수 있습니다. 이 설정으로 그런 데이터를 자동으로 삭제할 수 있습니다.
- 스토리지 클래스 간에 객체의 현재 버전 이동
- 스토리지 클래스 간에 객체의 현재 버전 전환
- 스토리지 클래스 전환 선택 : 지능형 계층화
- 객체 생성 후 경과 기간(일) : 1
- 원하시는 값을 입력
- 스토리지 클래스 간에 객체의 이전 버전 전환
- 스토리지 클래스 전환 선택 : 지능형 계층화
- 객체가 최신이 아닌 상태로 전환 된 후 경과 기간(일) : 1
- 원하시는 값을 입력
- 규칙 생성 클릭
2. 지능형 계층화 아카이브 구성 생성 방법
- [S3] -> [S3 버킷] -> [속성] -> [지능형 계층화 아카이브 구성]
- 구성 이름 : 지능형 계층화 아카이브 구성에 사용할 이름
- 구성 범위 선택
- 하나 이상의 필터를 사용하여 이 구성의 범위 제한
- 접두사를 입력하여 특정 경로 설정
- 이 구성은 버킷의 모든 객체에 적용됩니다.
- 모든 객체에 적용
- 하나 이상의 필터를 사용하여 이 구성의 범위 제한
- 아카이브 규칙 작업 ( 딥 아카이브 액세스 계층 선택 )
- 아카이브 액세스 계층
- 활성화 후 Archive Access 계층은 최소 연속 90일 동안 액세스하지 않은 객체를 자동으로 아카이브합니다. 아카이브에 대한 마지막 액세스 시간을 최대 730일로 연장할 수 있습니다.
- Archive Access 계층의 성능은 S3 Glacier Flexible Retrieval 스토리지 클래스와 동일합니다.
- 딥 아카이브 액세스 계층
- 활성화 후 Deep Archive Access 계층은 최소 연속 180일 동안 액세스하지 않은 객체를 자동으로 아카이브합니다. 아카이브에 대한 마지막 액세스 시간을 최대 730일로 연장할 수 있습니다.
- Deep Archive Access 계층의 성능은 S3 Glacier Deep Archive 스토리지 클래스와 동일합니다.
- 아카이브 액세스 계층
- 생성
3. 람다 구성 방법
3-1. 람다 함수 생성
-
- [람다] -> [함수] -> [함수 생성]
- 함수 이름 : 람다 이름
- 런타임 : 언어 선택 (python 3.12)
- 아키텍처 : x86_64
- [람다] -> [함수] -> [함수 생성]
3-2. 람다 권한 설정
-
- [람다] -> [생성한 람다 클릭] -> [구성] -> [권한] -> [역할 이름 클릭]
- AmazonRDSFullAccess / AmazonS3FullAccess 권한 추가
- [람다] -> [생성한 람다 클릭] -> [구성] -> [권한] -> [역할 이름 클릭]
3-3. 람다 환경 변수 설정
-
- [람다] -> [생성한 람다 클릭] -> [환경 변수] -> [편집 클릭]
- 키 / 값 입력 후 저장
- BUCKET_NAME - S3 버킷 이름
- PREFIX - 경로
- [람다] -> [생성한 람다 클릭] -> [환경 변수] -> [편집 클릭]
3-4. 람다 코드 작성
-
- 첨부 파일에서 다운로드 ( delete-object-intelligent_tering.py )
- storage_class == 'INTELLIGNET_TIERING':
- 해당 부분을 2번에서 설정한 딥 아카이브 액세스로 변경
- storage_class == 'INTELLIGENT_TIERING_DEEP_ARCHIVE_ACCESS':
- 해당 부분을 2번에서 설정한 딥 아카이브 액세스로 변경
- 첨부 파일에서 다운로드 ( delete-object-intelligent_tering.py )
3-5. EventBridge 생성 방법
3-6. 람다 실행 후 결과 확인
-
-
S3 객체 확인
- 람다 실행
- 결과 확인
- Standard를 제외한 지능형 계층화인 2개의 객체 삭제
-
S3 객체 확인
※스마일샤크가 제공하는 모든 콘텐츠는 관련 법의 보호를 받습니다. 스마일샤크 콘텐츠를 사전허가 없이 무단으로 복사·배포·판매·전시·개작할 경우 민·형사상 책임이 따를 수 있습니다. 콘텐츠 사용과 관련해 궁금한 점이 있으면 전화(☎: 070-4369-2028) 또는 이메일(contact@smileshark.kr)로 문의하기 바랍니다.
댓글
댓글 0개
댓글을 남기려면 로그인하세요.