AWS S3 정리 (Simple Storage Service)
이 글은 AI가 작성했습니다.
개요
AWS S3(Simple Storage Service)는 대표적인 오브젝트 스토리지(Object Storage) 서비스입니다. 파일을 디스크처럼 마운트해서 사용하는 모델이 아니라, 버킷(Bucket)에 오브젝트(Object)를 저장하고 HTTP 기반 API로 접근하는 방식입니다.
S3 한눈에 보기
- 정의: 버킷에 오브젝트를 저장하는 오브젝트 스토리지입니다.
- 용도: 백업 및 아카이브, 정적 자산(이미지/동영상), 로그 및 데이터 레이크, 배포 아티팩트입니다.
- 접근 방식: HTTP API 또는 SDK/CLI 기반입니다.
- 핵심 특징: 내구성, 확장성, 비용 최적화입니다. (스토리지 클래스 및 라이프사이클 활용)
스토리지 종류 비교
| 구분 | S3 | EBS | EFS |
|---|---|---|---|
| 스토리지 모델 | Object | Block | File(NFS) |
| 대표 사용처 | 백업, 정적 자산, 데이터 레이크 | EC2 디스크, 데이터베이스 | 다중 인스턴스 공유 파일 |
| 접근 방식 | HTTP API | EC2 Attach | NFS 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을 중심으로 설계합니다.
- 운영 시에는 비용 관리와 데이터 보호가 중요 포인트입니다.