개인의 기록
  • 소개
  • 프로젝트
  • 글
  • 링크

© 2026 newgirok

← 글 목록

S3 — 객체 스토리지

2026년 3월 2일
AWSS3스토리지

AWS S3(Simple Storage Service)는 인터넷을 통해 어디서든 HTTP API로 접근할 수 있는 객체 스토리지 서비스입니다. 파일 시스템처럼 디렉터리 계층을 갖지 않고, 모든 데이터를 계층 구조 없이 고유 키(Key)로 식별하는 객체(Object) 단위로 저장합니다. 용량 제한이 사실상 없으며, 99.999999999%(11 nine)의 내구성을 보장합니다. 정적 웹 호스팅, 백업, 로그 수집, 데이터 레이크 등 거의 모든 스토리지 요구에 활용됩니다.

Bucket과 Object

S3의 최상위 컨테이너를 Bucket이라고 합니다. Bucket 이름은 AWS 전체에서 전역으로 유일해야 하며, 생성 시 리전을 선택합니다. Bucket 하위에 저장되는 개별 파일이 Object입니다.

Bucket: my-app-assets
  |-- images/logo.png        (Object)
  |-- videos/intro.mp4       (Object)
  |-- docs/manual.pdf        (Object)

Object는 Key(경로 포함 파일명), Value(실제 데이터), Metadata(Content-Type 등 부가 정보)로 구성됩니다. 단일 Object의 최대 크기는 5TB이며, 5GB 초과 업로드는 Multipart Upload를 사용해야 합니다.

Versioning

Bucket에 Versioning을 활성화하면 동일 Key로 업로드할 때마다 이전 버전을 보존합니다. 실수로 덮어쓰거나 삭제한 경우에도 이전 버전으로 복원할 수 있습니다.

Key: images/logo.png
  Version ID: v3 (latest)
  Version ID: v2
  Version ID: v1

삭제 요청 시 실제 데이터를 지우지 않고 Delete Marker를 추가합니다. Delete Marker를 제거하면 이전 버전이 복원됩니다. 단, Versioning을 사용하면 저장 비용이 버전 수에 비례해 증가하므로 Lifecycle 정책과 함께 관리하는 것이 일반적입니다.

Lifecycle

Lifecycle 규칙은 Object의 보관 기간과 스토리지 클래스 전환을 자동화합니다. 예를 들어 업로드 후 30일이 지나면 저렴한 S3 Glacier로 이동하고, 365일 후에는 자동 삭제하도록 설정할 수 있습니다.

[Standard] --30일--> [Glacier Instant] --365일--> [삭제]

주요 스토리지 클래스는 다음과 같습니다.

클래스특징
S3 Standard자주 접근하는 데이터, 높은 내구성·가용성
S3 Standard-IA접근 빈도 낮음, 검색 비용 발생
S3 Glacier Instant분 단위 검색, 장기 보관
S3 Glacier Deep Archive시간 단위 검색, 가장 저렴

Presigned URL

S3 Bucket을 비공개(Private)로 유지하면서 특정 Object를 외부에 임시로 공유할 때 Presigned URL을 사용합니다. 서버가 AWS 자격 증명으로 서명한 URL을 생성해 클라이언트에게 전달하면, 클라이언트는 그 URL로 일정 시간 동안 직접 S3에 접근할 수 있습니다.

클라이언트 --요청--> 서버 --서명 생성--> Presigned URL 반환
클라이언트 --Presigned URL로 직접 업로드/다운로드--> S3

만료 시간(최대 7일)이 지나면 URL은 무효화됩니다. 대용량 파일 업로드를 서버를 거치지 않고 S3에 직접 올릴 때 특히 유용합니다.

접근 제어

S3는 여러 계층의 접근 제어를 제공합니다. Bucket Policy는 JSON 형식으로 Bucket 전체에 적용되는 리소스 기반 정책입니다. IAM Policy는 특정 사용자나 역할에게 S3 작업 권한을 부여합니다. 또한 Block Public Access 설정을 통해 실수로 Bucket을 공개하는 것을 계정 또는 Bucket 수준에서 차단할 수 있습니다.

정적 웹 호스팅, CloudFront 오리진, Lambda의 이벤트 소스 등 다양한 AWS 서비스와 긴밀하게 연동되어 S3는 AWS 인프라의 핵심 스토리지 레이어로 동작합니다.

← 이전 글Security Group & NACL — AWS 네트워크 방화벽
다음 글 →RDS — 관리형 관계형 데이터베이스