Amazon S3 핵심 정리

왜 중요한가?
Amazon S3(Simple Storage Service)는 AWS의 핵심 스토리지 서비스로, “사실상 무한대(virtually unlimited)” 확장성을 제공하는 객체 스토리지(Object Storage) 입니다. 대부분의 데이터/AI 워크로드가 S3를 중심으로 연결되며, 다른 AWS 서비스와의 통합성이 매우 뛰어납니다.


1) S3가 쓰이는 곳 (Use Cases)

  • 백업 & 스토리지(Backup & Storage): 장기 보관, 스냅샷 저장.
  • 재해복구(Disaster Recovery, DR): 다른 리전(Region) 으로 복제해 RTO/RPO 개선.
  • 아카이브(Archive): 저비용 보관(S3 Glacier 계열) 후 필요 시 복원.
  • 하이브리드 스토리지(Hybrid Cloud Storage): 온프레미스 + 클라우드 연동.
  • 애플리케이션/미디어 호스팅(App/Media Hosting): 이미지/동영상/정적 파일 제공.
  • 데이터 레이크(Data Lake) & 빅데이터 분석(Big Data Analytics): 원천 데이터 저장 후 Athena/Glue/Lake Formation 등으로 분석.
  • 소프트웨어 배포(Software Delivery): 설치 파일, 모델 아티팩트 배포.
  • 정적 웹사이트(Static Website): 정적 호스팅 + CloudFront(CDN) 로 가속.

MLA-C01 포인트: S3는 SageMaker와 함께 자주 출제됩니다. 학습/추론 데이터 저장, 모델 아티팩트 저장, Athena/Glue와 연계한 피처 추출 파이프라인 등. S3 경로 표기(S3 URI)와 권한 모델을 익히세요.


2) 버킷(Bucket) — 최상위 네임스페이스

  • 정의: 객체(파일)를 담는 컨테이너. UI가 폴더처럼 보여도, 실제로는 버킷/키(key) 기반의 평면 구조.
  • 글로벌 유니크 이름(Global Unique Name): 전 세계 모든 계정/리전에서 유일해야 함.
  • 리전 범위(Region-scoped): 버킷은 특정 리전에 생성됩니다. (S3가 글로벌처럼 보여도 생성 위치는 리전)
  • 네이밍 규칙(Naming Rules) (대표 규칙만 발췌)
    • 영문 소문자/숫자/하이픈만 사용, 대문자/언더스코어 불가
    • 길이 3~63자
    • IP 형태 금지(예: 192.168.0.1)
    • xn-- 로 시작 금지, -s3alias 로 끝 금지
  • 권장 초기 설정
    • ACL 비활성화(ACLs disabled, Bucket owner enforced)
    • 퍼블릭 접근 차단(Block Public Access): 기본 on
    • 서버사이드 암호화(Server-Side Encryption, SSE): 기본 SSE-S3 또는 SSE-KMS

시험 포인트

  • “버킷 이름 글로벌 유일”과 “버킷은 리전에 종속”을 구분하세요.
  • 보안 기본값: Block Public Access = ON, ACL 비권장, SSE 적용.

3) 객체(Object) & 키(Key)

  • 키(Key) = 전체 경로(Full Path)
    • 예: s3://my-bucket/my_folder1/another_folder/my_file.txt
    • Prefix + Object Name 조합 (디렉터리 개념은 UI 편의일 뿐, 실제로는 긴 문자열 경로)
  • 크기 제한(Size Limits)
    • 최대 5TB
    • 5GB 초과 업로드는 반드시 멀티파트 업로드(Multi-part Upload) 사용
  • 메타데이터(Metadata): 시스템/사용자 정의 Key-Value
  • 태그(Tags): 최대 10쌍, 비용/수명주기/보안 정책에 유용
  • 버전 ID(Version ID): 버전 관리(Versioning) 활성화 시 부여

시험 포인트

  • 5GB 초과 → Multi-part Upload 필수
  • Versioning: 삭제/덮어쓰기 보호, MFA Delete 와 함께 보안 강화

4) 접근 방법: 퍼블릭 URL vs 프리사인드 URL

  • Public URL: 객체가 퍼블릭이어야 접근 가능(기본은 차단됨).
  • Pre-signed URL: 임시 권한이 서명된 URL. 비공개 객체도 서명 만료 시간 동안 접근 가능. 안전한 1회성 공유에 적합.

