본문 바로가기

About/Cloud

[AWS] EC2 스토리지 볼륨(Elastic Block Store, Instance Store)

EC2 스토리지 볼륨


AWS 공식 문서에서 스토리지 볼륨으로 지칭하는 스토리지 드라이브는 물리적인 저장 장치를 가상화한 가장 대표적인 사례 중 하나입니다. AWS 스토리지 볼륨은 인스턴스에서 실행되는 OS를 저장한다는 측면에서 기존의 물리적인 스토리지와 별 차이가 없어 보입니다. 하지만 AWS는 사용 목적에 따라 다양한 볼륨을 제공하며, 인스턴스를 잘 활용하기 위해서는 이들 볼륨의 특징과 각각의 장단점을 이해할 필요가 있습니다.

EBS(Elastic Block Store) 볼륨


https://aws.amazon.com/ko/ebs/

 

블록 스토리지 | Elastic Block Store | Amazon Web Services

SAP HANA, Oracle, Microsoft SQL Server, MySQL, Cassandra 및 MongoDB 등 선택한 데이터베이스를 배포하고 확장할 수 있습니다.

aws.amazon.com

하나의 인스턴스에 다수의 EBS(Elastic Block Store)를 부착할 수 있으며, 이들 스토리지 볼륨은 기존의 물리적인 서버에 있는 하드 드라이브, 플래시 드라이브 또는 USB 드라이브처럼 사용할 수 있습니다. 또한 다른 물리적인 드라이브와 같이 EBS 볼륨은 유형별로 성능과 비용 측면에서 차이가 납니다.,

AWS SLA에서 EBS 볼륨에 저장된 데이터의 신뢰성은 최소 99.99%에 이르므로 작동 실패를 걱정할 필요는 없습니다. 하지만 만에 하나 EBS 볼륨이 작동에 실패하더라도 데이터는 이미 중복 구현된 다른 스토리지에 저장돼 있다가 눈치채기도 전에 복구될 것입니다. 따라서 사용 시에 스토리지 실패에 대한 걱정 없이 데이터에 좀 더 신속하고 효율적으로 접속할 방법만 고민하면 됩니다.

현재는 네 가지의 EBS 볼륨 타입이 제공되고 있으며, 두 가지는 SSD 기반, 나머지 두 가지는 HDD 기반 기술을 사용합니다. EBS 볼륨의 성능은 최대 IOPS/볼륨으로 측정합니다. (IOPS는 초당 input/output 작업 횟수)

프로비전 IOPS SSD

애플리케이션이 높은 수준의 I/O 처리를 해야하는 경우 선택할 수 있는 타입, 최대 IOPS/볼륨은 64,000, 최대 throughput/볼륨은 1,000MB/s에 이릅니다. 프로비전 IOPS는 EBS 최적화 타입으로도 부르며, $0.125/GB/월 비용에 $0.065/프로비전 IOPS 비용을 추가해서 과금합니다.

범용 SSD

일반적인 기업의 서버 워크로드를 처리할 수 있는 적절한 전송 속도 및 성능을 지닌 타입, 최대 IOPS/볼륨은 16,000이고, $0.10/GB/월 비용을 부담하면 됩니다. 이 타입은 연간 $9.60의 비용으로 이용할 수 있는 리눅스 인스턴스에 탑재되며, 8GB 부트 드라이브를 사용합니다.

처리량 최적화 HDD

처리량이 중요한 워크로드에 대응할 수 있는 적절한 성능 수준의 스토리지이며, 로그 처리 및 빅데이터 작업에도 활용됩니다. 주요 성능 지표는 500IOPS/볼륨, 최대 throughput/볼륨은 500 MB/s이며 비용은 $0.045/GB/월입니다.

콜드 HDD

접근 빈도가 낮은 데이터 작업에 적절한 타입이며, 250 IOPS/볼륨의 처리 성능을 제공하고 비용은 $0.025/GB/월입니다

