본문 바로가기

Programming/AWS

AWS EBS vs EFS vs S3, 어느 스토리지를 써야할까?

오늘은 AWS 서비스 중 안정적이고 복원력을 갖춘 스토리지 EBS와 EFS에 대해 공부해보았다. 이 두 스토리지 시스템의 특징과 어느 상황에서 각 서비스를 사용해야 하는지 알아보자.

EBS (Elastic Block Storage!)

  • AWS EC2 (Elastic Compute Cloud)에서 사용하도록 설게된 사용하기 쉬운 고성능 블록 스토리지 서비스
  • AZ(가용 영역)내에서 복제를 통해 재해복구
    • 볼륨의 특정 시점 스냅샷을 S3에 저장할 수 있다
    • 마지막 스냅샷 이후 변경된 블록만 저장
    • 비동기적 생성(수정된 블록이 S3로 모두 이동할 때까지 스냅숏 상태는 pending!)
    • 사용 중인 볼륨도 스냅샷 생성할 수 있다(단, 루트 디바이스 역할의 EBS볼륨은 인스턴스 중지해야 한다)
  • 무제한의 확장성, 빠른 복원, 빠른 확장성
  • 데이터에 빠르게 액세스하고 장기적으로 지속해야 하는 경우에 적합
  • 암호화: 암호화된 볼륨 및 스냅숏 생성 시 AWS KMS(Key Management Service) 고객 마스터 키(CMK) 사용
  • EBS 볼륨 유형
    • IOPS(Input Output Operations Per Second) 초당 입출력 작업을 나타냄
    • SSD: 빠름
    • HDD: 대용량
SSD HDD
Provisioned IOPS SSD General Purpose SSD Throughput Optimized HDD Cold HDD
지연시간에 민감한 트랜잭션 워크로드 다양한 트랜잭션 워크로드 자주 엑세스하고 처리량 집약적인 워크로드 엑세스 빈도가 낮은 워크로드
4GB ~ 1TB 1GB ~ 16TB 500GB ~ 16TB 500GB ~ 16TB
64000 IOPS 16000 IOPS 500 IOPS 250 IOPS
가장 비쌈     가장 저렴

추가로 읽어보면 좋은 것들

EC2 Instance Store

  • EC2 인스턴스에 블록 수준의 임시 스토리지
  • 직접 연결된 스토리지로 EBS보다 훨씬 빠르다
  • EC2 인스턴스 생성 시 혹은 AMI 생성 시 볼륨 추가해야 함
  • EC2 인스턴스 사용 중에만 유지된다

EFS (Elastic File Storgae)

  • AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장 가능하며 탄력적인 완전 관리형 탄력적 NFS 파일 시스템
  • 애플리케이션 중단할 필요 없이 확장되므로 사용자가 용량을 프로비저닝 및 관리할 필요 없음
  • 최대 수천 개의 EC2 인스턴스를 위한 스토리지이며 동시에 액세스 할 수 있다
  • NFSv4(Network File System) 프로토콜 사용
  • VPC 내 EC2 인스턴스는 직접 액세스 할 수 있음
  • On-premise 서버는 Direct Connect & VPN 연결을 통해 파일 시스템 탑재
    • Direct Connect은 대역폭이 높고 지연 시간이 짧은 전용 네트워크 연결
  • 암호화: AWS KMS(Key Management Service)에서 관리

추가로 읽어보면 좋은 것들

Amazon Cloud Storage 비교

아래 표는 When to choose Amazon EFS에 나오는 표를 번역한 내용이다.

    File
EFS
Object
S3
Block
EBS
퍼포먼스 작업별 대기 시간 낮음, 일관됨 낮음, 여러 요청 타입 처리, CloudFront와 통합 가장 낮음, 일관됨
처리량 크기 초당 GBs 초당 GBs 초당 GB
특성 가용성 / 내구성
(availability, durability)
여러 AZ에 중복 저장 여러 AZ에 중복 저장 단일 AZ에 중복 저장
엑세스 1개~수천개의 EC2인스턴스 / on-premise 서버 / 여러 AZ에서 동시 접근 웹을 통한 수백만 개의 연결 하나의 AZ에 속한 하나의 EC2 인스턴스 
사용 케이스 웹 서비스 및 컨텐츠 관리
엔터프라이즈 어플리케이션
홈 디렉토리
데이터베이스 백업
개발자 도구
컨테이너 스토리지
빅데이터 분석
웹 서비스 및 컨텐츠 관리
미디어 및 엔터테인먼트 백업
빅데이터분석
데이터 레이크
부팅 볼륨
트랜잭션 및 NoSQL 데이터베이스
데이터 웨어하우징 및 ETL

