오늘은 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로 변경해서 여러 리전과 인스턴스 간의 파일 시스템에 접근할 수 있도록 하면 된다.
추가적으로 읽으면 공부에 도움되는 것들
'Programming > AWS' 카테고리의 다른 글
AWS Solutions Architect Associate(SAA) C02 자격증 취득 후기 (10) | 2021.02.08 |
---|---|
AWS SAA 준비하면서 공부한 내용들 (0) | 2021.01.29 |
[AWS] VPC 기본 개념 정리 (0) | 2021.01.24 |
[AWS] SNS vs SQS 차이점 (1) | 2021.01.21 |
AWS S3(Simple Storage Service)란? (0) | 2020.12.18 |