본문 바로가기
빅데이터,클라우드

Datadog으로 AWS MySQL 성능 저하의 원인을 찾아내는 방법

by 데이널 2024. 10. 24.

'데이널'의 컨텐츠에 포함된 정보는?

     

    AWS의 rds를 사용할 경우 갑자기 데이터베이스가 느려졌는데 원인을 모르는 경우가 있습니다. 여러분도 이런 고민들을 해보신 적 있나요? 저도 처음 AWS RDS를 운영할 때 비슷한 어려움을 겪었답니다.

     

    오늘은 Datadog을 활용해서 MySQL 성능 저하의 원인을 쉽게 찾아내는 방법을 알아 보도록 하겠습니다. Datadog으로 데이터베이스의 상태를 정확하게 파악할 수 있습니다.

     

    Datadog 대시보드 화면
    Datadog 대시보드 화면

     

    왜 Datadog으로 AWS MySQL을 모니터링해야 할까요?

    CloudWatch도 좋은 모니터링 도구지만, Datadog은 더 많은 것을 보여줄 수 있는데요. 예를 들어, 게임의 미니맵만 보는 것과 전체 맵을 보는 것의 차이라고 할까요. 

     

    Datadog의 장점은 실시간 분석이 가능합니다. 문제가 발생하면 즉시 알 수 있죠. Datadog을 도입한 후 데이터베이스 문제 해결 시간을 60% 단축한 사례도 있습니다. 

     

    통합된 보기: AWS 인프라 전체를 한눈에 볼 수 있음

    맞춤형 알림: 중요한 문제가 생기면 바로 알림

    성능 최적화: 문제의 원인을 빠르게 찾아낼 수 있음

     

    Datadog 대시보드 만들기 및 해석

    먼저, Datadog Agent를 설치해야 합니다. EC2 인스턴스에 Agent를 설치하는 건 간단합니다. 단 하나의 명령어로 설치됩니다. 그리고 MySQL과 연동하기 위한 설정도 필요합니다.

     

    1. 필수 모니터링 항목

    - CPU 사용률 그래프

    - 메모리 사용량 추이

    - 초당 쿼리 수 (QPS)

    - 활성 연결 수

    - 슬로우 쿼리 목록

     

    mysql.d/conf.yaml 파일

    # options:   
      # replication: false
      # replication_channel: <CHANNEL_NAME>     
      # replication_non_blocking_status: false
      # galera_cluster: false
      # extra_status_metrics: true
      # extra_innodb_metrics: true
      # extra_performance_metrics: true
      # schema_size_metrics: false
      # disable_innodb_metrics: false

     

    특히 Datadog이 제공하는 RDS 향상된 모니터링 기능이 있습니다. 이 기능을 사용하면 50개 이상의 상세 지표를 1초 단위로 확인할 수 있습니다. 

     

    2. 핵심 메트릭 해석

    CPU 사용률, 메모리 사용량, 쿼리 실행 시간, 연결 수 등 이제 가장 중요한 부분입니다. 수집된 데이터를 어떻게 해석해야 할까요? 각 지표별 체크 포인트를 이용해서 rds에 이상이 있는지 모니터링 해야 합니다. 

     

    - CPU 사용률이 80% 이상 지속되면 주의가 필요

    - 메모리 사용량이 90% 이상이면 위험 신호

    - 쿼리 실행 시간이 1초 이상이면 최적화가 필요

    - 연결 수가 갑자기 증가하면 애플리케이션 확인이 필요

     

    마치며

    제 경험을 말하자면 프로젝트에서도 갑자기 서버가 느려지는 문제가 있었습니다. Datadog으로 확인해보니 특정 시간대에 CPU 사용률이 급증하는 것을 발견했고, 원인을 추적해보니 최적화되지 않은 배치 작업이 문제였습니다. 

     

    Datadog으로 AWS MySQL을 성능 저하 원인을 찾아내는데 활용할 수 있습니다. 가격은 비싸지만 그 만큼 제공하는 기능이 좋았습니다. 시작이 반이라는 말처럼, 지금 바로 Datadog으로 모니터링을 시작해보는 건 어떨까요?