S3 (Simple Storage Service)
확장 가능한 객체 스토리지 서비스
S3 가이드
S3란?
Amazon S3는 인터넷 스토리지 서비스로, 웹 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있습니다. 높은 내구성, 가용성, 확장성을 제공하며 비용 효율적인 객체 스토리지 솔루션입니다.
주요 개념
- 버킷(Bucket): S3에서 객체를 저장하는 컨테이너입니다. 모든 객체는 버킷에 포함됩니다. 버킷 이름은 전역적으로 고유해야 합니다.
- 객체(Object): S3에 저장되는 기본 엔티티입니다. 파일과 해당 파일을 설명하는 메타데이터로 구성됩니다.
- 키(Key): 버킷 내 객체의 고유 식별자입니다. 버킷, 키, 버전 ID의 조합으로 각 객체를 고유하게 식별합니다.
- 리전(Region): 버킷이 저장되는 지리적 AWS 리전입니다. 지연 시간 최소화, 비용 절감, 규제 요구 사항 충족을 위해 선택합니다.
스토리지 클래스
S3는 다양한 사용 사례에 맞는 여러 스토리지 클래스를 제공합니다:
- S3 Standard: 자주 액세스하는 데이터를 위한 기본 스토리지 클래스
- S3 Intelligent-Tiering: 액세스 패턴이 변경되는 데이터를 자동으로 최적화
- S3 Standard-IA: 자주 액세스하지 않지만 빠른 액세스가 필요한 데이터
- S3 One Zone-IA: 단일 가용 영역에 저장되는 저빈도 액세스 데이터
- S3 Glacier Instant Retrieval: 분기에 한 번 액세스하는 아카이브 데이터
- S3 Glacier Flexible Retrieval: 1년에 1-2회 액세스하는 아카이브
- S3 Glacier Deep Archive: 장기 보관을 위한 최저비용 스토리지
버킷 정책 및 액세스 제어
S3는 여러 수준에서 액세스 제어를 제공합니다:
- IAM 정책: 사용자 및 역할에 대한 권한 관리
- 버킷 정책: 버킷 수준에서 액세스 권한 정의
- ACL(Access Control Lists): 개별 객체에 대한 액세스 제어
- 퍼블릭 액세스 차단: 의도하지 않은 퍼블릭 액세스 방지
주요 기능
- 버전 관리: 객체의 여러 버전 유지
- 수명 주기 정책: 객체를 자동으로 다른 스토리지 클래스로 전환 또는 삭제
- 복제: 다른 리전이나 계정으로 객체 자동 복제
- 이벤트 알림: 객체 생성, 삭제 등의 이벤트에 대한 알림
- 정적 웹사이트 호스팅: S3를 웹 서버로 사용
- 서버 측 암호화: 저장 데이터 자동 암호화
사용 사례
- 정적 웹사이트 호스팅
- 백업 및 복원
- 데이터 아카이빙
- 빅데이터 분석
- 미디어 파일 저장 및 배포
- 애플리케이션 데이터 저장
- 재해 복구
내구성 및 가용성
S3는 99.999999999%(11 9's)의 내구성과 99.99%의 가용성을 제공합니다. 데이터는 여러 디바이스와 여러 시설에 자동으로 복제되어 저장됩니다.