BLOG

Amazon EBS-최적화된 인스턴스 버스트 기능으로 응용프로그램 성능 향상 및 비용 절감
작성일: 2018년 8월 20일

2017년 11월 Amazon EC2는 C5 컴퓨팅 집약적 인스턴스M5 범용 인스턴스를 도입했습니다. 2018년 상반기에는 고속의 초저 지연 로컬 NVMe 스토리지를 EC2 C5 및 M5 인스턴스 제품군에 추가하여 EC2 C5d 인스턴스M5d 인스턴스를 출시했습니다. EC2 C5/C5d 및 M5/M5d 인스턴스는 Nitro 시스템에 구축됩니다. 이러한 AWS 구축 하드웨어 및 소프트웨어 구성 요소 모음을 통해 고성능, 고가용성, 높은 보안 및 베어 메탈 기능을 통해 가상화 오버헤드를 줄일 수 있습니다.
Nitro 시스템을 설계하는 동안 실제 워크로드를 분석하고 인스턴스 크기를 축소하여 Amazon EBS 볼륨의 성능을 향상시킬 필요성을 인식했습니다. 응용프로그램 스토리지 요구 사항의 대부분은 높은 I/O의 짧고 강렬한 기간으로 버스트 사이에 충분한 유휴 시간이 있는 버스티(bursty)입니다. 이러한 워크로드에 대한 환경을 개선하기 위해 더 작은 인스턴스 크기를 위한 버스트 기능을 개발했습니다. EC2 C5/C5d 및 M5/M5d 인스턴스에서 사용할 수 있는 이 기능을 사용하면 large, xlarge, and 2xlarge 크기의 인스턴스가 매일 30분 이상 4xlarge 인스턴스와 동일한 성능을 내도록 합니다.
갑작스런 Amazon EBS 요구 사항이 있는 응용프로그램의 경우 CPU 및 메모리 요구 사항에 따라 인스턴스의 크기를 적절하게 조정할 수 있지만 EBS에 최적화된 인스턴스 성능 요구 사항을 충족할 수 있습니다. 또한 이와 같이 고성능을 제공하므로 EBS에 최적화된 인스턴스 성능에 따라 워크플로우 섹션의 속도를 높일 수 있습니다. 워크플로우의 속도가 빨라지면 작업 완료 시간이 단축되고 리소스 활용도가 향상됩니다. 폭발적인 성능 덕분에 인스턴스 크기를 적절하게 조정하고 총 리소스 사용률을 높여 비용을 절감할 수 있습니다.
이러한 성능 향상을 통해 응용프로그램 성능에 영향을 미치지 않으면서 계획되지 않은 수요 급증을 처리할 수 있습니다. 이제 기간별 평균 추세에 따라 인스턴스 크기를 조정할 수 있습니다. 이 버스트 기능은 고객 환경에 영향을 주지 않고 급증을 흡수할 수 있는 성능을 제공합니다.

 

Amazon CloudWatch 메트릭을 사용하여 버스트 사용량 모니터링하기
성능에 대한 더 나은 가시성을 위해 Nitro 시스템에 기반한 인스턴스는 Amazon CloudWatch 메트릭을 제공하여 사용 현황을 파악하는 데 도움이 됩니다. 사용현황 프로필에 따라 더 작은 인스턴스가 요구 사항을 충족하는지 여부를 결정할 수 있습니다.
이러한 인스턴스를 사용하면 작업(EBSReadOpsEBSWriteOps)과 전송된 바이트(EBSReadBytes 및 EBSWriteBytes)의 인스턴스 수준의 CloudWatch 메트릭를 통해 사용량을 모니터링합니다. 이러한 메트릭에 대한 자세한 내용은 인스턴스에 따라 사용 가능한 CloudWatch 메트릭 목록을 참조하십시오. 이러한 메트릭은 기본 모니터링(5분 빈도)을 지원하지만 추가 비용으로 자세한 모니터링(1분 빈도)을 사용하도록 설정할 수 있습니다. 자세한 내용은 Amazon CloudWatch 가격 책정을 참조하십시오.
large, xlarge, and 2xlarge 인스턴스의 경우 버스트 밸런스 메트릭도 제공합니다. EBSIOBalance%는 인스턴스 I/O 버스트 버킷을 모니터링하고, EBSByteBalance%는 인스턴스 바이트 버스트 버킷을 모니터링합니다. 이러한 메트릭은 I/O의 백분율 또는 각 버스트 버킷에 남아있는 바이트 크레딧의 백분율에 대한 정보를 제공합니다. 메트릭은 백분율로 표시됩니다. 여기서 100%는 인스턴스가 최대 크레딧 수를 누적했음을 의미합니다. 밸런스가 너무 낮아지면 이를 트리거할 알람을 설정할 수 있습니다.
이러한 메트릭을 보여 주기 위해 m5.large 인스턴스를 출시했습니다. 그런 다음 32,000개의 프로비저닝된 IOPS인 500GB io1 Amazon EBS 볼륨을 인스턴스에 연결했습니다. Nitro 시스템을 기반으로 인스턴스에 연결된 Amazon EBS 볼륨이 NVMe 장치에 노출됩니다.

