S3 스토리지 클래스 간 이동
스토리지 클래스 간 객체를 이동시킬 수 있다.

- 자주 액세스되지 않는 객체는 Standard IA로
- 빠른 액세스가 필요하지 않은 아카이브 객체는 Glacier 또는 Glacier Deep Archive 티어로
- 객체는 수동으로 옮기거나 수명 주기 규칙을 이용해 자동화할 수 있다.
수명 주기 규칙(Lifecycle Rules)
- 규칙을 설정하면 S3가 자동으로 객체를 이동시킴
- ex) 30일 후 -> Standard-IA로 이동
- 실수로 삭제한 파일 복구? -> Versioning
- 복구 가능하며 장기 보관 비용 절감 -> Versioning + Lifecycle
Amazon S3 Analytics - Storage Class Analysis
- Lifecycle 정책을 만들기 전, 어떤 객체를 언제 이동하면 좋을지 분석해줌
- 분석 범위 : Standard <-> Standard-IA만
- 첫 리포트가 나오는데 24~48 시간 걸림
- 권장사항을 보고서로 제공해줌(자동 이동 X)
S3 Requester Pays
- 데이터 다운로드 비용을 요청자가 부담하는 것
- 일반적으로는 버킷 소유자가 저장 + 전송 비용을 부담하지만, Requeseter Pays는 소유자가 저장 비용만 부담
- 요청자는 반드시 AWS 인증된 사용자여야 함
S3 Event Notifications
S3에서 특정 이벤트(파일 업로드 or 삭제)가 발생하면 자동으로 알림을 보내는 기능
3가지 목적지로만 보낼 수 있다.
1) SNS(Simple Notification Service)
: 이메일, SMS 등
2) SQS
: 메시지를 큐에 저장해 나중에 처리
3) Lambda
: 서버리스 함수 자동 실행
S3 Event Notifications with Amazon EventBridge
S3 Event Notifications의 업그레이드 버전이라고 생각하면 됨(기존 방식은 3개로만 보낼 수 있음 -> SNS, SQS, Lambda)
- 훨씬 더 많은 목적지로 보낼 수 있음 : 18개 이상의 AWS 서비스로 연결 가능
- 강력한 필터링과 규칙 : 파일 이름의 prefix/suffix로 필터링 가능(ex. *.jpg) -> JOSN 기반
- 하나의 이벤트로 여러 목적지 전송 가능
S3 Performance 최적화 방법
1. Multi-Part Upload

- ㅌxx큰 파일을 여러 조각으로 나눠 병렬로 업로드
- 파일을 여러 part로 분할 -> 각 part를 동시에 병렬 업로드 -> 모든 part가 업로드되면 S3가 자동으로 합침
- 빠르고 안정적
- 5GB 이상 파일 필수
2. S3 Transfer Acceleration

- AWS의 글로벌 엣지 로케이션(CloudFront)을 활용해 업로드/다운로드 속도를 높임
- 파일을 가장 가까운 엣지 로케이션에 업로드
- 엣지 로케이션에서 AWS 내부 네트워크를 통해 S3 버킷으로 고속 전송 -> 인터넷보다 빠름
- 지리적으로 먼 거리에 파일 전송 시 사용
ex) 한국 사용자가 미국 S3 버킷에 업로드 시
- 일반 : 한국 -> 공용 인터넷 -> 미국 S3
- Transfer Acceleration : 한국 -> 서울 엣지 -> AWS 내부망 -> 미국 S3
3. Byte-Range Fetches
- 파일의 특정 부분(바이트 단위)만 요청해 다운로드 -> 비용/시간 절감
- ex) 10GB 중 1~100MB 부분만 다운로드
- HTTP Range 헤더를 사용해 작동
- 다운로드 속도 향상
- 실패한 범위만 다시 다운로드 가능
S3 Select & Glacier Select
1. S3 Select
서버 측에서 SQL로 필터링해 필요한 데이터만 가져오는 기능
일반적으로는 S3 전체 파일을 다운로드 하나, S3 Select 사용으로 S3 필터링 후 필요한 데이터만 반환 받을 수 있음
(+) 비용 절감 : 최대 80% 절감
(+) 성능 향상 : 최대 400% 빠름
(+) 간단한 쿼리 : SQL 문법 사용
2. Glacier Select
S3 Select와 동일한 기능, 단지 Glacier에 보관된 데이터에 사용
S3 Batch Operations
수백만 ~ 수십억 개의 S3 객체에 대해 대량 작업을 한 번에 수행하는 서비스
1. 메타데이터/속성 수정 : 수백만 개 객체의 메타데이터 한 번에 변경
2. 객체 복사 : 버킷 간 대량 복사
3. 암호화 : 암호화 되지 않은 객체들을 한 번에 암호화
4. ACL/태그 수정 : 수백만 개 객체의 권한이나 태그를 일괄 변경
5. Glacier 복원 : Glacier에 있는 많은 객체 한 번에 복원
6. Lambda 호출 : 각 객체마다 람다 함수 실행, 사용자 정의 작업 가능
직접 스크립팅하지 않고 S3 Batch Operations를 사용하는 이유?
- 재시도 관리
- 진행 상황 추적
- 작업 완료 알림
- 보고서 생성
출처 : https://velog.io/@gagaeun/AWS-Advanced-S3
'AWS' 카테고리의 다른 글
| [AWS] Global Infrastructure (0) | 2025.11.27 |
|---|---|
| [AWS] Amazon S3 Security (0) | 2025.11.13 |
| [AWS] Amazon S3 (1) | 2025.11.11 |
| [AWS] Route 53 (0) | 2025.11.11 |
| [AWS] RDS & Aurora & ElastiCache (0) | 2025.11.10 |