안녕하세요, 와탭랩스 DevOps 팀 임진태 입니다.
AWS EC2 와 EBS 에는 사용자의 목적에 맞게 선택할 수 있도록 여러 플랫폼을 지원하고 있습니다.
와탭랩스는 올해 초 부터 가성비 좋기로 소문난 graviton 기반 인스턴스로 이사중입니다.
그리고 gp2 파일시스템은 gp3로 진작에 이사를 완료했습니다.
두 환경으로 이사하며 테스트 한 결과를 블로그로 남겨 놓습니다.
2021년 2월 경, AWS Seoul 리전에 정식적으로 AWS Graviton 2 기반의 EC2 유형이 추가되었습니다.
해당 유형들은 기존 Intel CPU 를 기반으로 하는 유형에 비해 "향상된 성능을 가졌으며, 심지어 더 저렴한 가격에 서비스한다"고 안내하고 있습니다. 사실인지 확인해 봅니다.
세상에 공짜는 없는데, AWS 의 함정이 없을지 기존 인스턴스 유형과 비교를 시작하였습니다.
단일 인스턴스 기준 월 과금 금액의 차이를 확인했습니다.
Type | Non-RI Monthly | RI Monthly |
---|---|---|
m5.large | 84.06 USD | 53.29 USD |
m6g.large | 67.68 USD | 43.73 USD |
각 인스턴스의 스펙은 2 vCPU, 8GiB Memory 입니다.
월 발생하는 네트워크 비용은 제외하여 계산되었습니다.
위 테이블을 참조하면, 실제로 AWS 에서 제시한 금액은 기존 인스턴스에 비해 20% 가량 저렴한 것을 확인할 수 있습니다.
성능이 동일하다는 가정이라면, 인스턴스에서 발생하는 금액의 약 20% 를 절감할 수 있는 매력적인 제안입니다.
성능은 어떠할지, 간단한 테스트를 진행해보았습니다.
테스트된 인스턴스 환경은 다음과 같습니다.
우선, 애플리케이션 기동 직후 약 1시간의 CPU 사용량입니다.
제일 앞부분의 CPU 사용률이 100%을 치는 시점은 애플리케이션이 기동되는 시점입니다.
청록색의 지표가 붉은색의 지표보다 더 빠르게 100% 지점을 해소한 것을 보아, 애플리케이션 기동 시간을 더 단축한 것으로 인지할 수 있겠습니다. 위 지표로는 애플리케이션 기동 시점의 차이를 확인하는 것 외에는 비교가 어려울 수 있습니다.
그래서, 1분 단위 평균 지표는 다음과 같습니다.
전반적으로 청록색의 그래프가 붉은색 그래프보다 밑에 위치하는 것을 볼 수 있습니다.
일부 비슷한 지점이 보이기도 하지만, 다음 그래프를 보면 더 명확하게 확인할 수 있을 것으로 보여집니다.
애플리케이션이 기동된지 약 14시간 정도가 지난 새벽 시간대의 테스트 환경입니다.
테스트 모듈 구조상 새벽 시간대에는 자원 사용량이 떨어지도록 조정되어있기에, 기동 직후 시간보다는 낮은 자원 사용량을 확인할 수 있습니다. 허나, 약 1시간 가량의 데이터임에도 불구하고 평균적으로 1.3% 의 CPU 사용량 차이가 존재합니다.
해당 그래프를 통하여 전체적으로 약 10% 정도의 CPU 효율의 차이가 있음을 확인할 수 있습니다.
AWS Graviton 2 는 30% 이상 뛰어난 가성비를 보여주고 있습니다.
저희 서버 애플리케이션 대부분은 Java 기반입니다. 특히 애초에 태생이 멀티플랫폼인 Java 인 경우 "정말", "아무것도" 고민할 필요 없이 넘어가도 문제 없습니다. 그래서 저희 인프라는 올해 초 부터 기존 RI가 만료되는 족족 넘어가고 있습니다.
단, CPU 아키텍쳐가 X86 에서 ARM으로 변경 됨에 따라 CPU 아키텍처에 의존성이 있는 애플리케이션은 마이그레이션이 번거로울 수 있습니다.
gp3 는 2020년 12월 경에 전 리전을 대상으로 배포되었습니다.
타입의 장점은 기존 gp2 의 스펙 범위에서, 볼륨의 사이즈와 관계 없이 볼륨의 성능을 조정할 수 있다는 점입니다.심지어 가격은 기존에 비슷한 역할을 하는 io 시리즈에 비교하는 수준이 아닌, gp2 보다도 더 저렴한 금액으로 발표되었습니다.
역시 또 함정은 없을지 기존 gp2 타입과 비교를 진행하였습니다.
이번에도 역시 가장 먼저 가격 정책을 살펴보았습니다.
gp2 와는 다르게 gp3 는 볼륨 크기에 대한 금액과 별도로 iops, MB/s 에 대한 금액도 존재했습니다.
Name | gp2 | gp3 |
---|---|---|
Size | 0.114 | 0.0912 |
IOPS | x | 0.0057 |
MB/s | x | 0.067 |
추가적으로 IOPS 는 기본적으로 3000 IOPS, MB/s 는 기본 125MB/s 가 지원되었습니다.
기본으로 제공되는 성능보다 높게 설정할 경우 추가 금액이 발생하는 개념입니다.
순수하게 시간당 가격표만 보게되면 실제로 가격에 대해서는 이해하기 어렵습니다.
따라서, gp2 와 gp3 가 동일한 성능일 때와 용량은 같지만 gp3 의 성능은 기본적으로 제공되는 성능만 이용할 때의 비교를 진행하였습니다.
Size | gp2 | gp3 |
---|---|---|
300 | 34.20 | 31.92 |
334 | 38.08 | 36.16 |
500 | 57.00 | 51.30 |
1000 | 114.00 | 96.90 |
5334 | 608.08 | 566.26 |
16000 | 1824.00 | 1539.00 |
동일 성능 기준 금액을 비교하기 위해 gp2 와 gp3 의 IOPS, MB/s 의 성능은 동일한 기준으로 작성되었습니다.
Size | gp2 | gp3 |
---|---|---|
300 | 34.20 | 27.36 |
334 | 38.08 | 30.46 |
500 | 57.00 | 45.46 |
1000 | 114.00 | 91.20 |
5334 | 608.08 | 486.46 |
16000 | 1824.00 | 1459.20 |
gp3 는 기본 제공되는 성능인 3000 IOPS, 125 MB/s 입니다.
동일 성능을 기준으로 비교를 하더라도, 기존의 gp2 보다 gp3 의 금액이 훨씬 저렴합니다. 더 저렴한 금액이기에, 경우에 따라서는 gp2 보다 높은 성능의 볼륨을 만드는 것이 가능합니다.
사용자가 지정 가능한 부분에서는 gp3 가 더 저렴한 금액으로 고성능을 제공할 수 있는 것으로 보여집니다.
하지만, 디스크 장치의 경우 IOPS 와 MB/s 가 전부인 것은 아닙니다.
각종 테스트를 진행하여, 실제로 해당 볼륨을 이용하였을 때 성능 상의 차이가 있는게 아닌지 확인해보았습니다.
gp2
gp3
테스트를 계속 진행해도, gp2 와 gp3 의 큰 성능 차이를 확인하기가 어려웠습니다.
하지만 분명 예전에 테스트 했을 때는 gp3 의 Disk Latency 이슈로 gp2 보다 성능이 떨어지는 결과가 나왔었는데...
이전 테스트에서 유사한 결과가 나온 글이 존재하여, 해당 글에 참조하겠습니다.
https://silashansen.medium.com/looking-into-the-new-ebs-gp3-volumes-8eaaa8aff33e혹시나해서 실제 운영 애플리케이션을 두 대 구성하여 테스트도 진행해보았지만, 예전처럼 가격이 저렴한 이유를 찾기 어려웠다.
예전에는 Disk Latency 로 인해서 눈에 띌 정도로 큰 성능 차이가 보였었는데.
지금은 비등한 수준으로 성능 차이가 확인되어 gp2 의 존재 가치가 사라질 정도로 gp3 의 성능이 좋아졌습니다.
AWS 측에서 무언가의 조치를 해준 것인지, 원인은 모르겠으나 이번 테스트 결과로는 gp3 가 현재로썬 gp2 보다 저렴하고, 고성능을 뽑아낼 수 있는 EBS 유형으로 판단합니다.