Amazon EBS의 스토리지 타입을 gp2에서 gp3로 마이그레이션해 보았습니다.

Amazon EBS의 스토리지 타입을 gp2에서 gp3로 마이그레이션해 보았습니다.

Amazon EBS의 스토리지 타입을 gp2에서 gp3로 마이그레이션해 보았습니다.
Clock Icon2025.04.24

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Amazon EBS의 스토리지 타입을 gp2에서 gp3로 마이그레이션해 보았습니다.

gp2와 gp3 비교

gp2에서 gp3로 마이그레이션하기 전에 무엇이 다른지 다음 표를 확인해 봅시다.

비교 항목 gp3 gp2
볼륨 크기 1GB – 16TB 1GB – 16TB
기준 IOPS 3,000 3 IOPS/GiB(최소 100 IOPS)~최대 16,000 IOPS
볼륨당 최대 IOPS 16,000 16,000
기준 처리량 125MiBs 처리량 한도는 볼륨 크기에 따라 128MBs~250MBs입니다.
볼륨당 최대 처리량 1,000MBs 250MBs
가격 GB당 월 USD 0.0912, 3,000IOPS까지 무료, 3,000 초과 시 프로비저닝된 IOPS당 월 USD 0.0057 GB당 월 USD 0.114

※ 요금은 2025년 4월 서울 리전 기준입니다.

gp3는 gp2보다 GB당 스토리지 비용이 낮을 뿐만 아니라, 기본적으로 3,000 IOPS와 125MB/s의 처리량(Throughput) 을 별도 비용 없이 제공합니다. 반면, gp2는 IOPS가 스토리지 용량에 비례하여 증가하기 때문에, 3,000 IOPS 수준의 성능을 확보하려면 최소 1,000GB 이상의 볼륨 크기가 필요합니다. 이러한 차이로 인해, IO 집약적인 워크로드를 더 작은 용량으로도 효율적으로 처리할 수 있어, gp3는 비용과 성능 면에서 모두 유리합니다.

공식 문서에서도 동일 성능 기준으로 gp3보다 gp2가 더 저렴하다고 평가하고 있습니다.

[gp3 볼륨은 용량과 성능에 대해 별도의 비용이 발생하지만 동일한 성능 수준으로 구성된 경우 gp3 볼륨은 항상 gp2 볼륨보다 저렴합니다.]

https://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/optimize-costs-microsoft-workloads/ebs-migrate-gp2-gp3.html#ebs-migrate-gp2-gp3-cost

gp2에서 gp3로 마이그레이션

먼저 테스트용으로 gp2 타입 EBS 볼륨을 생성했습니다.

jw-ebsvolmaig-1

이어서 해당 EBS 볼륨의 스냅샷을 생성합시다.

jw-ebsvolmaig-2

EBS 볼륨의 스냅샷이 생성되기 전까지 기존 EC2 인스턴스를 중지시키고 볼륨을 분리하도록 합시다.

먼저 EC2 인스턴스를 중지시킵니다.

jw-ebsvolmaig-3

EC2 인스턴스가 중지되었다면, 볼륨을 분리합시다.

jw-ebsvolmaig-4

볼륨을 분리했다면, 조금 전 생성한 스냅샷을 바탕으로 새롭게 EBS 볼륨을 생성합니다.

jw-ebsvolmaig-5

[볼륨 유형]에 gp3를 선택하고, EBS 볼륨을 생성합니다.

jw-ebsvolmaig-7

EBS 화면으로 넘어와 보면, gp3의 EBS 볼륨이 생성된 것을 확인할 수 있습니다. 이제 이 볼륨을 EC2 인스턴스에 연결합시다.

jw-ebsvolmaig-8

연결할 EC2 인스턴스와 디바이스 이름을 선택하고 [볼륨 연결]을 클릭합니다.

jw-ebsvolmaig-9

EBS 볼륨의 상태가 [정상], [사용 중]이라고 표시되는 것을 확인했다면, 이제 EC2 인스턴스를 다시 기동시키고 접속해 봅시다.

결과

EC2 인스턴스에 접속해서 기존 gp2 볼륨에 있던 폴더와 내용물들이 그대로 존재하는지 확인합시다.

테스트로 만들어두었던 폴더와 파일이 그대로 복사되어 온 것을 확인할 수 있습니다.

[root@ip-xx-x-xx-xx ec2-user]# ls
test-jaewook
[root@ip-xx-x-xx-xx ec2-user]# cd test-jaewook/
[root@ip-xx-x-xx-xx test-jaewook]# ls
hellworld

이번에는 EC2 인스턴스에서 EBS 볼륨의 타입을 확인해 봅시다. 먼저 아래 명령어로 연결된 볼륨의 ID를 확인합니다.

[root@ip-xx-x-xx-xx ec2-user]# aws ec2 describe-instances \
  --instance-id $INSTANCE_ID \
  --query "Reservations[].Instances[].BlockDeviceMappings[]" \
  --output table

 +-------------------------------------------------------------------------------------------+
||                                           Ebs                                           ||
|+---------------------------+-----------------------+-----------+-------------------------+|
||        AttachTime         |  DeleteOnTermination  |  Status   |        VolumeId         ||
|+---------------------------+-----------------------+-----------+-------------------------+|
||  2025-04-24T01:15:40+00:00|  False                |  attached |  vol-xxxxxxxxxxxxxxxxx  ||
|+---------------------------+-----------------------+-----------+-------------------------+|

연결된 볼륨의 ID를 확인했다면 이를 바탕으로 해당 볼륨의 타입을 출력해 보면, 성공적으로 gp3가 출력되는 것을 확인할 수 있습니다.

[root@ip-xx-x-xx-xx ec2-user]# aws ec2 describe-volumes --volume-ids vol-xxxxxxxxxxxxxxxxx --query "Volumes[*].VolumeType"

[
    "gp3"
]

본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 jaewookkim533@yahoo.com로 보내주시면 감사하겠습니다.

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.