본문 바로가기

개발공부/AWS

RDS - 화이트리스트 추가 및 후기

 RDS의 CPU가 갑자기 100%를 차고 세션도 4~500 정도가 차는 이슈가 종종 있었다.

허나 그 원인을 모르고 사용자가 많아져서 그럴것이다라고 판단했었다.

해당 이슈가 일주일에 두세번 발생하기전까지는...

 

해당 이슈가 너무 잦아지자 이걸 해결하려고 열심히 찾아보았다.

그러던중 RDS 로그를 확인했다.
RDS 로그를 보았을때 sh / admin / na 등으로 1초에 1000번정도 로그인한 로그가 찍혀져 있었다.

화이트리스트로 해결!

 

 

※ RDS 로그

  • 추가 무차별 공격은 방어에 성공한것으로 확인됨.

 

※ CPU 모니터링 결과

1.(2024.11.25 ~ 2025.01.05) - 5분단위

  1. 6개월 간 1일 MAX 값 - (CPU 100 일때 서버 장애 발생 ex. 키오스크 로그인 x / 어드민 로그인 x )

  • 빨간선 : 화이트 리스트 적용 (SSH 접근 - 회사 인터넷망만 열게 적용)
  • 노란선 : RDS 사이즈 다운

DB CPU에 영향을 주는 차트

※ 비교 (SALES 테이블 카운터 / MAX CPU )

일자 Count MAX CPU (%)

20241224 18167 80
20241225 40974 100
20241226 12336 16
20241227 15201 28
20241228 21773 15
20241229 18969 13
20241230 14753 39
화이트 리스트 ssh 회사망만 열어 놓음
20241231 25736 33
20250101 26126 12
20250102 11237 37
20250103 13174 22
DB Size Down db.m5.24xlarge → db.m5.12xlarge
20250104 19956 23
20250105 15056 31
20250106 8501 38

※ RDS 가격 비교 (다중 AZ 사용) - RDS 신규 생성기준

  • db.m5.24xlarge 1달 사용 추정금액 ( 약 9000만원)
  • db.m5.16xlarge 1달 사용 추정금액 ( 약 6000만원)
  • db.m5.12xlarge 1달 사용 추정금액 ( 약 4500만원)
  • db.m5.8xlarge 1달 사용 추정금액 ( 약 3100만원)
  • db.m5.4xlarge 1달 사용 추정금액 ( 약 1600만원)

금액 절감을 위한 다운사이징

1. m5 인스턴스 계열 비교

db.m5.12xlarge의 주요 스펙

  • vCPU: 48개
  • RAM: 192GiB

m5 계열에서 다운사이징을 고려할 수 있는 옵션:

인스턴스 타입 vCPU RAM 상대적인 비용

db.m5.8xlarge 32 128GiB 약 33% 절감
db.m5.4xlarge 16 64GiB 약 66% 절감
db.m5.2xlarge 8 32GiB 약 83% 절감
db.m5.xlarge 4 16GiB 약 92% 절감

2. 다운사이징 시 고려사항

  1. 현재 CPU 사용률
    • CPU 사용률이 30%라면, 현재 리소스의 약 1/3 정도만 사용 중.
    • db.m5.4xlarge 또는 db.m5.2xlarge로 줄이는 것이 적절할 수 있다.
  2. 메모리 사용량
    • RDS는 캐싱에 메모리를 활용하므로, 메모리가 부족하면 디스크 I/O가 증가해 성능에 영향을 줄 수 있기에 확인해야함.
    • CloudWatch에서 FreeableMemory 메트릭을 확인하여 메모리 사용량이 여유 있는지 확인.
  3. 스토리지 및 IOPS
    • 인스턴스 크기에 따라 프로비저닝된 IOPS 제한이 달라질 수 있음.
    • 현재 사용 중인 디스크 성능이 충분한지 검토 필요.
  4. 네트워크 트래픽
    • 다운사이징 후 네트워크 대역폭이 줄어들 수 있으므로, 트래픽 요구 사항 확인.

3. 단계적 다운사이징 전략

  • 한 번에 너무 작은 인스턴스로 변경하면 성능 저하 위험이 있으므로, 점진적으로 다운사이징.
  1. Step 1: db.m5.8xlarge로 변경 후 CPU와 메모리 사용률 모니터링.
  2. Step 2: 사용률이 여전히 낮다면 db.m5.4xlarge로 추가 다운사이징.
  3. 필요 시, 추가로 db.m5.2xlarge까지 시도.

4. 변경 방법

  1. AWS 콘솔에서 RDS 인스턴스를 선택.
  2. Modify(수정) 클릭.
  3. 새로운 인스턴스 클래스 선택 (예: db.m5.4xlarge).
  4. 유지보수 창(maintenance window) 동안 변경하거나 즉시 적용.
  5. 변경 후, CloudWatch에서 성능 모니터링.

5. 비용 절감 예상

인스턴스 타입 시간당 비용 (us-east-1, On-Demand 기준)

db.m5.12xlarge $2.304
db.m5.8xlarge $1.536
db.m5.4xlarge $0.768
db.m5.2xlarge $0.384

db.m5.8xlarge로 다운사이진하면 약 33**% 비용 절감 예상**.

db.m5.4xlarge로 다운사이징하면 약 66% 비용 절감 예상.

6. 추가 최적화

  • Aurora로 마이그레이션 고려: 워크로드에 따라 Aurora가 비용 대비 더 나은 성능을 제공할 수 있음.
  • Reserved Instance 또는 Savings Plan 활용: 장기적으로 특정 인스턴스 사용 계획이 있다면 예약 인스턴스로 비용을 더 절감 가능.

7. 결론

  • db.m5.4xlarge로 다운사이징 가능할 것으로 판단됨.
  • db.m5.4xlarge로 다운사이징하면 약 66% 비용 절감이 가능할 것.

'개발공부 > AWS' 카테고리의 다른 글

RDS 화이트리스트 설정하기  (0) 2025.02.13
EC2 크기에 따른 비용 절감  (0) 2025.02.13
EC2 배포 - Shell Script  (0) 2025.02.13
GCP(Google Cloud Platform)란?  (0) 2025.02.13
AWS vs GCP 의 장단점과 차이점  (0) 2025.02.13