aws 의 EC2 인스턴스에 연결하여 사용하는 EBS(disk) 의 경우 기존에 gp2 만 존재 했었다.
이번 reinvent 2020 에서 발표된 gp3가 기존 gp2가 어떤 부분이 다른지 확인을 해본다.
가격테이블(리전: Seoul/ap-northeast-2)
gp2 GB / month | gp3 GB / month | gp3 IOPS( 1 ) | gp3 Throughput( 1 MiB ) |
|
---|---|---|---|---|
가격 | US$ 0.114 | US$ 0.0912 | US$ 0.0057 | US$ 0.0456 |
크기 | 1 ~ 16384 GB | 1 ~ 16384 GB | ||
IOPS | 100 ~ 16000 disk 크기에 따른 자동조정 | 3000 ~ 16000 기본값 3000 이상 옵션 과금 제한 DISK크기 1MB : 500 IOPS |
||
Throughput | 125 ~ 250 MiB disk 크기에 따른 자동조정 | 125 ~ 1000 MiB 기본값 125 이상 옵션 과금 제한 4 IOPS : Throughput 1 MiB |
gp2 에서는 IOPS 가 34GB ~ 5334GB 에서 디스크 자동 조정이 되었고, Throughput 의 경우 168 GB ~ 334 GB 에서 자동 조정이 되었다.
모든 경우값을 다 대입 할순 없겠지만 엑셀로 정리했을때 아래와 같다.
상위 표중 gp3 max speed 는 최대의 IOPS 및 Throughput 으로 하게 되며 디스크 크기에 따라아래와 같이 속도가 제한 되었다.
8GB = 4000 IOPS, Throughput 750 MiB
30GB = 15000 IOPS, , Throughput 1000 MiB(max)
기본적인 가격은 낮아졌기 때문에 gp2 보다는 gp3 를 선택해서 사용 하는게 이익이다.
다만 단순히 TYPE 만 변경 하게 될 경우 속도 상에서 기존 gp2에 비해 느릴 수 있겠다. 때문에 적절히 IOPS 와 Throughput 을 적용하는것이 좋겠다.
그래프로 그려봤을땐 아래와 같다.
좀더 현실적으로 많이 사용할 500GB 까지의 그래프는 아래와 같다.
gp2 에서 gp3 으로의 이행을 할 경우 성능 조정 없이 사용할 경우 사용료가 20% 절약이 된다.
gp2 -> gp3 로의 볼륨 수정은 서버가 running 상태에서도 변경이 가능하다. (용량에 따라 optimizing 시간이 좀 걸린다.)
Linux 에서의 IO 테스트 방법 1
1 2 3 |
~]# dd if=/dev/zero of=test bs=16k count=10000 oflag=direct && rm -f test ~]# dd if=/dev/zero of=test bs=1M count=1024 oflag=direct && rm -f test |
Linux 에서의 IO 테스트 방법 2
1 |
~]# hdparm --direct -t -T /dev/nvme0n1p1 |
dd ( 16k / 10000 times) | dd ( 1M / 1000 times ) | hdparm | ||
---|---|---|---|---|
12GB | gp2 100 IOPS 125MiB (추정) | 29.5 MB/s | 154 MB/s | cached: 191.81 MB/sec disk: 170.53 MB/sec |
gp3 3000 IOPS 125 MiB | 23.8 MB/s | 149 MB/s | cached: 187.18 MB/sec disk: 166.64 MB/sec |
|
120GB | gp2 - 360 IOPS 125MiB (추정) | 28.8 MB/s | 153 MB/s | cached: 191.71 MB/sec disk: 170.58 MB/sec |
gp3 3000 IOPS 125 MiB | 16.0 MB/s | 149 MB/s | cached: 187.42 MB/sec disk: 166.60 MB/sec |
|
500GB | gp2 IOPS 1500 250MiB (추정) | 34.3 MB/s | 347 MB/s | cached: 375.03 MB/sec disk: 333.46 MB/sec |
gp3 3000 IOPS 250 MiB | 23.0 MB/s | 347 MB/s | cached: 375.04 MB/sec disk: 333.47 MB/sec |
|
1024GB | gp2 IOPS 3072 250MiB (추정) | 30.9 MB/s | 345 MB/s | cached: 374.96 MB/sec disk: 333.50 MB/sec |
gp3 3000 IOPS 125 MiB | 20.6 MB/s | 149 MB/s | cached: 187.51 MB/sec disk: 166.63 MB/sec |
|
2048GB | gp2 IOPS 6144 250MiB (추정) | 28.0 MB/s | 347 MB/s | cached: 375.04 MB/sec disk: 333.22 MB/sec |
gp3 3000 IOPS 125 MiB | 23.7 MB/s | 149 MB/s | cached: 187.50 MB/sec disk: 166.63 MB/sec |
성능 테스트 결과 최대 속도의 경우 gp2 와 gp3가 동등하다.
gp3의 장점은 사용료가 저렴한 부분과 크레딧이 없어 일정한 속도가 유지 되는면이 있고,
아울러서 gp2 의 경우 높은 성능을 원하는 경우 디스크 크기를 증가 시켜야 하는데
gp3의 경우 성능만 높일 수 있다는 점이 장점이라고 할 수 있겠다.
gp3의 단점은 작은 용량의 파일 처리에서는 속도가 gp2에 비해 떨어진다.
Block Size | 16kB | 32kB | 64kB |
---|---|---|---|
Bps | 16.0 MB/s | 31.6 MB/s | 62.4 MB/s |
Block Size | 128kB | 256kB | 512kB |
---|---|---|---|
Bps | 106 MB/s | 135 MB/s | 150 MB/s |
테스트 블럭 사이즈에 비례 하게 속도가 늘어난다 @_@a