AWS 블록 스토리지 개요와 비용

  • Post Author:
  • Post Category:칼럼
  • Post Comments:0 Comments
  • Post last modified:April 8, 2020
Evening clouds over the sea by Nick Scheerbart
Evening clouds over the sea by Nick Scheerbart

EBS 선택하기

영속적인 스토리지가 필요할 때 AWS에서는 EBS를 주로 이용한다. EFS, S3 등 특수 목적의 스토리지가 있으나 일반적인 용도로는 블록 스토리지인 EBS가 대체로 적합하다.

EBS는 크게 HDD와 SSD로 나누는데 각각의 매체는 보장되는 IO 수준에 따라 빠른 것과 느린 것이 있어 크게 네 가지 타입이 있다.

애플리케이션의 입출력 특성에 따라 볼륨 타입을 선택한다. 그러나 처음에 전혀 감이 없는 상태에서 IO 수준을 짐작해서는 일이 안 되기 때문에 나는 이렇게 제안한다. 잘 모르면 gp2 타입(SSD 중 느린 것)을 선택한다. 그러고 나서 Datadog 같은 모니터링 도구로 성능을 한달 정도 측정한다. IOPS가 매우 넉넉하다면 HDD 타입으로 바꿔도 된다. 만약 IOPS가 부족하다면 어찌할 것인가? 그때는 두 가지 방안이 있다.

가장 간단한 방법은 가장 빠른 io1 타입으로 바꾸는 것이다. 또다른 방법은 gp2 타입을 유지하되 스토리지 용량을 늘리는 것이다. gp2는 최소 100 IOPS를 제공하고 기가바이트당 3 IOPS를 추가로 제공한다. 간단히 예를 들어 100 GB gp2 볼륨을 쓰면 IOPS가 300 이 나온다. 그런데 모니터링을 해보니 IOPS가 350이 필요한 상황이다. 이때 gp2 볼륨을 117 GB로 확장하면 IOPS는 351이 된다. 이때 총비용은 월 7.98달러에서 9.92달러로 24.31% 증가한다. 반면 IOPS 350짜리 io1 타입의 볼륨으로 대체하면 총비용은 월 36.01 달러가 되어 비용이 351.25% 증가한다. 물론 io1 타입은 최대 IOPS가 무려 64,000이고 성능이 출렁이지 않고 안정적이다. 하지만 대부분은 gp2면 충분할 것이다. gp2는 조건부이긴 해도 최대 3,000 IOPS로 순간 속도가 나오기도 하므로 io1에 비해 월등히 비용효율적이다.

i3 인스턴스 타입

볼륨이 가변적으로 인스턴스를 바꿔가며 붙지 않아도 된다면 i3(en) 타입을 고려해볼만 하다. 고속 NVMe SSD 스토리지를 로컬에 장착하는 것만큼 효율적인 선택을 AWS에서 찾기는 힘들다.

블록 스토리지를 직접 운영하기

EBS와 같은 가변성 스토리지를 원하지만 비용을 줄이고 싶다면 i3 타입 위에 Ceph 같은 스토리지 엔진을 올리면 된다. Kubernetes 안에선 Rook을 이용하면 비교적 손쉽게 운영할 수 있다.

gp2 48TB를 이 새로운 구성으로 올렸을 때 내 계산에 따르면 총 비용은 15% 가량 절감 가능하다. 계산의 세부사항은 다른 글에서 다루기로 하고 이야기를 이어나가면, 물론 구성과 요건에 따라 이 수치는 더 좋아질 수도 더 나빠질 수도 있다. 그러나 별다른 할인 프로그램이 없는 EBS 서비스 특성상 이 정도의 할인률은 스토리지 비용이 큰 조직에 충분히 매력적일 수 있다.

Information

조직마다 비용 구조가 다르긴 하나 스토리지 비용의 비중이 결코 작지 않다. Reserved Instance 등의 할인 프로그램이 컴퓨팅 리소스에 집중된 까닭에 스토리지와 트래픽이 총비용에서 꽤 큰 비중을 차지한다.트래픽이 많은 조직이라면 컴퓨팅, 스토리지, 트래픽의 비중을 대충 4:3:3 정도라 봐도 좋을 것이다. 규제 때문에 감사기록이 많거나 데이터 분석 업무가 많다면 4:5:1 정도일 수도 있다. 구체적인 수치야 상황에 따라 다르겠지만.

Also in Kubernetes Storages

Kubernetes 스토리지의 모든 것

  1. Kubernetes에 EBS 볼륨 붙이기
  2. NFS on Kubernetes
  3. AWS 블록 스토리지 개요와 비용

View the entire series

Buy me a coffeeBuy me a coffee

최 재훈

Kubernetes, DevSecOps, Golang, 지속적인 통합 등 다양한 주제에 관심이 많다.