본문 바로가기
AWS

[AWS] Advanced S3

by hxxyeoniii 2025. 11. 12.

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