[AWS RDS] Devops Guru for RDS 기능을 사용하여 데이터베이스의 이상 현상을 사전에 감지하기
l Version : Devops Guru for RDS
이전 포스트에서 AWS Performance Insight(성능 개선 도우미)를 사용하여 데이터베이스 운영에 필요한 다양한 지표 및 쿼리 관련 모니터링에 대해서 살펴 보았다.
l [AWS RDS] Performance Insight로 DB부하의 원인 찾기 : https://sungwookkang.com/1503
이러한 모니터링은 데이터를 수집하고 관리자가 대시보드를 통한 정보 확인후 문제점 여부를 확인하는데 매우 큰 도움이 된다. 하지만 조금 더 발전시켜 이러한 이상 현상을 사전에 탐지하고 진단 결과를 알려준다면 조금 더 빠르게 사전 대응이 가능하지 않을까 생각해 볼 수 있다. 물론 AWS CloudWatch를 사용하여 이상 패턴 발견 시 SNS 등을 사용하여 알림을 보낼 수도 있지만, 알림은 단순 임계치 값에서 변경이 발생하였을 경우에만 가능 하기 때문에 아래 솔루션을 사용하면 조금 더 스마트한 모니터링 및 병목 구간에 대한 진단이 가능하다.
Amazon DevOps Guru for RDS는 기계 학습(ML)을 기반으로 하는 서비스로 모든 AWS RDS 엔진에서 사용할 수 있으며 이를 통해 애플리케이션의 운영 성능 및 가용성을 쉽게 개선할 수 있다.
l Amazon DevOps Guru for RDS : https://aws.amazon.com/ko/devops-guru/features/devops-guru-for-rds/
이 서비스는 ML을 사용하여 호스트 리소스의 과도한 사용, 데이터베이스 병목 현상 또는 SQL 쿼리의 오작동과 같은 광범위한 성능 관련 데이터베이스 문제를 자동으로 식별하고 분석한다. 또한 발견한 문제를 수정하기 위한 가이드라인을 제공한다. 이상 현상이 감지되면 콘솔에서 결과를 확인할 수 있을 뿐만 아니라 Amazon Event Bridge또는 Amazon SNS를 사용하여 알림을 보낼 수 있다.
DevOps Guru for RDS를 사용하기 위해서는 Amazon Console에서 RDS 성능 개선 도우미(Performance Insight)를 활성화 후 DevOps Guru 콘솔로 이동하여 활성화 한다.
RDS용 DevOps Guru는 데이터베이스 로드(DB Load) 성능 메트릭에서 이상 감지를 사용하여 문제를 감지한다. DB 로드는 AAS(Average Active Sessions) 단위로 측정된다. DB 로드는 데이터베이스의 활동 수준을 측정하므로 DB 부하가 높으면 성능 문제가 발생할 수 있다. 이 메트릭은 가상 CPU(vCPU) 수와 비교할 수 있으며, DB 부하가 이 수보다 높으면 문제가 발생할 수 있다.
아래 그림은 DevOps Guru for RDS리포트 결과로, 그래프는 AAS에서 대부분이 테이블 또는 CPU에 대한 액세스를 기다리고 있음을 보여준다. 대기 이벤트는 현재 실행 중인 SQL이 기다리고 있는 상태로 가장 일반적인 이유는 CPU를 기다리거나 읽기 또는 쓰기를 기다리거나 잠긴 리소스를 기다리는 상태이다. Top SQL 차원은 DB 로드에 가장 많이 기여하는 쿼리를 보여준다.
DevOps Guru for RDS 분석 페이지에서는 문제의 원인과 해결을 위한 몇 가지 권장 사항도 보여주는데 위 메트릭에서의 이상 징후는 높은 로드 대기 이벤트와 CPU 용량 초과라는 두 가지 문제가 감지되었다. 그리고 아래와 같은 분석결과는 나타내었다.
l IO 및 CPU 대기 유형에 대한 27개의 AAS가 있는 고부하 대기 이벤트를 가 있으며 전체 DB 로드의 99%이다.
l 실행 중인 작업이 6개 프로세스를 초과했음을 알려준다. 이 데이터베이스에는 2개의 vCPU만 있으며 권장되는 실행 프로세스 수는 최대 4개(vCPU 2개)여야 한다.
또 다른 예외에서 그래프는 대기 이벤트의 로드가 높았고 하나의 SQL 쿼리에 추가 조사가 필요한 것으로 나타났다. SQL 다이제스트 ID를 클릭하면 정확한 SQL 쿼리를 볼 수도 있다. 예를 들어 대기 이벤트 wait/io/table/sql/handler 또는 문제 해결 문서 보기 링크에서 대기 이벤트를 클릭하면 자세한 정보를 많이 얻을 수 있다.
이 외에도 데이터베이스 분석을 보려면 Insight 페이지로 이동하여 분석 정보를 확인할 수 있다.
[참고자료]
- Amazon DevOps Guru for RDS : https://aws.amazon.com/ko/devops-guru/features/devops-guru-for-rds/
- Amazon DevOps Guru for RDS to Detect, Diagnose, and Resolve Amazon Aurora-Related Issues using ML : https://aws.amazon.com/ko/blogs/aws/new-amazon-devops-guru-for-rds-to-detect-diagnose-and-resolve-amazon-aurora-related-issues-using-ml/
2022-04-25 / Sungwook Kang / http://sungwookkang.com
AWS, RDS, Performance Insight, 성능 개선 도우미, DB 모니터링, 쿼리 모니터링, DB 성능 개선, DevOps Guru for RDS, 사전탐지, 장애방지, 장애대응
'AWS' 카테고리의 다른 글
[AWS Aurora] binlog I/O cache 도입으로 Aurora MySQL (2.10 later) 성능 향상 (0) | 2022.05.11 |
---|---|
[AWS EC2] Region, Availability Zone, AWS Local Zone, Wavelength, AWS Outposts 개념 정리 (0) | 2022.05.08 |
[AWS RDS] Performance Insight로 DB부하의 원인 찾기 (0) | 2022.04.24 |
[AWS S3] Amazon s3 연결 URI 형식(s3://, s3a://, s3n://)에 다른 차이점은 무엇일까? (0) | 2022.04.20 |
[AWS RDS] AWS RDS for Oracle 교차 리전 자동 백업 – Part 2/2 (0) | 2022.04.18 |