S3 (Simple Stroage Service)
- 안전하고 가변적인 Object 저장공간을 제공(ex:Google Cloud)
- 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있음
- 파일 크기는 0KB부터 5TB까지 지원
- 저장공간 무제한
- Bucket이라는 이름을 사용함(디렉토리와 유사함)
- Bucket은 보편적인 nameSpace를 사용함
S3 Object 구성요소
- Key , Value
- Version Id
- Metadata
- CORS(Cross Origin Resource Sharing)
S3 Data Consistency Model
- Read after Write Consistency(PUT)
- Eventual Consistency(UPDATE,DELETE)
S3 Storage
일반 S3
- 가장 보편적으로 사용되는 스토리지 타입
- 높은 내구성 가용성(Durability,Availability)
IA(Infrequent Access)
- 자주 접근되지는 않으나 접근시 빠른 접근이 요구되는 파일이 많을시 유용
- 일반 S3에 비해 비용은 저렴하나 접근시 추가 비용발생
- 멀티 AZ를 통한 데이터 저장
One Zone IA
- 단일 AZ를 통한 데이터 저장
- 단일 AZ에 의한 데이터 접근제한 (조금 낮은 가용성)
- 데이터 접근시 S3 - IA보다 20% 비용 저렴
Glacier
- 거의 접근하지 않을 데이터 저장 시 유용
- 매우 저렴한 비용
- 데이터 접근시 대략 4-5시간 소요
Intelligent Tiering
-
데이터 접근시 주기가 불규칙할때 매우 유용
-
2가지 티어 존재
1. Frequent Tier
2. Infrequent Tier
-
데이터 접근 주기에 따라 두가지 티어중 하나로 선택됨
-
Frequent Tier가 비용이 약간 더 비쌈
-
최고의 비용 절감 효율을 누릴 수 있음
S3 요금
- GB 당
- PUT,GET,COPY 요청 횟수당
- 데이터 다운로드시 / 다른 리소스로 전송시
- Metadata (object tag)
S3 사용 용례
- 파일 저장소 (로그,다양한 파일들(이미지,비디오,압축파일등)
- 웹사이트 호스팅
- CORS
최초 S3 버켓 생성시 -> 비공개(PRIVATE)
- 버켓 정책 변경 (Bucket Policy)
- 접근 제어 리스트 변경 (Access Control List)
S3 암호화
- 파일 업로드 / 다운로드시
- 가만히 있을시
- SSE - KMS
- SEE - S3
- SSE - C
S3 암호화 과정
- PUT 요청이 생성됨
S3 업로드시 PUT 요청 헤더에 x-amz -server-side-encryption-parameter 있다면 S3는 암호와 요청을 구하는줄 알고 암호화를 AES-256으로 걸어준다.