S3 수명 주기 규칙
- 다른 스토리지 클래스 간에 객체를 옮기는 것
- Standard -> Standard IA -> Intelligent Tiering -> One-Zone IA -> Flexible Retrieval -> Deep Archive
- 객체가 자주 액세스 하지 않는다 Standard IA로 옮길 수 있음
- 객체를 아카이브화 할려면 Glacier 티어, Deep Archive 티어로 이전 가능
- 예시1
- 60일 후에 Standard 클래스로 이전, 6개월 후에 Glacier로 이전해서 아카이브화 가능
- Expiration actions 설정하여서 일정 시간 뒤에 만료되어 객체를 삭제 가능
- 예시2
- 액세스 로그 파일을 365일 후 삭제
- 버저닝을 활성화 했다면 Expiration actions를 사용해서 모든 파일 버전을 삭제 할 수 있음
- 불완전한 멀티파트 업로드를 삭제 할 수도 있음
- 규칙에 특정한 접두어에 대해 지정할 수도 있었음
- 그것들을 버킷 전체에 적용하거나 버킷 안의 특정한 경로에 적용이 가능
- 특정한 객체 태그에 대해 규칙 지정도 가능
- 예시로 재무 부서에만 규칙이 적용이 가능 한 것
- 예시3
- EC2 애플리케이션에 앱 프로필 사진을 S3에 업로드된 후 이미지 섬네일을 원본 사진으로 쉽게 재생성이 가능
- 원본 이미지는 Standard 클래스
- 섬네일 이미지는 접두어를 써서 소스와 섬네일을 구분 One-Zone IA에 설정해서 쉽게 재생성할수 있게
- 그 후 60일 후 만료시켜 삭제하는 라이프사이클 설정이 가능
- 예시4
- 회사 규칙에 따라 30일 동안 삭제된 S3 객체를 즉각적으로 복구 해야하는 상황
- S3 버저닝을 활성화해서 객체 버전을 보관
- 삭제 마커에 의해 감춰져 있기에 복구가 가능
S3 요청자 지불
- 말그대로 요청자 지불
- 네트워킹 비용이 버킷 및 객체 소유자에게 원래 지불이 되는데
- 요청자 지불 버킷을 활성화 하면은
- 요청자가 객체 데이터 다운로드 비용을 지불한다.
- 대량의 데이터셋을 공유 할때 유용
- 요청자가 익명은 안돼고 AWS에서 인증을 받아야지 가능
S3 이벤트 알림
- 객체가 생성, 삭제, 복구, 복제 등 이벤트가 발생하는걸 알림 설정 할 수 있음
- 예시1
- 이미지 섬네일을 생성할때 이벤트 알림을 만들고 그걸 몇몇 대상에게 전송이 가능
- SNS 토픽, SQS Queue, 람다 함수 등이 될 수 있음
- 어떤 타깃에도 전송할 수 있음
- 이벤트 알림이 작동하려면 IAM 권한이 필요하다.
- SQS Queue에서 S3 버킷에 대한 리소스 정책이 필요 한 것
- 이벤트는 S3 버킷으로 가는데 결국 모든 이벤트는 EventBridge로 가게 된다.
- EventBridge를 사용하면 고급 필터링 옵션을 사용할 수 있다.
- 메타데이터, 객체 사이즈, 이름 필터링을 하고 다수의 대상에 전송이 가능
S3 퍼포먼스
- S3 요청이 아주 많을 때 자동으로 확장된다.
- S3로부터 첫 번째 바이트를 수신하는 데 지연 시간은 100~200밀리초 사이
- S3는 버킷 내에서 접두사당 초당 3,500개의 PUT/COPY/POST/DELETE
- 초당 5,500개의 GET/HEAD 요청을 지원
- 접두사 수에 제한은 없음
- bucket/folder1/sub1/file이면 folder1/sub1이 접두사
- 이 접두사를 갖는 file은 초당 3,500개의 PUT 요청과 초당 5,500개의 GET 요청을 처리함
- 접두사 10개가 있다하면
- 35,000개, 55,000개
멀티파트 업로드는 업로드를 병렬화 하므로 전송 속도를 높여 대역폭을 최대화 할 수 있음
엣지 로케이션을 전송해서 전송 속도를 높이고 데이터를 대상 리전에 있는 S3 버킷으로 전달
(엣지 로케이션은 리전보다 수가 많음)
- Byte-Range Fetches
- GET 요청을 병렬화
- 파일이 대용량 일 경우 바이트를 쪼개서 합쳐준다.
- 파일 첫 50바이트가 헤더인걸 알고 있으면
- 50바이트를 사용해서 바이트 범위 요청을 보낼수있다.
S3 셀렉트 & Glacier Select
- S3 Select
- S3에서 파일 검색 할때 필터링을 서버 측에서 수행하게 한다.
- SQL문에서 간단히 행과 열을 사용해 필터링 사용이 가능
- 네트워크 전송이 줄어들고
- 데이터 검색과 필터링에 드는 클라이언트측 CPU 비용도 줄어즌다.
- 사용 시 속도는 400퍼, 비용은 80퍼 줄어듬
S3 Batch Operations
- 단일 요청으로 기존 S3 객체에서 대량 작업을 수행하는 서비스
- 예시1
- 한 번에 많은 S3 객체의 메타데이터와 프로퍼티를 수정
- 배치 작업으로 S3 버킷 간에 객체를 복사할 수 있음
- 예시2
- S3 버킷 내 암호화되지 않은 모든 객체를 암호화 할 수 있음
- ACL이나 태그 수정
- S3 Glacier에서 한 번에 많은 객체를 복원 가능
- Lambda 함수를 호출해 S3 Batch Operations 모든 객체에서 사용자 지정 작업 수행 가능
- 객체 목록에서 원하는 작업은 무엇이든지 수행이 가능
- 왜 직접 스크립팅 하지 않고 S3 Batch Operations 사용하는가?
- 재시도를 관리할 수 있음
- 진행 상황 추척
- 작업 완료 알림
- 보고서 생성 등
- S3 Inventory 기능을 사용해 객체 목록을 가져오고
- S3 Select를 사용해 객체 필터링
- 2개를 사용해서 S3 Batch Operations에 수행할 작업, 매개 변수와 함께 객체 목록 전달
'스터디 > AWS SAA' 카테고리의 다른 글
섹션 15: CloudFront 및 AWS 글로벌 액셀러레이터 (1) | 2024.01.05 |
---|---|
섹션 14: 아마존 S3 보안 (1) | 2024.01.04 |
섹션 12: Amazon S3 소개 (2) | 2024.01.02 |
섹션 11: 클래식 솔루션 아키텍처 토론 (0) | 2023.12.30 |
섹션 10: Route 53 (0) | 2023.12.29 |