AWS S3 정리 (Simple Storage Service)

이 글은 AI가 작성했습니다.

개요

AWS S3(Simple Storage Service)는 대표적인 오브젝트 스토리지(Object Storage) 서비스입니다. 파일을 디스크처럼 마운트해서 사용하는 모델이 아니라, 버킷(Bucket)에 오브젝트(Object)를 저장하고 HTTP 기반 API로 접근하는 방식입니다.


S3 한눈에 보기

  • 정의: 버킷에 오브젝트를 저장하는 오브젝트 스토리지입니다.
  • 용도: 백업 및 아카이브, 정적 자산(이미지/동영상), 로그 및 데이터 레이크, 배포 아티팩트입니다.
  • 접근 방식: HTTP API 또는 SDK/CLI 기반입니다.
  • 핵심 특징: 내구성, 확장성, 비용 최적화입니다. (스토리지 클래스 및 라이프사이클 활용)

스토리지 종류 비교

구분S3EBSEFS
스토리지 모델ObjectBlockFile(NFS)
대표 사용처백업, 정적 자산, 데이터 레이크EC2 디스크, 데이터베이스다중 인스턴스 공유 파일
접근 방식HTTP APIEC2 AttachNFS Mount
강점높은 내구성, 확장성, 클래스 기반 비용 최적화낮은 지연 시간, 디스크와 유사한 사용성공유 파일 시스템
주의 사항파일 시스템처럼 직접 사용하기 어렵습니다.AZ에 종속됩니다.워크로드에 따라 비용이 증가합니다.

S3 핵심 개념

1. Bucket 및 Object

  • Bucket은 오브젝트를 담는 컨테이너입니다. 전역적으로 유니크한 이름을 가집니다.
  • Object는 실제 데이터(바이너리), 메타데이터, 키(Key)로 구성됩니다.
  • Key는 오브젝트의 식별자입니다. 경로처럼 보이지만 문자열 기반 네임스페이스입니다.

2. 스토리지 클래스

S3는 저장 위치보다 접근 빈도가 비용에 더 큰 영향을 미칩니다.

대표적인 분류 기준은 다음과 같습니다.

  • 자주 접근하는 데이터: Standard 계열입니다.
  • 드물게 접근하는 데이터: Infrequent Access(IA) 계열입니다.
  • 장기 보관 데이터: Glacier 계열입니다. (복원 시간과 비용의 트레이드오프가 존재합니다.)

스토리지 클래스는 일반적으로 Lifecycle Rule을 통해 자동 전환합니다.


3. Lifecycle Rule

  • 일정 기간이 지나면 다른 스토리지 클래스로 자동 이동합니다.
  • 만료 정책을 통해 삭제 시점을 정의할 수 있습니다.

운영 패턴 예시는 다음과 같습니다.

  • 0~30일: Standard입니다.
  • 31~90일: Infrequent Access입니다.
  • 90일 이후: Glacier입니다.
  • 365일 이후: Expire입니다.

4. Versioning

  • 동일한 Key에 대해 여러 버전을 유지합니다.
  • 실수로 인한 덮어쓰기나 삭제 시 복구가 가능합니다.

운영 환경에서는 버저닝과 라이프사이클 정책을 함께 구성하는 경우가 많습니다.


5. 암호화

S3는 저장 데이터 암호화를 기본 옵션으로 사용하는 것이 일반적입니다.

  • SSE-S3 및 SSE-KMS와 같은 서버 사이드 암호화를 지원합니다.
  • 키 관리가 필요한 경우 KMS 기반 암호화를 사용합니다.

접근 제어 설계 포인트

S3는 데이터 자체가 자산이므로 접근 제어가 설계의 핵심입니다.

  • IAM Policy를 통해 사용자 및 역할 단위 권한을 제어합니다.
  • Bucket Policy를 통해 버킷 단위 접근 정책을 정의합니다.
  • Public Access Block을 사용하여 퍼블릭 공개 사고를 방지합니다.

권한 설계 시에는 누가, 어떤 경로(prefix)에, 어떤 액션(Get, Put, List)을 수행할 수 있는지를 최소 권한 원칙에 따라 정의합니다.


대표 사용 시나리오

1. 정적 자산 호스팅

  • 웹 이미지, JavaScript, CSS, 다운로드 파일을 저장합니다.
  • CloudFront와 같은 CDN과 함께 사용하는 경우가 일반적입니다.

2. 백업 및 아카이브

  • 데이터베이스 백업 덤프를 저장합니다.
  • EBS Snapshot과 함께 운영합니다.
  • 보존 정책은 Lifecycle Rule과 Object Lock으로 구성할 수 있습니다.

3. 로그 수집 및 데이터 레이크

  • 애플리케이션 및 접근 로그를 S3에 적재합니다.
  • Athena, EMR, Glue 등 분석 서비스와 연동합니다.

4. 배포 아티팩트 저장

  • 빌드 산출물(artifact)을 저장합니다.
  • 배포 파이프라인에서 참조합니다.

운영 체크포인트

1. 비용 관리

S3 비용은 저장 용량뿐 아니라 다음 항목이 함께 합산됩니다.

  • 저장 용량입니다. (스토리지 클래스별 단가)
  • 요청 수입니다. (PUT, GET, LIST)
  • 데이터 전송량입니다. (인터넷 및 리전 간 전송)

운영 환경에서는 접근 패턴과 요청 폭증이 비용에 큰 영향을 미칩니다. CloudWatch 및 Billing 알람을 함께 설정하는 것이 권장됩니다.


2. 성능 고려 사항

  • S3는 수평 확장형 구조이지만, 요청 패턴과 병렬성이 성능에 영향을 미칩니다.
  • 대용량 업로드 시에는 멀티파트 업로드를 사용하는 것이 표준입니다.

3. 데이터 보호

  • Versioning을 통해 삭제 및 덮어쓰기 사고를 방지합니다.
  • 상황에 따라 MFA Delete를 적용할 수 있습니다.
  • 규정 준수 또는 불변성이 필요한 경우 Object Lock을 사용합니다.

요약

S3는 오브젝트 스토리지 서비스입니다.

  • 디스크나 파일 시스템이 아니라 버킷, 오브젝트, HTTP API 기반 모델입니다.
  • 스토리지 클래스와 라이프사이클 정책을 통한 비용 최적화가 핵심입니다.
  • 접근 제어는 IAM Policy, Bucket Policy, Public Access Block을 중심으로 설계합니다.
  • 운영 시에는 비용 관리와 데이터 보호가 중요 포인트입니다.