시험 포인트: “객체는 비공개인데 외부와 잠깐 공유하고 싶다” → Pre-signed URL 정답.


5) 필수 보안/운영 기능 (Security & Operations)

  • 암호화(Encryption)
    • SSE-S3(Amazon S3 managed keys) — 가장 간단
    • SSE-KMS(AWS KMS keys) — 키 사용 권한/감사 필요 시
    • CSE(Client-Side Encryption) — 클라이언트에서 암호화 후 업로드
  • 버전 관리(Versioning) + MFA Delete: 실수/랜섬웨어 대응
  • 수명주기(Lifecycle) 정책: Standard → IA → Glacier 티어링, 자동 만료/아카이브
  • 복제(Replication)
    • CRR(Cross-Region Replication): DR/지연단축
    • SRR(Same-Region Replication): 멀티계정/멀티버킷 분리
  • 액세스 제어(Access Control)
    • IAM 정책(IAM Policy), 버킷 정책(Bucket Policy) 중심
    • S3 Access Points/**VPC 엔드포인트(Interface/Gateway)**로 네트워크 격리
  • 감사/로깅(Audit/Logging): CloudTrail, Server Access Logging, S3 Object Ownership

시험 포인트

  • SSE-KMS 선택 시 KMS 키 권한(Encrypt/Decrypt/API호출)이 추가로 필요.
  • CRR버전닝이 양쪽 모두 활성화되어야 작동. 소유권/권한 이슈 자주 출제.

6) 정적 웹사이트 & CDN

  • Static Website Hosting: S3 정적 웹 사이트 엔드포인트 사용(퍼블릭 접근 필요).
  • CloudFront 앞단 배치 권장: OAC(Origin Access Control)로 S3는 비공개, CloudFront만 접근 → 성능/보안 모두 향상.

시험 포인트: “S3를 퍼블릭으로 열지 않고 정적 사이트 제공?” → CloudFront + OAC 패턴.


7) 데이터 레이크 패턴 (for ML/Analytics)

  • 원천 저장: S3에 원본 데이터 적재(스키마 온 리드, Schema-on-Read).
  • 카탈로그: AWS Glue Data Catalog
  • 쿼리/탐색: Amazon Athena(서버리스 SQL), Redshift Spectrum
  • 거버넌스: Lake Formation(권한/데이터 액세스 제어)
  • 형식 최적화: Parquet/ORC컬럼나형(Columnar) 포맷 권장 (스캔/비용 절감)

시험 포인트: “S3 + Athena 비용 최적화?” → Parquet + 파티셔닝(Partitioning) + 프리픽스 설계.


8) 콘솔에서 자주 하는 작업 요약

  1. 버킷 생성(Create Bucket): 리전 선택 → 이름 지정(글로벌 유일) → Block Public Access ON, SSE 설정
  2. 객체 업로드(Upload): 단일/멀티파트 선택(5GB 초과 시 멀티파트)
  3. 폴더처럼 사용하기: 접두사(prefix)로 논리적 구분(실제 디렉터리는 아님)
  4. 프리사인드 URL 생성: 일시적 외부 공유
  5. 버킷 정책/액세스 포인트: 세밀 권한/네트워크 격리 설정

9) 자주 나오는 함정(Exam Gotchas)

  • 디렉터리 개념 없음: 키 문자열에 /를 써서 prefix를 흉내낼 뿐.
  • 5GB 업로드 제한: 초과 시 Multi-part Upload 필수.
  • CRR 조건: 양쪽 버킷 Versioning ON + 권한/소유권 고려.
  • KMS 사용 시 권한 오류: KMS 키 정책/Grant/IAM 권한 누락 체크.
  • 퍼블릭 차단이 기본: 정적 사이트/퍼블릭 파일 배포는 CloudFront 경유가 안전.

10) ML 엔지니어를 위한 S3 빠른 체크리스트

  • 데이터 저장 포맷: CSV → Parquet 변환 고려(성능/비용)
  • 접근 제어: IAM Role 기반 최소 권한(least privilege)
  • 암호화: SSE-KMS 기본, 키 권한 점검(파이프라인/노트북/배치)
  • 수명주기 정책: 학습 로그/중간 산출물 자동 정리
  • 경로 규약: s3://bucket/project/dataset/partition=.../ 일관성
  • 프리사인드 URL: 일시적 데이터 공유/검수 자동화에 활용

핵심 용어 요약 (KR/EN)

  • 버킷 Bucket / 객체 Object / 키 Key / 접두사 Prefix / 버전 관리 Versioning
  • 프리사인드 URL Pre-signed URL / 수명주기 정책 Lifecycle Policy
  • 서버사이드 암호화 Server-Side Encryption (SSE-S3 / SSE-KMS)
  • 교차 리전 복제 Cross-Region Replication (CRR) / 동일 리전 복제 Same-Region Replication (SRR)
  • 데이터 레이크 Data Lake / 스키마 온 리드 Schema-on-Read / 컬럼나 Columnar

추가 참고(심화)

  • S3 Storage Classes: Standard / Standard-IA / One Zone-IA / Intelligent-Tiering / Glacier Instant/Flx/Deep Archive
  • 네트워크 최적화: S3 Transfer Acceleration, 멀티파트 병렬 업로드, VPC 엔드포인트
  • 비용 관리: S3 Storage Lens, Lifecycle/Intelligent-Tiering, 파티셔닝/프리픽스 설계

요약: S3는 ML/분석 워크로드의 “공용 데이터 허브”입니다. 보안 기본값, 멀티파트 업로드, Versioning/CRR, SSE-KMS, Athena+Parquet 같은 패턴을 확실히 익히면 MLA-C01에서 고득점할 수 있습니다.

Amazon S3 암호화 방식 쉽게 설명하기

Amazon S3에서 데이터를 저장할 때 보안을 위해 서버 사이드 암호화(Server-side encryption, SSE) 를 사용할 수 있습니다.
대표적으로 자주 쓰이는 두 가지 방식이 있습니다.


1. SSE-S3 (Server-side encryption with Amazon S3 managed keys)

  • 설명
    S3가 직접 암호화 키를 관리해주는 방식입니다.
    사용자가 따로 키를 만들거나 관리할 필요가 없습니다.
    데이터를 업로드하면 S3가 자동으로 암호화하고, 다운로드하면 자동으로 복호화해 줍니다.

  • 특징

    • 사용하기 가장 쉽습니다 (추가 설정 거의 필요 없음).
    • 암호화 키는 Amazon S3가 전적으로 관리합니다.
    • AES-256 암호화 알고리즘을 사용합니다.
    • 비용은 추가로 발생하지 않습니다.
  • 시험 포인트 (AWS Certified ML Engineer Associate)

    • SSE-S3는 S3가 키를 관리한다라는 점이 핵심.
    • 옵션을 활성화하기만 하면 끝 (운영 편리성 ↑).
    • 보안 규제가 강하지 않거나 단순 저장이 목적일 때 적합.

2. SSE-KMS (Server-side encryption with AWS Key Management Service keys)

  • 설명
    AWS Key Management Service(KMS)를 통해 암호화 키를 관리하는 방식입니다.
    즉, 암호화 키를 직접 생성, 관리, 권한 제어할 수 있습니다.
    더 세밀한 보안 관리가 필요한 경우에 사용됩니다.

  • 특징

    • 고객이 키를 직접 관리 (Customer managed keys) 가능.
    • 키 사용에 대한 CloudTrail 로그로 추적 가능 → 누가, 언제, 어떤 키를 사용했는지 알 수 있음.
    • IAM 정책을 통해 세밀하게 접근 제어 가능 (예: 특정 사용자만 복호화 가능).
    • KMS 호출 비용이 발생합니다.
  • 시험 포인트

    • SSE-KMS는 KMS와 통합되어 있어 세밀한 보안·감사 관리 가능.
    • 규제가 있는 산업(금융, 헬스케어 등)에서는 SSE-KMS가 요구될 수 있음.
    • 비용과 성능(추가 API 호출)도 고려해야 함.

비교 요약

항목 SSE-S3 SSE-KMS
키 관리 Amazon S3 자동 관리 AWS KMS에서 직접 관리 가능
보안 수준 기본적 (단순 암호화) 고급 (세밀한 제어, 로깅)
비용 추가 비용 없음 KMS 사용 비용 발생
주요 특징 가장 간단, 자동 처리 IAM·CloudTrail 통합, 규제 준수에 적합

시험 대비 핵심

  • SSE-S3: S3가 키 관리, 간단, 저비용
  • SSE-KMS: KMS와 통합, 세밀한 제어, 감사 로그, 비용 발생