AWS Cloud Storage (S3, EFS, EBS)

AWS Cloud Storage (S3, EFS, EBS)
Photo by Alex Machado / Unsplash

AWS Cloud Storage??

Cloud Storage는 말그대로 클라우드에 데이터를 저장할 수 있는 공간을 말한다.

언제 어디서는 인터넷에 연결된 모든 장치에서 엑세스 가능한 스토리지이다.

클라우드 스토리지와 동일하게 사용할 수 있는 NAS 제품도 있다.

스토리지 유형

Block

블럭 스토리지는 데이터 스토리지와 스토리지 장치를 제어하는 기술이다.

파일과 데이터베이스 항목과 같은 데이터를 동일한 크기의 블럭으로 나눈다.
이 후 시스템은 빠른 엑세스와 검색을 위해 최적화된 방식으로 물리적 스토리지에 블럭을 저장한다.

File System

파일 시스템은 파일과 폴더의 계층 구조로 데이터를 저장한다.
네트워크 환경에서 파일 기반 스토리지는 NAS 기술을 사용하고
이는 로컬 하드 드라이브와 유사한 방식으로 엑세스할 수 있게 해준다.

Object

객체 스토리지는 객체라는 비정형 형식으로 데이터를 저장 관리한다.
각 객체에는 고유 식별자로 태그가 지정 되고 기본 컨텐츠를 설명하는 메타데이터가 포함된다.

etc. Cache, Hybrid/Edge

이번에 찾아보는 Cloud Storage의 내용은 아니지만
자주 사용하는 데이터를 놓는 고속 데이터 저장 계층인 캐시
온프레미스 스토리지 인프라와 클라우드 인프라를 결합해 사용하는 하이브리드/엣지 방식도 존재한다.

분류 및 비교

  • Block
    • AWS EBS, AWS EC2 Instance Store
  • File System
    • AWS EFS, AWS FSx
  • Object
    • AWS S3
  • Cache
    • AWS File Cache
  • Hybrid/Edge
    • AWS Storage GatewayTapeGateway

블록 스토리지는 기존 하드 드라이브와 유사하고 저수준 엑세스를 제공해 일반적인 운영체제 및 데이터베이스에서 사용된다.

객체 스토리지는 이미지, 비디오, 문서 등 비정형 데이터에 적합하다.

AWS S3 (Simple Storage Service)

AWS S3는 확장성, 내구성, 비용 효율성이 뛰어난 객체 스토리지이다.

대량의 비정형 데이터를 저장 검색하는데 효과적이다.

  1. 한번 쓰고 여러번 읽기: 보관, 저장, 백업, 등과 같이 한번 저장 여러번 접근하는 시나리오에 이상적이다.
  2. 확장성: S3는 사전 작업 없이도 무제한으로 데이터 저장이 가능하다.
  3. 내구성 및 가용성: S3는 지역내 여러 기기, 시설에 분산, 백업하여 저장하기에 높은 내구성과 가용성을 보장한다.
  4. 비용 효율성, S3는 다른 스토리지 서비스들에 비해 비용이 적고 엑세스 빈도 등 사용 시나리오에 따라 적절한 방법을 선택할 수 있다.

사용 예로

  • 백업 및 복원
  • 콘텐츠 배포
  • 데이터 보관
    등에 유리하다.

AWS EBS(Elastic Block Store)

AWS EBS는 EC2 인스턴스에 대한 지속적인 블럭 수준 스토리지 볼륨을 제공한다.
데이터에 대한 저지연 엑세스가 필요한 경우 적합하다.

  1. 성능 EBS는 EC2에 저지연성과 고성능 스토리지를 제공해 일관되고 안정적인 성능을 제공한다.
  2. 데이터 지속성: EBS 볼륨은 지속적이다. 연결된 EC2가 종료되어도 EBS의 데이터는 지속된다. 이 후 다른 EC2를 연결해 데이터를 사용할 수 있다.
  3. 스냅샷 및 시점 복구: 특정 시점으로 스냅샷을 찍어 백업, 복구가 가능하다.

사용 예로

  • 데이터베이스 스토리지: EBS는 일반적으로 데이터데이스에서 사요된다. 낮은 대기시간과 높은 성능으로 여러 데이터베이스를 동시에 연결할 일이 없으니 안정적이다.
  • 어플리케이션 호스팅: EBS볼륨은 영구 저장소가 필요한 애플리케이션을 호스팅할때 적합하다.

AWS EFS (Elastic File System)

AWS EFS는 여러 EC2들이 동시에 접근할 수 있는 파일 스토리지 서비스이다.

  1. 공유 파일 시스템: EFS는 동일한 파일시스템에 여러 EC가 접근할 수 있도록 보장한다.
  2. 확장성 및 탄력성: EFS는 성능 저하 없이 증가하는 스토리지 요구사항을 만족시킬 수 있다.

사용 예로는

  • 컨텐츠 관리 시스템: EFS 여러 EC2 인스턴스가 접근해야하는 컨텐츠 관리 시스템에 적합하다.
  • 빅데이터 및 분석: EFS는 Hadoop 등 빅데이터 처리 분석 프레임워크를 위한 공유 파일 시스템으로 사용 가능ㅎ다.
  • 컨테이너화된 어플리케이션: EFS는 여러 인스턴스에 걸쳐 실행되는 컨테이너 환경에서 적합하다.

선택

우리는 주로 스토리지를 사용할 때는 이미지나 사진 등 비정형 데이터를 저장하기 위해 사용하게된다.
이 경우에는 S3를 쓰면된다.
S3는 속도가 비교적 느리긴하나 충분하고 무엇보다 가격이 합리적이다.

분산 환경에서 공유 파일시스템이 필요한 경우는 EFS를 사용하면 된다.
예를 들어 AI 모델을 띄운 EC2들이 있을때 빠르게 모델을 가져오기 위해서 EFS를 사용해 공유 파일 시스템으로 사용하기도 한다.

한 서버에서만 고정적인 저장공간을 원한다면 EBS를 사용하면 된다.