먼저, /dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_vol02f2f9a66c2ebfd66 fio를 사용하여 큰 블록 (128 KiB) 테스트를 진행하였고 EBSIOBalance% 및 EBSByteBalance%를 모니터링했습니다.

$ sudo fio –filename= /dev/disk/by-id/nvme-

Amazon_Elastic_Block_Store_vol02f2f9a66c2ebfd66 –rw=randread —

bs=128k –runtime=2400 –time_based=1 –iodepth=32 —

ioengine=libaio –direct=1 –name=large-block-test

 

이 워크로드는 블록 워크로드가 크기 때문에 EBSIOBalance%를 제거하기 위해 충분한 IOPS를 제공하지 못합니다. 다음 이미지에 표시된 것처럼, EBSByteBalance% 를 대신 감소시킵니다.

그런 다음, 작은 블록 테스트를 실행하여 EBSIOBalance% 및 EBSByteBalance% 에 어떤 영향을 미치는지 알아보았습니다.

$ sudo fio –filename= /dev/disk/by-id/nvme-

Amazon_Elastic_Block_Store_vol02f2f9a66c2ebfd66 –rw=randread —

bs=16k –runtime=2400 –time_based=1 –iodepth=32 —

ioengine=libaio –direct=1 –name=small-block-test

 

이 테스트는 소규모 블록 테스트이기 때문에 바이트/초보다 높은 IOPS를 제공합니다. 따라서 다음 이미지에 표시된 것처럼 EBSIOBalance%EBSByteBalance% 보다 빠르게 떨어집니다.

EBSIOBalance% 및 EBSByteBalance% 가 0%를 초과하는 경우 인스턴스가 버스트 성능을 구동할 수 있습니다. 인스턴스 I/O 작업이 기준 속도 미만이면 버스트 버킷을 다시 채웁니다. 테스트가 완료된 후 인스턴스에서 모든 I/O를 일시 중지했습니다. 이 비활성 기간 동안 다음 이미지에 표시된 EBSIOBalance%  EBSByteBalance%와 같이 인스턴스 버스트 버킷이 다시 채워질 수 있습니다.

버스트 버킷의 리필 속도는 기준 속도와 인스턴스 I/O 활동 간의 차이입니다. 예를 들어, m5.large의 기본 처리량 속도는 60 MB/s이고 기본 IOPS 속도는 3600 IOPS입니다. 인스턴스 I/O활동이 10 MB/s 및 1000 IOPS라고 가정합니다. 바이트 버킷은 50 MB/s(60 MB/s minus 10 MB/s)의 속도로 채워집니다. IOPS 버킷은 2600 IOPS(3600 IOPS minus 1000 IOPS)의 속도로 채워집니다. 여러 인스턴스에 대한 기준 비율은 Amazon EBS에 최적화된 인스턴스를 참조하십시오. 또한 24시간마다 버스트 버킷을 채우므로 인스턴스는 매일 30분 동안 버스트 성능을 얻을 수 있습니다.

 

성능 향상

저희는 Nitro 시스템을 계속 개선해 왔습니다. 최신 향상된 기능을 통해 large, xlarge, and 2xlarge EC2 C5/C5d 및 M5/M5d instances를 각각 2.25 Gbps 및 2.12 Gbps에서 3.5 Gbps까지 최대 버스트 대역폭을 증가시켰습니다. 증가시켰습니다. EC2 C5/C5d의 최대 버스트 IOPS를 20,000 IOPS로, M5/M5d의 최대 IOPS를 16,000 IOPS에서 18,750 IOPS로 증가시켰습니다. 새로운 모든 EC2 C5/C5d 및 M5/M5d 소규모 인스턴스는 추가 비용 없이 이 성능 향상을 활용할 수 있습니다.

이 버스트 기능과 해당 성능 번호를 지원하는 Nitro 시스템에 기반한 최신 인스턴스 목록은 Amazon EBS에 최적화된 인스턴스를 참조하십시오.

 

원문 URL: https://aws.amazon.com/ko/blogs/compute/improving-application-performance-and-reducing-costs-with-amazon-ebs-optimized-instance-burst-capability/

** 메가존 TechBlog는 AWS BLOG 영문 게재글중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.