S3 요청자 지불
S3에서 기본적으로 버킷 소유자(Bucket Owner)가 버킷과 관련된 모든 S3 스토리지 및 데이터 전송 비용을 지불하지만,
요청자 지불(Requester Pays) 기능을 활성화하면 객체를 다운로드하는 사용자(요청자) 가 전송 비용을 부담하도록 설정 가능
- 버킷 소유자는 데이터 저장 비용만 부담 > 전송 비용은 요청자 부담
- 데이터를 많이 다운로드 하는 서비스에 적합 (ex. 공공 데이터셋)
- 요청자는 AWS 계정이 있어야 하며, S3에서 데이터 전송 비용을 직접 지불
S3 이벤트 알림
버킷에서 특정 이벤트 발생 시 AWS 서비스로 자동 알림 전송
- 파일 업로드, 삭제, 복사 등의 이벤트 감지
- Lambda, SQS, SNS와 연계 가능
- 원하는 만큼 S3 이벤트 생성 가능, 원하는 모든 타깃(Lambda, SQS, SNS)에 전송 가능
- 비동기 방식으로 실시간 데이터 처리 가능
- 서버 없이도 강력한 자동화 시스템 구축 가능
- 파일 업로드 시 자동 데이터 처리, 실시간 로그 수집, 워크플로우 자동화 등에 활용
S3 성능
- S3는 높은 요청 수로 자동 스케일링 처리
- S3에서 첫 번째 바이트를 가져오는 데 100~200밀리초의 짧은 지연 시간을 갖음
- 버킷 내에서 prefix당 초당 3,500개의 넣기(PUT), 복사(COPY), 올리기(POST), 삭제(DELETE)를 수행하거나
5,500개의 가져오기(GET) 또는 헤드(HEAD) 요청을 가져옴 - 버킷의 prefix 수는 제한 없음
S3 성능 최적화
- 멀티파트 업로드
- 업로드를 병렬화하여 전송 속도를 높여 대역폭을 최대화
- 사이즈가 큰 파일 업로드 시 작은 파일 단위로 나누어 병렬로 업로드 후 모든 파일이 업로드 되면 큰 파일로 다시 합침
- 파일의 크기가 100MB보다 크면 멀티파트 업로드 권장, 5GB보다 클 경우 필수 사용
- S3 전송 가속화
- 업로드, 다운로드를 위한 전송 가속화
- 멀티파트 업로드와 호환
- 파일을 AWS 엣지 위치로 전송하여 전송 속도를 높임 > 해당 데이터가 대상 지역의 S3 버킷으로 전달됨
- 예를 들어, 미국에 있는 파일을 호주에 있는 S3 버킷에 업로드 하려고 할 때
공공 인터넷을 사용하여 미국의 엣지 위치를 통해 해당 파일을 업로드한 후
해당 엣지 위치에서 호주의 아마존 S3 버킷으로 빠른 프라이빗 AWS 네트워크를 통해 파일을 전송
> 공공 인터넷의 사용량을 최소화하고, 프리이빗 AWS 네트워크의 사용량을 극대화
S3 바이트 범위 가져오기 (Byte-Range Fetch)
파일 전체를 다운로드하지 않고 특정 바이트 범위만 가져올 수 있는 기능
- 병렬 다운로드 가능 > 여러 범위를 동시에 요청하여 속도 성능 향상
- 특정 바이트 범위를 가져오는 데 실패한 경우에도 더 작은 바이ㅂ트 범위를 다시 시도 가능 (실패 시 복원력 향상)
- 스트리밍 처리 가능 > 비디오, 로그 파일 등에서 특정 부분만 가져와 처리
바이트 범위 요청 방식
HTTP Range 헤더를 사용하여 특정 바이트 범위를 지정하는 방식으로 이루어짐
Range: bytes=0-999 // 파일의 처음 1000바이트(0~999) 요청
Range: bytes=1000-1999 // 파일의 1000~1999 바이트 요청
Range: bytes=500- // 500바이트부터 끝까지 요청
Range: bytes=0-499,1000-1499 // XXX 멀티 바이트 요청 불가 (S3는 멀티 범위 요청을 지원하지 않음)
S3 배치 작업 (Batch Operations)
단일 요청으로 S3 객체에서 대량 작업을 일괄적으로 수행하는 서비스
> S3에서 수백만~수십억 개의 객체에 대해 한 번의 요청으로 작업 수행 가능
- 사용 사례
- 한 번에 많은 S3 객체의 메타데이터와 프로퍼티 수정 가능
- S3 버킷 간에 객체 복사
- S3 버킷 내 암호화되지 않은 모든 객체를 암호화
- ACL 또는 태그 수정
- S3 Glacier에서 한 번에 많은 객체 복원 가능
- Lambda 함수를 호출하여 S3 배치 작업의 모든 객체에서 사용자 지정 작업 수행
- 객체 목록에서 원하는 모든 작업 수행 가능
- 배치 작업 구성 요소
- 객체의 목록
- 수행할 작업
- 옵션 매개 변수
- 재시도 관리 > 실패한 작업 다시 실행
- 진행 상황 추적
- 작업 완료 알림
- 보고서 생성
배치 작업에 포함할 객체 가져오기
- 대상 객체 목록 생성
- S3 Inventory 기능 또는 CSV 파일(객체 목록이 포함)을 사용해 객체 목록 가져오기
- Batch 작업 생성 > 대상 객체를 포함하는 작업 요청 생성
- S3 Select를 사용해 객체를 필터링
- 실행할 작업 유형 선택 (ex. Delete, Copy 등)
- Batch Job 실행
- S3 배치 작업에 수행할 작업, 매개 변수와 함께 객체 목록 전달
- AWS가 비동기적으로 작업을 실행하며, 상태 모니터링 가능
- S3 배치가 작업을 수행하고 객체를 처리
- 작업 완료 후 성공/실패 로그 확인 및 재시도 가능
=> S3 Inventory를 사용해 암호화되지 않은 모든 객체를 찾은 다음 S2 배치 작업을 사용해 한 번에 모두 암호화
⚡ S3 Inventory란?
S3 버킷의 객체 목록을 주기적으로 생성하는 기능
> 대규모 데이터 관리 및 비용 절감, 감사, 분석에 유용
S3 Storage Lens
S3 사용량과 스토리지 메트릭을 분석하는 서비스
> S3의 비용 최적화, 데이터 보호, 사용 패턴 파악하여 S3 사용 최적화
- 30일 사용량 및 활동 메트릭 제공
- 다중 계정 모니터링
- 조직 수준, 특정 계정, 지역, 버킷 또는 접두사별로 데이터 집계 가능
- 대시보드 제공 (기본 대시보드, 사용자 정의 대시보드)
- 기본 대시보드에는 여러 지역과 계정의 데이터 표시 > 지역별, 계정별 세부 정보 확인 가능
- S3에 의해 사전 구성 > 필터링 기능 필요 X
- 객체 수, 평균 객체 사이즈, 보유한 버킷 수, 계정 등의 정보 확인
- 모든 메트릭과 리포트를 CSV 또는 parquet 형식으로 S3 버킷으로 내보내기 가능
S3 Storage Lens 메트릭 종류
- Summary Metrics - S3 스토리지에 대한 일반적인 인사이트 제공
- 스토리지 바이트 > 스토리지 및 객체 크기
- 사용 사례
- 가장 빠르게 성장하거나 사용하지 않는 버킷과 접두사 식별
- Cost-Optimization Metrics - 스토리지 비용을 관리하고 최적화할 수 있는 인사이트 제공
- 오래된 데이터, 비효율적인 스토리지 클래스 탐지
- 현재 버전이 아닌 버전에 대한 정보 제공
- 스토리지 바이트 > 최신이 아닌 버전 객체의 수, 실제로 차지하는 공간, 불완전한 멀티파트 업로드 스토리지 바이트 수
- 사용 사례
- 어떤 버킷이 다중 파트 업로드에 실패했는지 또는 어떤 객체를 더 저렴한 스토리지 클래스로 전환할 수 있는지
- 불완전한 업로드가 있는 경우 버킷에서 얼마나 많은 공간을 차지하는지 확인
- Data-Protection Metrics > 데이터 보호 기능에 대한 인사이트 제공
- 모든 버킷이 버전 관리 등을 통해 활성화되었는지 확인
- 삭제된 객체 수, 버전 관리 상태 분석
- 사용 사례
- 데이터 보호 모범 사례를 따르지 않는 버킷을 식별
- Access-management Metrics - S3 버킷 소유권에 대한 인사이트 제공
- 사용 사례
- 버킷이 현재 어떤 객체 소유권 설정을 사용하고 있는지 식별
- 사용 사례
- Event Metrics - S3 이벤트 알림에 대한 인사이트 제공
- S3 이벤트 알림이 구성된 버킷의 수를 파악
- Performance Metrics - S3 전송 가속에 대한 인사이트 제공
- S3 전송 가속이 활성화된 버킷의 수를 확인
- Activity Metrics
- PUT, GET, DELETE 요청 수, 트래픽 양 등 확인
- Detailed Status Code Metrics - HTTP 상태 코드에 대한 인사이트 제공
- 버킷의 사용 유형 파악
S3 Storage Lens 가격
- 무료 버전
- 모든 고객에게 자동으로 제공
- 약 28개의 사용량 지표 포함
- 쿼리에 대한 데이터 14일 동안 조회 가능
- 유료 버전
- 고급 지표 및 권장 사항의 경우 추가 유료 지표 및 기능 사용 가능
- 활동, 고급 비용 최적화, 고급 데이터 보호 및 상태 코드
- CloudWatch Publishing
- 추가 비용없이 CloudWatch 메트릭에 액세스 가능
- S3 버킷 내의 접두사 수준에서 메트릭 수집
- 결제 시 데이터 15개월 동안 사용
- 고급 지표 및 권장 사항의 경우 추가 유료 지표 및 기능 사용 가능
'개발 공부 > AWS' 카테고리의 다른 글
[AWS] SAA 공부 (10)-1 S3 (Simple Storage Service) - S3 Storage Classes (0) | 2025.04.01 |
---|---|
[AWS] SAA 공부 (10) S3 (Simple Storage Service) - 구성 요소 / 보안 / 복제 (0) | 2025.03.31 |
[AWS] SAA 공부 (9) Elastic Beanstalk (0) | 2025.03.29 |
[AWS] SAA 공부 (8)-1 Route 53 - 라우팅 정책 (0) | 2025.03.28 |
[AWS] SAA 공부 (8) Route 53 (0) | 2025.03.28 |