1. Amazon S3

확장가능하고, 내구성이 뛰어나 기용성이 좋고, 공개적으로 액세스가능한 데이터스토리지

▶데이터를 평평한 환경(계층구조x)에 객체로서 저장. 스토리지의 각 Object(file)에는 0B ~ 5TB사이의 연관된 바이트시퀀스가 있는 헤더가 있음.

▶S3의 객체는 고유 식별자(key)와 연결됨으로 어디서나 웹을 통해 액세스 가능.

▶정적인 웹사이트 콘텐츠 호스팅도 허용.(S3 버킷이나 CDN AWS Cloud Front를 통해 액세스 가능)

▶유명한 "11 nines" 데이터 내구성(99.9999..%)을 갖춘 확장성이 뛰어난 스토리지 서비스.

 

2. Amazon EBS (Elastic Block Storage)

가상 머신을 위한 드라이브

▶데이터를 동일한 크기의 블록으로 저장하고 기존 파일 시스템과 유사한 계층을 통해 데이터를 구성.

▶독립형 스토리지가 아님! EC2와 함께 사용해야함.

▶물리적 머신의 로컬 디스크 드라이브와 유사하게 EC2 인스턴스에 연결된, 프로비저닝 된 크기의 볼륨에 데이터를 저장하도록 설계 됨.

▶볼륨을 구성한 후에는 쉽게 확장할 수 없음. 더 많은 저장공간이 필요한 경우 더 큰 크기의 볼륨을 구입하고 구성해야 함.

 

EBS에는 세가지 유형의 볼륨이 있다. 차이점을 알기위해서는 IOPS(Input/Output Operations Per Second)를 알아야 함다.

* IOPS = 초당 입/출력 작업을 나타내거나 초당 수행가능한 최대 읽기/쓰기 작업 수

범용 볼륨(SSD) 프로비저닝 된 IOPS 볼륨(SSD) Magnetic Volums(자기 볼륨)

광범위한 작업을 위해 설게된 범용 볼륨.

3 IOPS/GB의 기본 성능과 최대 10,000 IOPS의 버스트 가능.

많음 읽기/쓰기 작업이 필요한 AWS 데이터베이스에 적합.

대역폭 병목현상을 확장하여 볼륨 용량에 관계없이 필요에 따라 읽기/쓰기 작ㅇ업을 구매 가능.

동일한 SSD로 백업 되지만, 30 IOPS/GB에서 최대 20,000 IOPS까지의 높은 워크로드를 위해 설계 됨.

여러 프로비저닝 된 IOPS 볼륨을 스트라이핑하여 최대 48,000 IOPS 또는 800MBps의 처리량을 보장할 수 있음.

EC2 테스트 및 개발 환경에서 사용할 수 있는 저렴한 볼륨.

많은 읽기/쓰기 작업이 필요없는 응용프로그램과 함께 사용가능.

SSD 대신 자기 HDD를 기반으로 함. (100~수백IOPS)


3. Amazon EFS (Elastic File System)

가상머신을 위한 확장 가능한 스토리지

EBS가 갓상머신용 드라이브를 설정하는데 좋으며, S3가 스토리지에 적합하다고 하였는데, 확장 가능한 스토리지와 비교적 빠른 출력이 필요한 높은 워크로드로 Application을 실행하려면 EFS를 추천.

 

▶자동으로 확장 가능한 스토리지

▶다양한 AWS 서비스에 EFS를 마운트하고 다양한 가상머신에서 액세스 가능.

▶서버, 공유 볼륨(NAS 디바이스 등), 빅데이터 분석 및 확장가능한 워크로드에 유용

▶EFS의 분산설계는 병목현상을 방지하고 기존 파일 서버에 내재된 제약에 구애를 받지 않음.

 

이러한 분산 데이터 스토리지 설계덕에 멀티스레드 Application과 여러 EC2 instance에서 데이터에 동시에 액세스하는 Application에서 상당한 수준의 IOPS 및 처리량을 이끌어 낼 수 있다.

EFS의 데이터는 여러 가용영역(AZ)에 분산되어 있어 높은 수준의 내구성 및 가용성을 제공한다.(EBS는 여러 가용영역에 분산 할 수 없다..)

 

▶성능 모드

범용 성능 모드 최대 I/O 성능모드

지연시간에 민감한 사용 사례에 이상적.

Default 설정임.

높은 수준의 집계 처리량 및 초당 작업으로 확장.

지연시간의 절충을 요한다.

빅데이터 분석, 미디어 처리, 고도의 병렬 처리를 요할 때 추천.

 

* 파일 시스템은 성능 모드와 관계없이 동일하게 청구 및 측정이 됨. 즉 추가비용이 발생하지 않는다.

* 파일 시스템을 만든 후에는 EFS 파일 시스템의 성능 모드를 변경할 수 없다.

 

▶처리량 모드

버스팅 모드 프로비저닝 처리량 모드

표준 스토리지 클래스의 파일 시스템 크기가 커짐에 따라 처리량 조정.

단기간에 처리량을 높이고 나머지 기간에는 처리량을 낮춤.

저장된 데이터 양에 상관없이 파일시스템의 처리량을 즉시 프로비저닝 가능.

*1MB당 추가비용 발생 약 월 7천원

* 마지막 축소 후 24시간이 지나면 프로비저닝 모드에서 파일 시스템 처리량 축소 가능.

* 마지막 변경 후 24시간이 지나면 처리량 모드 변경 가능.

 

생성 후 초기에는 빠른 성능을 보이지만 시간이 지날 수록 처리량이 현저하게 낮아지는 경우가 있다. 이는 위에서 설명한 버스팅 모드가 디폴트 설정이기 때문.

버스팅 모드는 크레딧시스템을 사용하는데 크레딧이 없으면 처리량이 1MB/S도 되지 않는다. 복잡한 계산식이 공식 문서에 있지만 이것 하나만 알면 된다.

" 저장된 파일이 작으면 크레딧이 생기는 것보다 소비되는게 많다 "

그래서 프로비저닝 처리량 모드가 나오기 전에는 큰 용량의 Dummy 파일을 올려놓고 크레딧을 생성하도록 하기도 했다고 한다.