본문 바로가기
클라우드

AWS IP당 추가 비용, EBS SSD 스토리지 마이그레이션

by CleanCoder 2024. 2. 28.

 

 

 

AWS 3 Tier 아키텍처 

 

1) 인터넷에 연결된 public subnet
2) 인터넷에 직접 연결되지 않은 private subnet

 

ALB를 통해 Autoscaling 된 EC2, ECS, EKS 등 접근하게 된다. 맨 하단은 DB 영역으로 기본적인 3-Tier 구성이다.

Internet gateway, LoadBalancer를 통해 트래픽이 들어오며 private 영역에서 public으로 NAT gateway를 통해 outbound traffic이 이동한다.

 

 

AWS Public IPv4 주소 요금 변경 (24년 02월 01일 ~ )

https://aws.amazon.com/ko/blogs/korea/new-aws-public-ipv4-address-charge-public-ip-insights/

 

 

EIP의 비용 뿐 아니라 신규로는 인스턴스 생성시에도 비용이 추가된다. 기존에는 고정 IP를 할당받기 위해 EIP를 받았고 이에 따라 시간당 비용을 추가 지불하였지만 이제는 인스턴스 생성시 자동 할당된 IP에도 시간당 비용이 추가된다. 이는 IP 부족때문이라나..

 

 

 

EBS volume (~21년 5월)
https://aws.amazon.com/ko/blogs/storage/migrate-your-amazon-ebs-volumes-from-gp2-to-gp3-and-save-up-to-20-on-costs/#:~:text=To%20migrate%20to%20gp3,%20you,to%20a%20new%20performance%20configuration

 

gp2 -> gp3의 변환은 20년도 AWS re:Invent에서 나왔습니다.

IOPS의 사용 사례

IOPS는 주로 랜덤 액세스 성능을 측정한다. 이는 스토리지 시스템이 초당 몇 번의 별도의 읽기/쓰기 작업을 처리할 수 있는지를 나타낸다. IOPS가 중요한 몇 가지 상황은 다음과 같다:

  • 데이터베이스 서버: 데이터베이스 작업은 종종 작은 크기의 데이터를 빈번하고 무작위 위치에서 읽고 쓴다. 예를 들어, 사용자의 조회 요청에 따라 다양한 테이블에서 데이터를 검색하고 업데이트하는 경우, 높은 IOPS 성능이 필요하다.
  • 트랜잭션 처리 시스템: 금융 거래 처리나 온라인 상점의 주문 처리 시스템과 같이, 많은 수의 동시 트랜잭션을 빠르게 처리해야 하는 환경에서 높은 IOPS 성능이 요구된다.(작은 크기 데이터 빈번한 읽기/쓰기)
  • 가상화 환경: 가상 머신이나 컨테이너가 많은 서버 환경에서는 다수의 가상 인스턴스가 동시에 다양한 작업을 수행하기 때문에 높은 IOPS가 중요하다.

MB/s의 사용 사례

MB/s는 순차적 데이터 전송 속도를 측정한다. 이는 스토리지 시스템이 초당 전송할 수 있는 데이터의 양을 의미하며, 주로 대용량 데이터의 순차적 읽기/쓰기에 중점을 둔다. MB/s가 중요한 몇 가지 상황은 다음과 같다:

  • 대용량 파일 전송: 대규모 비디오 파일이나 백업 데이터를 스토리지 간에 전송할 때 높은 순차적 읽기/쓰기 속도가 필요하다.
  • 미디어 스트리밍: 대용량 미디어 파일을 순차적으로 읽어서 사용자에게 스트리밍할 때 높은 MB/s 성능이 요구된다.
  • 대규모 데이터 처리 작업: 과학 연구 데이터 분석이나 비디오 렌더링과 같이 대용량 데이터를 처리하는 작업에서 순차적 읽기/쓰기 속도가 중요하다.

인터넷 속도 측정시에 mbps를 사용하는 이유는 웹 페이지 탐색, 파일 다운로드, 스트리밍등 순차적 데이터 전송이 많다. 또한 IOPS는 스토리지 시스템 성능 측정 지표로 계산되었으며, 네트워크 성능 측정으로 설계되지 않았다.

 