다음은 볼륨 타입별 기능 및 가격 비교입니다.

  볼륨 크기 최대 IOPS/볼륨 최대 throughput/볼륨(MB/s) 가격(/월)
프로비전 IOPS SSD 4GB-16TB 64,000 1,000 $0.125/GB + $0.065/prov IOPS
범용 SSD 1GB-16TB 16,000 250 $0.10/GB
처리량 최적화 HDD 500GB-16TB 500 500 $0.045/GB
콜드 HDD 500GB-16TB 250 250 $0.025/GB

EBS Volume의 특징

모든 EBS 볼륨은 스냅샷 생성 방식으로 복제할 수 있으며, 기존의 스냅샷으로 다른 인스턴스에 부착할 수 있는 볼륨을 만들거나, AMI 생성을 위한 이미지로 변환할 수 있습니다.

또한 EBS 볼륨이 부착된 채 실행 중인 인스턴스를 이용해서 직접 AMI 이미지를 생성할 수 있습니다. 이때 데이터 손실 문제를 겪지 않으려면 해당 인스턴스를 먼저 중지시킵니다.

EBS 볼륨은 저장 중이거나 EC2 호스트 인스턴스에서 이동 중인 데이터 보호를 위해 암호화할 수 있습니다. 암호화 키는 EBS가 자동으로 관리하거나 AWS Key Management Service(AWS KMS)를 통해 사용 및 관리할 수 있습니다.

인스턴스 스토어(Instance Store) 볼륨


https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/InstanceStorage.html

 

Amazon EC2 인스턴스 스토어 - Amazon Elastic Compute Cloud

Amazon EC2 인스턴스 스토어 인스턴스 스토어는 인스턴스에 블록 수준의 임시 스토리지를 제공합니다. 스토리지는 호스트 컴퓨터에 물리적으로 연결된 디스크에 위치합니다. 인스턴스 스토어는

docs.aws.amazon.com

EBS 볼륨과 달리, 인스턴스 스토어 볼륨은 비지속형(ephemeral) 스토리지이며, 인스턴스를 종료시키면 인스턴스 스토어에 저장된 데이터가 손실됩니다. 

인스턴스 스토어를 사용하는 이유

지속형 스토리지인 EBS를 놔두고 인스턴스 스토어를 사용하는 이유는 다음과 같습니다.

  • 인스턴스 스토어 볼륨은 인스턴스 서버 호스팅 시 물리적으로 부착되는 SSD 저장 장치이며, NVMe(Non-Volatile Memory Express) 인스턴스로 연결됩니다. (NVMe - https://namu.wiki/w/NVMe)
  • 인스턴스를 생성하면 자동적으로 인스턴스 스토어 볼륨이 생성되며 별도의 비용을 부담하지 않습니다.
  • 인스턴스 스토어 볼륨은 단기적인 목적으로 인스턴스를 시작하는 배포 모델에 적합하며, 외부에서 데이터를 임포트에서 사용하므로 내부에 저장된 데이터는 삭제돼도 무방합니다.

인스턴스 스토어 고려사항

하나의 인스턴스에 다수의 인스턴스 스토어 볼륨을 추가하려면 그에 적합한 인스턴스 타입부터 선정해야 하며, 배포 모델 설계 시 매우 중요한 고려사항입니다.

인스턴스 재부팅 후에도 데이터가 소실되게 않게 하거나 AMI에서 생성된 그대로 인스턴스를 사용하는 경우, EBS 볼륨이 좀 더 나아 보입니다. 반면 시스템 실패나 재부팅으로 인한 데이터 소실 가능성보다 고속의 데이터 입출력 및 처리가 중요한 경우, 인스턴스 스토어도 좋은 대안이 될 수 있습니다. 또한 탁월한 수준으로 읽기/쓰기 작업을 할 필요가 있다면, EC2 전용 스토리지를 고수할 필요는 없으며 S3로 비용도 절약하고 좀 더 융통성 있게 데이터를 관리할 수 있습니다.


참고 사항