클라우드(Cloud)/AWS(Amazon Web Services)

S3(Simple Storage Service) 란?

Attacker 2021. 8. 13. 14:14

S3(Simple Storage Service) 란?

 

1. S3 정의

- S3는 객체 스토리지 서비스로 즉, 파일을 다루는 서비스 <-> 블록 스토리지 서비스로 EBS, EFS 등이 존재함

- 파일 설치 불가하며 이미지 파일, 동영상 파일 등의 업로드가 가능함

- S3는 무제한 용량이며, 업로드 되는 하나의 객체의 크기는 0byte ~ 5TB임

- S3는 버킷(Bucket)이라는 단위로 구분되며, 버킷은 디렉터리의 개념과 비슷함

- 버킷명은 전 세계적으로 하나만 존재함

- 웹 호스팅 시, 도메인과 버킷명이 동일해야 함

- 99.999999999% 내구성을 가짐

- 99.9% SLA 가용성을 가짐

 

2. S3에서 제공하는 API

1) 파일 관련 API(업로드, 업데이트, 삭제 등)

 - 업로드 성공 시 HTTP 200코드 반환

 - 큰 용량의 파일의 경우 멀티파트 업로드 가능(개당 5gb)

 - 다운로드는 토렌트 파일 지원

2) 버킷 관련 API(조회, 생성, 삭제 등)

3) 기타 기능(Lifecycle, Replication 등)

 

3. S3 객체의 구성

1) Key : 파일의 이름(경로와 동일한 개념)

2) Value : 파일의 데이터

3) Version Id : 파일의 버전 아이디

4) Metadata : 파일의 정보를 담은 데이터

5) ACL : 파일의 권한을 담은 데이터

6) Tottents : 토렌트 공유를 위한 데이터

 

4. S3 버저닝이란?

- 모든 버전을 관리(생성, 삭제, 업데이트 등 포함)

- 버킷 생성 시 기본적으로 비활성화되어 있음

 : 한번 활성화 시 비활성화 불가능

- 수명 주기 관리와 연동 가능

 

5. S3 Static Hosting 이란?

1) 기본적으로 파일은 두가지 웹 URL을 가지고 있음

 - https://bucket-name.s3.Region.amazonaws.com/keyname

 - https://s3.Region.amazonaws.com/bucket-name/keyname

2) Static Web 호스팅 가능 -> 정적 데이터를 웹 서버처럼 구동시킬 수 있음 

 - Html/Javascript 등으로 구성된 Static(데이터가 변하지 않는) 사이트만 가능 -> React 등

- 호스팅 비용이 비교적 저렴함

- Serverless 구성의 기초

- 동적인 데이터는 AJAX 등으로 해결 가능 

- 많은 사람들이 접속해야하는 페이지(사전 등록 페이지, 이벤트 페이지 등)에 사용하면 좋음

 

6. S3 일관성 모델

1) Put(새로 생성) : 읽기 후 쓰기(Read After Write)

 - 파일을 올리고 성공한 즉시 읽기 가능

 - 먼저 Put한 요청이 우선권

2) Update / Delete : 최종 일관성(Eventual Consistency)

 - 파일을 삭제하거나 업데이트 후 일정 시간(1초 미만) 후에 결과가 반영됨

 - 원자성 확보 불가능

 

7. S3 티어

1) S3 Standard

 - 가장 기초적인 S3 버킷

 - 99.99% 가용성

 - 99.999999999% 내구성

 - 여러 장소에 분산 보관

2) S3 - IA (Infrequently Accessed)

 - 자주 사용되지 않는 데이터를 저렴한 가격에 보관

   ex) 로그 등

 - 데이터를 불러올 때마다 비용 지불

3) S3 - One Zone IA

 - IA와 동일하나 하나의 AZ에만 저장됨

 - 덜 중요하고 자주 사용되지 않는 데이터에 적합

    ex) 썸네일 이미지 등

4) S3 Intelligent Tiering

 - 머신 러닝을 사용해 자동으로 티어 변경

 - 퍼포먼스 손해/오버헤드 없음

5) S3 - Glacier

 - 아카이브용 저장소

   ex) 3~5년 전 이상 로그 등

 - 저렴한 가격

 - 데이터를 가져오는데 분~시간 단위의 시간이 소요

6) S3 - Glacier Deep Archive

 - 매우 쌈

 - 데이터를 가져오는데 12시간 정도 필요함