gp3로 선택하면 

 

gp2에서는 다음과 같이 크기에 따라 IOPS가 변하는 방식이다.

16000 IOPS까지 사용이 가능하고 더 많은 IOPS를 원하면 프로비저닝된 SSD(고성능 SSD 볼륨은 비즈니스에 핵심적이며 지연 시간에 민감한 트랜잭션 워크로드를 위해 설계됨)를 선택해야한다.

gp2의 경우 100GB당 IOPS가 300씩 올라가게 된다.

 

GP2

GP2 의 경우 자동으로 설정되는 것으로 고객 측에서는 지정할 수 없고 EBS 상세페이지에서 처리량이 표시되지 않는다.
자동으로 설정되는 값은 아래와 같다.

  • 볼륨 크기가 170GiB 이하인 경우 128MiB/s
  • 볼륨 크기가 170GiB보다 크고 334GiB 미만인 경우 버스트에 의해 최대 250MiB/s
  • 볼륨 크기가 334GiB 이상인 경우 버스트에 관계없이 250MiB/s

GP3

gp3의 경우 다음과 같이 변경됩니다.

  • 최소 125 MiB/s 베이스라인 처리량
  • 최대 1,000 MiB/s까지 프로비저닝 가능
  • 고객측에서 명시적으로 추가(지정) 필요

125MBps (또는 "125MB/s")는 초당 125 메가바이트를 전송할 수 있음을 의미하며, 이는 "1000Mbps" (1Gbps)와 동일한 속도

(1Mbps = 초당 0.125MB)

 

기본적으로 MB/s 는 다음의 변환 공식이 있다.

MB/s = (IOPS * 블록 크기(KB)) / 1024

 

운영체제에서는 메모리를 페이지라 불리는 크기의 블록으로 나누어 관리하고 4KB(가상 메모리를 고정된 크기로 나누었을 때, 하나의 블록)로 예시를 들으면 다음과 같다.(2KB, 8KB 다양하고 이러한 페이지 크기는 메모리 관리 효율성과 성능에 영향을 미친다.

3000 IOPS * 4KB = 12000 KB/s
12000 KB/s / 1024 = 11.72 MB/s

 

IOPS는 주로 랜덤 액세스 패턴에서는 탐색 시간(seek time)이 전체 성능에 큰 영향을 미칠 수 있다. 따라서 단순히 데이터 블록 크기와 IOPS를 곱하여 MB/s로 변환하는 것 IOPS와 MB/s차이를 완전히 설명할 수 없다.

 

 

RDS 예시

Oracle, PostgreSQL, MS-SQL의 경우 8KB가 default이며, MySQL, MariaDB는 16KB가 default size이다.

IOPS 3000이고 PostgreSQL의 경우 = 24,000KB = 23.9MBps

 

gp3의 경우 자동 스토리지 확장 기능을 사용하게 되면 다음의 고려도 필요할듯 하다.

 

 

실제 환경에서는 데이터 요청의 크기가 다양할 수 있으며, 블록 크기가 변하면 IOPS와 MB/s 변환 결과도 달라지게된다. 

 

 

비용 측정(ap-northeast-2 서울 리전)

한달 기준
EBS

IOPS당 0.25MiB/s 적용 (3000 IOPS일 경우 700 MBps까지 설정 가능, 더 원할 시 IOPS증가 필요)

gp3 500GB 사용, IOPS 3000, 처리량 250MBps => $51.3 (11% 절감)

gp3 1000GB 사용, IOPS 3000, 처리량 250MBps => $96.9 (17% 절감)

gp3 2000GB 사용, IOPS 6000, 처리량 250MBps => $205.2 (11% 절감)

 

gp2 500GB 사용, IOPS 1500, 처리량 250MBps => $57

gp2 1000GB 사용, IOPS 3000, 처리량 250MBps => $114

gp2 2000GB 사용, IOPS 6000, 처리량 250MBps => $228

 

 

 

 

댓글