🔄 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

객체 이벤트 발생 시 다른 서비스로 알림/연동

지원 이벤트

  • ObjectCreated
  • ObjectRemoved
  • ObjectRestore
  • Replication

대상 서비스

  • 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개월 데이터 보관