RDS의 Performance Insights에서 DBLoad CPU 매트릭을 취득하여 vCPU(활성 세션) 초과 시 알람 전송

RDS의 Performance Insights에서 DBLoad CPU 매트릭을 취득하여 vCPU(활성 세션) 초과 시 알람이 전송되도록 하는 방법에 대해서 정리해 봤습니다.
2023.05.06

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 RDS의 Performance Insights에서 DBLoad CPU 매트릭을 취득하여 vCPU(활성 세션) 초과 시 알람이 전송되도록 하는 방법에 대해서 정리해 봤습니다.

Performance Insights란?

Performance Insights(성능 개선 도우미)는 기존 Amazon RDS 모니터링 기능을 확장한 것으로서 데이터베이스 성능을 표시하여 분석하는 데 효과적입니다.

대시보드에서 데이터베이스 부하 차트는 세션 정보를 수집, 집계 및 표시합니다. 활성 세션이 최대 CPU를 초과하는지 확인하려면 최대 vCPU 선과의 관계를 확인합니다. 최대 vCPU 값은 DB 인스턴스에서 vCPU(가상 CPU) 코어의 수로 결정됩니다.

Performance Insights(성능 개선 도우미)의 경우 콘솔 환경에서 생성할 시 모니터링에서「성능 인사이트 켜기 클러스터의 모든 인스턴스에 대해」를 체크하면 활성화할 수 있습니다.

EnablePerformanceInsights: true # Performance Insight

CloudFormation의 경우 EnablePerformanceInsights를 true로 설정하면 활성화할 수 있습니다.

RDS 콘솔 화면에서 확인해 보면 모니터링에서「성능 개선 도우미」버튼이 활성화 된 것을 확인할 수 있습니다.

※ Performance Insights(성능 개선 도우미)를 비활성화 한 경우「성능 개선 도우미」버튼이 비활성화 됩니다.

DB 인스턴스 타입에 따른 활성 세션 수

성능 개선 도우미의 핵심 지표는 DBLoad이며, DBLoad를 통해 현재 데이터베이스의 활성 세션을 감시할 수 있습니다.

※ 여기서 활성 세션이란 DB 엔진에 작업을 제출하여 현재 응답 대기 중인 연결 세션을 말합니다.

Performance Insights(성능 개선 도우미)의 CloudWatch 매트릭 정보는 다음과 같습니다.

    • DBLoad
    • DBLoadCPU
    • DBLoadNonCPU

여기서 DBLoadCPU는 CPU상에서 활성화되고 실행 가능한 데이터베이스 연결의 수를 나타냅니다.

연결의 수가 vCPU의 수보다 일관되게 높을 경우 CPU에 대한 경합이 있음을 알 수 있습니다.

이 경우 호스트의 CPU 용량을 늘리거나 데이터베이스에 액세스하는 코드를 보다 효율적으로 튜닝하는 것이 좋습니다.

따라서 DBLoadCPU가 호스트상의 vCPU를 초과했을 때 알람이 전송되도록 설정하여 호스트상의 CPU 리소스가 포화되었을 때를 확인할 수 있습니다.

그러면 중요한 부분은 내 RDS 인스턴스 타입의 vCPU가 몇인지를 파악하고, 이 vCPU를 넘었을 시 이메일 등으로 통지하도록 설정 해야합니다.

예를 들면 다음과 같습니다.

이번 RDS 스펙이 아래와 같다면, 1분 동안 vCPU 수 5를 넘었을 때 알림을 주는 방식으로 설정할 수 있습니다.

  • 인스턴스 유형 : db.m6g.xlarge
  • vCPU : 4

이번 블로그에서는 테스트용으로 RDS를 생성했기 때문에 인스턴스 타입은 최저한으로 잡고 생성했습니다.

  • 인스턴스 유형 : db.m5.large
  • vCPU : 2

인스턴스 타입에 관한 내용은 아래 문서를 참고해 주세요.

Performance Insights(성능 개선 도우미)에서 다음과 같이 활성 세션을 확인할 수 있습니다.

CloudWatch 알람 설정

이제 활성 세션, vCPU에 대해서 확인 했으니, CloudWatch 알람을 설정해 보도록 하겠습니다.

  • CloudWatch 콘솔 화면에서「경보 상태」를 클릭합니다.
  • 「경보 생성」을 클릭합니다.

  • 「지표 선택」을 클릭합니다.

  • 「DBLoad」를 검색합니다.
  • 알람을 생성할 해당 데이터베이스의 지표(DBLoadCPU)를 선택합니다.
  • 「지표 선택」을 클릭합니다.

  • 통계는 평균으로 하고, 기간은 1분으로 설정합니다.
  • 임계값 유형은「정적」을 선택합니다.
  • 「보다 크거나 같음」을 선택합니다.
  • 3보다 클 경우 알람이 오도록 설정합니다.
  • 「다음」을 클릭합니다.

현재 vCPU가 2이기 때문에 1분 동안 임계값이 3 이상일 경우 알람이 오도록 설정합니다.

  • 「경보 상태」를 선택합니다.
  • 「기존 SNS 주제 선택」을 선택합니다.

기존에 설정한 SNS가 없다면 아래 블로그를 참고해 SNS를 설정해 주세요.

  • 알람 이름을 설정합니다.
  • 「다음」을 클릭하고, 알람 생성을 끝마칩니다.

마지막으로 알람이 생성된 것을 확인할 수 있습니다.

RDS에 접속하는 방법에 대해서는 아래 블로그를 참고해 주세요.

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !