🔄 Storage Class 간 이동
객체 접근 패턴에 따라 스토리지 클래스를 전환해 비용 최적화
- 자주 접근 → Standard
- 가끔 접근 → Standard-IA
- 빠른 접근 불필요한 아카이브 → Glacier / Glacier Deep Archive
- Lifecycle Rules로 자동화 가능
전환 대상 클래스
- Standard
- Standard-IA
- Intelligent-Tiering
- One Zone-IA
- Glacier Instant Retrieval
- Glacier Flexible Retrieval
- Glacier Deep Archive
⏳ Lifecycle Rules – 기본
객체의 전환(Transition) 과 만료(Expiration) 를 규칙으로 자동 처리
Transition Actions
- 생성 후 60일 → Standard-IA
- 6개월 후 → Glacier
Expiration Actions
- 로그 파일 365일 후 삭제
- Versioning 활성화 시
- 오래된 Noncurrent Version 삭제
- Incomplete Multipart Upload 자동 정리
규칙 적용 범위
- Prefix 기준
s3://mybucket/mp3/*
- Tag 기준
Department=Finance
🧪 Lifecycle Rules – 시나리오 1
프로필 이미지 업로드 후 썸네일 생성
- 요구사항
- 썸네일: 60일 보관, 재생성 가능
- 원본 이미지:
- 60일 즉시 접근
- 이후 최대 6시간 대기 허용
설계
- 원본 이미지
- Standard → 60일 후 Glacier
- 썸네일
- One Zone-IA
- 60일 후 Expire(삭제)
🧪 Lifecycle Rules – 시나리오 2
삭제된 객체 복구 정책
- 요구사항
- 30일 이내 즉시 복구
- 이후 365일까지 48시간 내 복구
설계
- S3 Versioning 활성화
- 삭제 시 실제 삭제 ❌ → Delete Marker
- Noncurrent Versions
- → Standard-IA
- → Glacier Deep Archive
📊 S3 Analytics – Storage Class Analysis
언제 어떤 클래스로 옮길지 판단을 돕는 분석 리포트
- Standard ↔ Standard-IA 추천
- ❌ One Zone-IA / Glacier 미지원
- 일 1회 업데이트
- 최초 데이터 확인까지 24~48시간
- Lifecycle Rules 설계/개선의 출발점
💸 S3 Requester Pays
요청자에게 다운로드/요청 비용을 부과
- 기본: Bucket Owner가 비용 부담
- Requester Pays:
- Requester가 네트워크/요청 비용 부담
- 대용량 데이터셋 외부 공유에 적합
- 익명 접근 불가
- 요청자는 AWS 인증 필요
🔔 S3 Event Notifications
객체 이벤트 발생 시 다른 서비스로 알림/연동
지원 이벤트
ObjectCreatedObjectRemovedObjectRestoreReplication등
대상 서비스
- Lambda
- SQS
- SNS
특징
- 객체명 필터링 가능 (
.jpg) - 알림 지연:
- 보통 수 초
- 경우에 따라 1분 이상
🔐 Event Notifications – IAM 권한
대상 리소스의 Resource Policy 필요
- Lambda → Lambda Resource Policy
- SNS → SNS Access Policy
- SQS → SQS Access Policy
S3 서비스(
s3.amazonaws.com)가대상 리소스를 호출할 수 있도록 명시적 Allow 필요
🧩 EventBridge 연동
S3 이벤트를 Amazon EventBridge로 전달
- 고급 필터링
- 메타데이터, 객체 크기, 이름(JSON Rule)
- 다중 대상
- Step Functions
- Kinesis Streams / Firehose 등
- EventBridge 기능 활용
- Archive
- Replay
- 신뢰성 있는 전달
⚡ S3 성능 – Baseline
S3는 자동 확장, 평균 지연 100~200ms
- Prefix 당 처리량
- PUT/COPY/POST/DELETE: 3,500 req/s
- GET/HEAD: 5,500 req/s
- Prefix 개수 제한 없음
- Prefix 분산 시 선형 확장
- 예: 4개 Prefix → GET/HEAD 22,000 req/s
🚀 성능 최적화 – 업로드/전송
Multipart Upload
- >100MB 권장
- >5GB 필수
- 병렬 업로드로 속도 향상
S3 Transfer Acceleration
- Edge Location으로 먼저 업로드
- 이후 AWS 백본으로 S3 전달
- Multipart Upload와 호환
📥 성능 최적화 – 다운로드
Byte-Range Fetches
- GET 요청을 범위별로 병렬화
- 실패 내구성 ↑
- 일부 데이터만 조회 가능
- 예: 파일 헤더
🧰 S3 Batch Operations
기존 객체에 대한 대량 작업을 단일 Job으로 수행
가능 작업
- 메타데이터/속성 수정
- 버킷 간 복사
- 암호화 적용
- ACL/Tag 수정
- Glacier 복원
- Lambda 호출(커스텀 작업)
특징
- 재시도/진행 추적/완료 알림/리포트 제공
- S3 Inventory + Athena로 대상 목록 생성 가능
🔍 S3 Storage Lens
조직 전체 스토리지 관측·최적화
- 범위
- Organization / Account / Region / Bucket / Prefix
- 목적
- 비용 최적화
- 데이터 보호
- 이상 탐지
- 일별 메트릭을 S3로 내보내기 가능
- CSV / Parquet
📈 Storage Lens – 기본 대시보드
- Multi-Region / Multi-Account 요약
- Amazon S3가 사전 구성
- 삭제 불가, 비활성화 가능
🧮 Storage Lens – 메트릭 카테고리
Summary
- StorageBytes, ObjectCount
- 빠르게 증가/미사용 버킷 탐지
Cost Optimization
- NonCurrentVersionStorageBytes
- IncompleteMultipartUploadStorageBytes
- 저비용 클래스로 전환 후보 식별
Data Protection
- Versioning, MFA Delete, SSE-KMS
- CRR 설정 여부
Access Management
- Object Ownership 설정 현황
Event Metrics
- Event Notification 활성 버킷 식별
Performance
- Transfer Acceleration 사용 현황
Activity
- 요청/전송량 (GET, PUT, BytesDownloaded 등)
Status Code
- 200 / 403 / 404 등 HTTP 코드 분석
💳 Storage Lens – Free vs Paid
Free Metrics
- 모든 계정 자동 제공
- 약 28개 메트릭
- 14일 조회 가능
Advanced Metrics (유료)
- Activity / 고급 비용 최적화 / 고급 보호 / Status Code
- CloudWatch Publishing
- 추가 요금 없이 CloudWatch에서 조회
- Prefix Aggregation
- Prefix 단위 집계
- 15개월 데이터 보관