초보 개발자

AWS RDS 적절한 instances 고르는 방법. 본문

AWS

AWS RDS 적절한 instances 고르는 방법.

taehyeki 2023. 4. 22. 16:30

 

AWS instance를보면 T,M,R시리즈가 존재한다. 기존 프리티어로 제공되는 t2.micro때문인지. 나는 지금까지 아무런 의심 없이 가격별로 R>M>T  인줄 알았다. ( R은 뭔가 제일 쎄보이고, M은 BMW M시리즈를 연상시킴..)

 

회사에서 MySQL RDS를 사용하는데, 평균 CPU사용률이 70%이고, 100%도 허다하게 발견한다.  연결이 안된다는 얘기가 자주 들린다. 

우리 회사의 서버는 아래와 같은 구조를 지니고 있다.

 

회사에서 사용하고 있는 RDS스펙은 m4.8xlarge 3개 m4.16xlarge하나 쓰고 있다. 3년치 RI(Reserved Instance)가격을 보면 개당 6천만원짜린데.. 매일 100%니까.. 도대체 어느정도의 스펙을 사용해야 50% 정도로 유지가 가능하려나 생각이 들었다.

구조를 살펴보면 client로 부터 API 요청이 Nginx EC2로 흘러간 뒤 로드 밸런싱을 통해 각 EC2 서버에서 api마다 정해진 replica DB를 사용하는 구조이다.

RI계약을 오는 9월에 새로 해야하기에, 어떤 스펙을 얼마나 사용할지 정해야한다. 나는 이번기회에 최대한 효율적인 스펙을 찾는것이 목표이다. 아래의 사이트에서 그 방법에 대해 좀 배울 수 있었다.

https://www.apptio.com/blog/ec2-m5-vs-t3/

먼저 내가 앞서 생각한 T, M, R은 스펙 사양의 차이가 아니다. 기능의 차이였다. 다만 M은 작은 사이즈를 제공하지 않지만 T는 작은 사이즈를 제공하고 있어 그렇게 느꼈던 것 같다.

T는 짧은 시간 높은 CPU를 요하지만 나머지는 잠잠한 경우와 평일에는 몰리지만 주말에는 한가한 경우에도 사용된다고 한다. ( batch에도 어울릴 거 같다 ) , M은 항상 균일하거나 높은 CPU를 요구할 때 사용한다.. , R은 메모리를 많이 요하는 곳이라고 한다. 일단 우리는 주말 평일 상관없이 엄청난 request요청이 들어오니까 M을 사용하는 것은 맞는 것 같다.