AWS DVA 스토리지 — S3·EBS·EFS

2026-05-03확률과 통계 마스터 노트

AWS DVA-C02 마스터 노트 시리즈 3편. S3 스토리지 클래스 7종·버전 관리·라이프사이클·CRR vs SRR·이벤트 알림, S3 보안 4가지(SSE-S3·SSE-KMS·SSE-C·DSSE-KMS), Pre-signed URL과 Multipart Upload, EBS 볼륨 타입·스냅샷, EFS 공유 파일 시스템까지 자격증 시험 단골을 한 흐름으로.

이 글은 AWS DVA-C02 마스터 노트 시리즈의 세 번째 편입니다. 2편(컴퓨팅)에서 EC2·Lambda를 잡았다면, 이번엔 그 컴퓨팅이 데이터를 저장하는 자리 — S3·EBS·EFS 3가지 스토리지.

S3는 거의 모든 시나리오에 등장하는 핵심 서비스라 시험 비중이 매우 큽니다. 이번 편의 핵심 — S3 스토리지 클래스·암호화·Pre-signed URL 세 토픽.

S3 — 객체 스토리지

회사 비유 — 거대한 사물함. 무한 확장, 99.999999999%(11 9's) 내구성. 한 객체 최대 5TB.

핵심 용어

Bucket (버킷, 글로벌 이름) → Object (객체, key/value)
                          → Key는 파일 경로 같은 문자열

여기서 시험 함정이 하나 있어요. 버킷 이름은 글로벌 유니크입니다. 다른 AWS 사용자가 쓰는 이름은 못 써요. 소문자·숫자·하이픈만, 3~63자.

S3 스토리지 클래스 7종

클래스 가용성 비용 적합
Standard 99.99% 표준 자주 액세스
Intelligent-Tiering 99.9% 자동 최적 패턴 모를 때
Standard-IA 99.9% 저장 ↓ / 검색 ↑ 월 1회 미만
One Zone-IA 99.5% IA 20% 더 저렴 재생성 가능 데이터
Glacier Instant Retrieval 99.9% 매우 저렴 분기별 1회
Glacier Flexible Retrieval 99.99% 매우 저렴 분~시간 검색
Glacier Deep Archive 99.99% 가장 저렴 12시간 검색, 7년+

여기서 정말 중요한 시험 함정 — Glacier Instant Retrieval은 즉시 검색, Flexible은 분~시간, Deep Archive는 12시간. 검색 시간 시험 단골.

라이프사이클 정책

자동 클래스 전환·삭제.

사용자가 객체 업로드 (Standard)
  ↓ 30일 후 (Transition)
Standard-IA
  ↓ 90일 후
Glacier Flexible
  ↓ 365일 후 (Expiration)
삭제

여기서 시험 함정이 하나 있어요. Standard → Standard-IA 최소 30일 후 가능. 더 빨리 옮기면 오류. 30일 미만은 자체 클래스 유지.

버전 관리 (Versioning)

같은 키로 새 객체 업로드 시 버전 ID로 덮어쓰지 않고 보관.

my-bucket/photo.jpg → 버전 1 (2024-01-01)
                    → 버전 2 (2024-02-01)  ← 현재
                    → 버전 3 (2024-03-01)  ← 최신

장점 — 실수 삭제 복구. 단점 — 저장 비용 증가.

여기서 시험 함정이 하나 있어요. 버전 관리 활성 후 비활성화 시 기존 버전은 그대로. 완전 끄려면 모든 버전 삭제.

MFA Delete

객체 삭제 시 MFA 요구. 루트 계정만 활성화 가능.

S3 암호화 4종

방식 키 관리 헤더
SSE-S3 AWS 관리 (자동, AES-256) x-amz-server-side-encryption: AES256
SSE-KMS KMS 키 (감사 추적) ... aws:kms
SSE-C 사용자 키 (S3 저장 X) 요청마다 키 전송
DSSE-KMS KMS 이중 암호화 매우 민감 데이터

클라이언트 측 암호화

업로드 전에 클라이언트가 암호화. AWS는 암호화된 데이터만 받음.

여기서 정말 중요한 시험 함정 — 2023년 1월부터 모든 새 S3 객체 기본 SSE-S3 암호화. 이전 답안과 미묘하게 다를 수 있음.

강제 암호화

{
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::my-bucket/*",
  "Condition": {
    "Null": { "s3:x-amz-server-side-encryption": "true" }
  }
}

암호화 헤더 없는 PUT 거부.

보안

버킷 정책 vs IAM 정책

1편에서 본 평가 룰 그대로. 명시적 Deny 우선.

Block Public Access

기본 4가지 차단 설정. 실수로 퍼블릭 노출 방지.

CORS (Cross-Origin Resource Sharing)

다른 도메인 웹페이지에서 S3 직접 호출 시.

[
  {
    "AllowedOrigins": ["https://my-website.com"],
    "AllowedMethods": ["GET", "HEAD"],
    "AllowedHeaders": ["*"]
  }
]

Pre-signed URL — 임시 액세스 URL

비공개 객체에 임시 액세스 URL 발급. 기본 1시간, 최대 7일.

aws s3 presign s3://my-bucket/private.pdf --expires-in 3600
# → https://...?X-Amz-Signature=...

용도:

  • 사용자가 일시적으로 비공개 파일 다운로드
  • 파일 업로드용 URL 발급 (PUT)

여기서 시험 함정이 하나 있어요. Pre-signed URL은 발급자의 권한으로 동작합니다. 발급한 IAM 사용자가 권한 있으면 URL 받은 사람도 동일 작업 가능.

Multipart Upload

100MB 이상 파일은 권장, 5GB 이상은 필수.

파일을 여러 파트로 분할 → 병렬 업로드 → 완료 시 결합

장점:

  • 병렬 처리 → 빠른 업로드
  • 실패 시 해당 파트만 재업로드
  • 일시 중지·재개 가능

Transfer Acceleration

CloudFront 엣지 로케이션 활용한 빠른 업로드. 글로벌 사용자가 멀리 있는 버킷에 업로드 시.

S3 Object Lock

WORM(Write Once Read Many) — 한 번 쓰면 수정·삭제 불가.

모드 설명
Governance Mode 권한 가진 사용자만 우회 가능
Compliance Mode 누구도 수정·삭제 불가 (루트 계정도)

규정 준수(금융·의료 7년 보관)에 사용.

Glacier Vault Lock

Vault 단위 정책 잠금. 한 번 잠그면 변경 불가. 데이터 보존 정책 강제.

Replication — CRR vs SRR

종류 약자 자리
Cross-Region Replication CRR 다른 리전에 복제 (재해 복구)
Same-Region Replication SRR 같은 리전 다른 버킷 (로그 집계·계정 분리)

조건:

  • 양쪽 버전 관리 활성
  • IAM 역할 필요
  • 비동기 (지연 가능)

여기서 시험 함정이 하나 있어요. 활성화 후 새 객체부터 복제 — 기존 객체는 X. 기존 객체도 복제하려면 S3 Batch Operations.

이벤트 알림

S3 객체 변경 → SNS·SQS·Lambda·EventBridge 트리거.

S3 PUT → SNS → 이메일 알림 + Lambda 트리거 (썸네일 생성)

용도 — 이미지 업로드 시 자동 썸네일, 데이터 도착 시 ETL 시작.

EBS — Elastic Block Store

EC2의 디스크. AZ 종속 — 같은 AZ EC2에만 attach.

볼륨 타입

타입 용도 특징
gp3 (SSD 범용) 기본·블록 IOPS·처리량 독립 설정
gp2 (SSD 범용) 구버전 gp3 대비 비추천
io1·io2 (SSD Provisioned IOPS) DB·고성능 최대 64,000 IOPS
st1 (HDD 처리량) 빅데이터·로그 시퀀스 워크로드
sc1 (HDD Cold) 거의 안 봄 가장 저렴

스냅샷

볼륨의 시점 백업. S3에 저장(사용자에게는 안 보임).

EBS 볼륨 → 스냅샷 (S3 저장) → 다른 AZ·리전에 복원

여기서 시험 함정이 하나 있어요. EBS는 AZ 종속이라 다른 AZ에서 못 씀. 다른 AZ·리전으로 옮기려면 스냅샷 → 새 볼륨 경유.

다중 attach (io1·io2)

같은 EBS를 여러 EC2에 동시 attach. 클러스터형 워크로드.

EFS — 공유 파일 시스템

NFS 기반 공유 파일 시스템. 여러 AZ EC2가 동시 마운트 가능.

성능 모드

모드 용도
General Purpose 일반 (지연 우선)
Max I/O 분석·고병렬 (처리량 우선)

처리량 모드

모드 설명
Bursting 크기에 비례한 IO
Provisioned IO를 미리 예약

스토리지 클래스

클래스 비용
Standard 기본
Infrequent Access (IA) 자주 안 쓰는 파일 (40-90% 저렴)

라이프사이클로 자동 IA 전환.

EBS vs EFS vs S3 비교

구분 EBS EFS S3
타입 블록 파일 (NFS) 객체
AZ 종속 멀티 AZ 리전 (멀티 AZ 자동)
동시 사용 1대 (또는 io1/io2 다중 attach) 다수 다수
적합 EC2 디스크·DB 공유 파일 시스템 무제한 객체 저장

시험 직전 한 번 더 — 자주 헷갈리는 함정 모음

여기까지가 3편의 핵심입니다. 시험 직전 또는 실무에서 헷갈릴 때 다시 펼쳐 볼 수 있게 압축 노트로 마무리할게요.

  • S3 = 객체 스토리지, 11 9's 내구성, 객체 최대 5TB
  • 버킷 이름 글로벌 유니크 — 소문자·숫자·하이픈
  • 스토리지 클래스 7종 — Standard / Intelligent / Standard-IA / One Zone / Glacier Instant·Flexible·Deep
  • Glacier 검색 시간 — Instant 즉시 / Flexible 분~시간 / Deep 12시간
  • 라이프사이클 — Standard → Standard-IA 최소 30일 후
  • 버전 관리 — 실수 삭제 복구
  • MFA Delete — 루트 계정만 활성
  • 암호화 4종 — SSE-S3 / SSE-KMS / SSE-C / DSSE-KMS
  • 2023년 1월부터 기본 SSE-S3 암호화
  • 강제 암호화 = 버킷 정책 + Condition Null 헤더
  • Block Public Access = 기본 4가지 차단
  • Pre-signed URL = 임시 액세스, 기본 1시간 / 최대 7일
  • 발급자 권한으로 동작
  • Multipart Upload = 100MB+ 권장, 5GB+ 필수
  • 병렬·재시도·일시 중지
  • Transfer Acceleration = CloudFront 엣지 활용
  • S3 Object Lock = WORM, Governance / Compliance
  • CRR = Cross-Region (재해 복구) / SRR = Same-Region (로그)
  • 활성 후 새 객체만 복제 — 기존은 Batch Ops
  • 이벤트 알림 → SNS·SQS·Lambda·EventBridge
  • EBS — AZ 종속, 1 EC2 (또는 io1/io2 다중)
  • EBS 타입 — gp3 (기본) / io1·io2 (DB) / st1·sc1 (HDD)
  • EBS 스냅샷 = S3 저장, 다른 AZ·리전 이동 경유
  • EFS = NFS 공유, 멀티 AZ 동시 마운트
  • 성능 — General / Max I/O / 처리량 — Bursting / Provisioned
  • IA 라이프사이클 — 40-90% 저렴
  • EBS(블록) vs EFS(파일) vs S3(객체) 구분

시리즈 다른 편

같은 시리즈의 다른 글들도 같은 톤으로 묶어 정리되어 있어요. 3편 스토리지가 잡히면 4편 데이터베이스에서 관계형 vs NoSQL 구분이 자연스럽게 따라옵니다.

공식 문서: AWS S3 Reference에서 더 깊이 갈 수 있어요.

다음 글(4편)에서는 데이터베이스 — RDS 6엔진·Aurora 5리전 글로벌 DB·Read Replica vs Multi-AZ, ElastiCache Redis vs Memcached, DynamoDB 파티션 키 설계까지 풀어 갑니다.

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

error: Content is protected !!