Amazon Web Services 한국 블로그

Amazon DevOps Guru for RDS 출시 – ML 기반Amazon Aurora 관련 문제 탐지, 진단 및 해결

오늘은 Amazon DevOps Guru를 위한 새로운 기능인 DevOps Guru for RDS를 발표합니다. 이를 통해 개발자는 Amazon Aurora에서 성능 및 운영 문제를 쉽게 탐지, 진단 및 해결할 수 있습니다.

가용성, 확장성 및 내구성이 뛰어나서, 현재 수십만 명의 고객이 Amazon Aurora를 사용하고 있습니다. 그러나 애플리케이션의 규모와 복잡성이 커짐에 따라 이러한 고객은 운영 및 성능 문제를 신속하게 탐지하고 해결하는 것이 더욱 어려워지고 있습니다.

작년 re:Invent에서 기계 학습(ML)을 사용하여 데이터베이스 문제를 비롯한 애플리케이션 문제를 자동으로 탐지하고 고객에게 알리는 서비스인 DevOps Guru를 발표했습니다. 오늘은 Amazon Aurora 데이터베이스를 사용하는 개발자가 데이터베이스 성능 문제를 대규모로 빠르게 탐지, 진단 및 해결할 수 있도록 지원하는 DevOps Guru for RDS를 발표합니다. 이제 개발자는 데이터베이스 성능 문제의 정확한 원인을 파악할 수 있는 충분한 정보를 얻게 됩니다. 이번 출시로 개발자와 엔지니어는 성능 관련 데이터베이스 문제를 발견하고 해결하는 데 많은 시간을 절약할 수 있습니다.

DevOps Guru for RDS는 ML을 사용하여 호스트 리소스의 과도한 사용률, 데이터베이스 병목 현상 또는 SQL 쿼리의 잘못된 동작과 같은 광범위한 성능 관련 데이터베이스 문제를 자동으로 식별하고 분석합니다. 또한 발견된 문제를 해결하기 위한 솔루션도 권장합니다. 이 기능을 사용하기 위해 데이터베이스 또는 ML 전문가일 필요는 없습니다.

문제가 탐지되면 DevOps Guru for RDS가 DevOps Guru 콘솔에 결과를 표시하고 Amazon EventBridge 또는 Amazon Simple Notification Service(SNS)를 사용하여 알림을 보냅니다. 이를 통해 개발자는 문제를 자동으로 관리하고 실시간으로 조치를 취할 수 있습니다.

DevOps Guru for RDS의 작동 방식
DevOps Guru for RDS는 데이터베이스 부하(DB 부하) 성능 지표에서 이상 탐지 기능을 사용하여 문제를 탐지합니다. DB 부하는 평균 활성 세션(AAS) 단위로 측정됩니다. DB 부하는 데이터베이스의 활동 수준을 측정하므로 데이터베이스 상태를 이해하는 데 유용한 지표가 됩니다. DB 부하가 높으면 성능 문제가 발생할 수 있습니다. 이 지표는 가상 CPU(vCPU) 수와 비교할 수 있으며 DB 부하가 이 수치보다 높으면 문제가 발생할 수 있습니다.

이 지표에 가장 유용한 차원은 대기 이벤트와 최상위 SQL입니다. 대기 이벤트는 현재 실행 중인 SQL이 대기 중인 시스템 조건을 의미합니다. 명령문이 대기하는 가장 일반적인 이유는 명령문이 CPU를 기다리고 있거나, 읽기 또는 쓰기를 기다리고 있거나, 잠긴 리소스를 기다리고 있기 때문입니다. 최상위 SQL 차원은 DB 부하에 가장 많이 기여하는 쿼리를 보여줍니다.

다음 이미지는 DevOps Guru for RDS가 보고한 결과를 보여주는 예입니다. 그래프는 AAS의 대부분이 테이블이나 CPU에 대한 액세스를 기다리고 있음을 보여줍니다.

예외 항목 탐지의 예
DevOps Guru for RDS 분석 페이지를 계속 스크롤하면 문제의 원인과 문제 해결을 위한 몇 가지 권장 사항을 확인할 수 있습니다. 이 특정 예에서는 높은 부하 대기 이벤트와 CPU 용량 초과라는 두 가지 문제가 탐지되었습니다.

DevOps Guru for RDS는 이러한 문제에 대해 좀 더 심층적으로 살펴봅니다. 먼저 IO 및 CPU 대기 유형에 대해 27개의 AAS가 있는 높은 부하 대기 이벤트를 살펴봅니다. 이러한 이벤트는 총 DB 부하의 99%를 차지합니다.

둘째, 실행 중인 작업이 6개의 프로세스를 초과했음을 알려줍니다. 이 데이터베이스에는 vCPU가 2개만 있으며 권장되는 실행 프로세스 수는 최대 4개(vCPU 2개)여야 합니다. DevOps Guru for RDS는 이러한 문제를 해결하기 위한 권장 사항도 제시합니다.

권장 사항

또 다른 예외에서 그래프는 대기 이벤트의 부하가 높다는 것을 보여 주며 추가 조사가 필요한 SQL 쿼리 하나가 발견되었습니다. SQL 다이제스트 ID를 클릭해도 정확한 SQL 쿼리를 볼 수 있습니다. 분석 정보의 분석 및 권장 사항 섹션에는 추가 조사 및 문제 해결 방법에 대한 정보가 가득합니다. 예를 들어, 대기 이벤트인 wait/io/table/sql/handler에서 또는 문제 해결 문서 보기 링크에서 대기 이벤트를 클릭하면 많은 세부 정보를 얻을 수 있습니다.

분석 및 권장 사항

DevOps Guru for RDS 시작하기
DevOps Guru의 이 새로운 기능을 시작하려면 Amazon Aurora DB 인스턴스에 대해 성능 개선 도우미가 활성화되어 있어야 합니다. 이 성능 개선 도우미는 MySQL 및 PostgreSQL과의 호환성을 통해 Amazon Aurora를 지원합니다. 성능 개선 도우미를 활성화하는 방법에 대한 지침은 성능 개선 도우미 활성화 및 비활성화를 참조하세요.

다음 단계는 DevOps Guru가 AWS 리소스 모니터링을 시작할 수 있도록 하는 것입니다. DevOps Guru로 다루고자 하는 리소스를 지정할 수 있습니다.

이미 DevOps Guru를 사용 중인 경우 Amazon Aurora 데이터베이스 리소스에 대한 새로운 분석 정보가 있을 때마다 콘솔에서 확인할 수 있습니다.

자세한 데이터베이스 분석을 보려면 [분석 정보(Insight)] 페이지로 이동하여 DB 부하 집계 지표 아래에 있는 새 [분석 보기(View analysis)] 버튼을 선택합니다. 이 버튼을 누르면 DevOps Guru for RDS의 자세한 분석으로 이동합니다.

분석 보기

요금 및 가용성
DevOps Guru for RDS는 DevOps Guru가 RDS 리소스에 대해 고객에게 부과하는 기존 요금의 일부로, 추가 비용 없이 고객에게 제공됩니다.

DevOps Guru for RDS는 DevOps Guru가 사용 가능한 미국 동부(오하이오), 미국 동부(버지니아 북부), 미국 서부(오레곤), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄), 유럽(프랑크푸르트), 유럽(아일랜드) 및 유럽(스톡홀름)에서 사용할 수 있습니다.

DevOps Guru for RDS에 대해 자세히 알아보고 AWS re:Invent “Amazon DevOps Guru for RDS로 성능 문제를 자동으로 탐지 및 해결”(세션 ID 15877) 강연 내용을 확인해 보세요.

Marcia