EFS

  • AWS 클라우드 및 사내 서버의 컴퓨팅 인스턴스에 사용할 공유 file 스토리지
  • 네트워크 연결 공유 파일 스토리지 (NFSv4 프로토콜 사용)
  • 수천 대의 EC2 인스턴스 간 파일 시스템 공유
  • 페타바이트 규모로 탄력적으로 자동 확장 및 축소
  • Multi AZ

EBS

  • block 레벨 스토리지
  • 파일 시스템 생성하고 파일 저장
  • 단일 EC2 인스턴스의 전용 블록 스토리지
  • 볼륨의 크기를 변경은 수동적인 작업

EC2 Instance Store

  • 임시 블록 스토리지
  • 임시 콘텐츠와 같이 자주 변경되는 정보의 임시 스토리지로 사용하기 좋음
  • 인스턴스의 수명 기간 동안에만 데이터 지속(재부팅은 유지)

S3

  • 웹에서 사용 가능한 object 저장소
  • 뛰어난 내구성, 제약 없는 확장성
  • 5가지 유형(Standard, Standard IA, One Zone IA, Glacier, Glacier Deep Archive)

SAA C02 기출문제

Q) A company's web application is using multiple Linux Amazon EC2 instances and storing data on Amazon EBS volumes. The company is looking for a solution to increase the resiliency of the application in case of a failure and to provide storage that complies with atomicity, consistency, isolation, and durability (ACID).
What should a solutions architect do to meet these requirements?

 

A.Launch the application on EC2 instances in each Availability Zone. Attach EBS volumes to each EC2 instance.

B.Create an Application Load Balancer with Auto Scaling groups across multiple Availability Zones. Mount an instance store on each EC2 instance.

C.Create an Application Load Balancer with Auto Scaling groups across multiple Availability Zones. Store data on Amazon EFS and mount a target on each instance.

D.Create an Application Load Balancer with Auto Scaling groups across multiple Availability Zones. Store data using Amazon S3 One Zone-Infrequent Access (S3 One Zone-IA).

 

정답: C (EFS)

복원력, ACID(원자성, 일관성, 고립성, 지속성) 만족하며 multi EC2 인스턴스를 사용 중이다.

EBS, EC2 인스턴스 스토어는 여러 EC2간에 데이터 공유할 수 없으므로 ACID 조건을 만족하지 못한다.

S3 One Zone IA는 복원력을 만족하지 못한다.

EFS는 여러 EC2 인스턴스 간에 공유될 수 있으며(ACID 만족), 복원력도 가지고 있다.

 

Q) A company is hosting a web application on AWS using a single Amazon EC2 instance that stores user-uploaded documents in an Amazon EBS volume. For better scalability and availability, the company duplicated the architecture and created a second EC2 instance and EBS volume in another Availability Zone, placing both behind an Application Load Balancer. After completing this change, users reported that, each time they refreshed the website, they could see one subset of their documents or the other, but never all of the documents at the same time.
What should a solutions architect propose to ensure users see all of their documents at once?

 

A.Copy the data so both EBS volumes contain all the documents.

B.Configure the Application Load Balancer to direct a user to the server with the documents.

C.Copy the data from both EBS volumes to Amazon EFS. Modify the application to save new documents to Amazon EFS.

D.Configure the Application Load Balancer to send the request to both servers. Return each document from the correct server.

 

정답: C (EFS)

EBS는 각 EC2 인스턴스에만 액세스 할 수 있으므로, EFS로 변경해서 여러 리전과 인스턴스 간의 파일 시스템에 접근할 수 있도록 하면 된다.


추가적으로 읽으면 공부에 도움되는 것들

반응형