Amazon Web Services 한국 블로그

Amazon DevOps Guru – ML 기반 애플리케이션 오류 및 수정 사항 예측 서비스

오늘, 개발자 및 운영자가 운영 문제를 자동으로 감지하고 수정 사항을 추천하여 애플리케이션 가용성을 쉽게 개선할 수 있는 완전 관리형 운영 서비스인 Amazon DevOps Guru를 발표합니다. DevOps Guru는 Amazon.com 및 Amazon Web Services(AWS)에서 수년간 우수한 운영을 통해 얻은 정보를 기반으로 하는 기계 학습을 적용하여 애플리케이션 지표, 로그, 이벤트 등의 데이터를 자동으로 수집하고 분석함으로써 정상적인 운영 패턴에서 벗어나는 행동을 식별합니다.

행동이 운영 문제 또는 위험으로 식별될 때 DevOps Guru는 문제의 범위와 가능한 원인을 신속하게 파악할 수 있도록 개발자와 운영자에게 문제의 세부 정보를 알려줍니다. DevOps Guru는 문제를 해결하기 위한 지능적인 권장 사항을 제공함으로써 문제 해결 시간을 단축합니다. DevOps Guru를 사용하면 하드웨어나 소프트웨어를 배포할 필요가 없으며 분석한 데이터에 대해서만 비용을 지불하면 됩니다. 선불 비용이나 약정이 없습니다.

분산된 복잡한 아키텍처 및 운영 우수성
애플리케이션이 분산되고 복잡해짐에 따라 운영자는 애플리케이션 가용성을 유지하고 운영 문제를 감지, 디버깅, 해결하는 데 소요되는 시간과 노력을 줄이기 위해 더욱 자동화된 작업 방식이 필요합니다. 예를 들어 잘못된 구성, 균형이 맞지 않는 컨테이너 클러스터, 리소스 고갈 등으로 인해 발생하는 애플리케이션 다운타임은 기업에 상당한 매출 손실을 초래할 수 있습니다.

대부분의 기업에서 개발자들은 지표, 로그, 추적, 이벤트 등 여러 모니터링 도구를 배포 및 관리하고 분석을 위해 다양한 위치에 저장하는 데 시간을 투자해야 합니다. 개발자나 운영자는 로드 밸런서 오류의 급증이나 애플리케이션 요청 비율의 비정상적인 감소와 같은 문제를 알리기 위해 맞춤형 경보를 개발하고 유지 관리하는 데에도 시간을 할애합니다. 문제가 발생할 때 운영자는 한 문제에 대해 여러 개의 알림을 받게 되며 어떤 알림을 우선 처리해야 하는지를 파악하기 위해 알림을 취합하는 데 시간을 써야 합니다.

DevOps Guru 작동 방식
DevOps Guru 기계 학습 모델은 지난 20년 동안 세계 최대 규모의 전자상거래 비즈니스에서 고가용성 애플리케이션을 실행해 온 AWS의 전문 지식을 활용합니다. DevOps Guru는 자동으로 운영 문제를 감지하고, 가능한 원인을 자세히 설명하고, 수정 조치를 권장합니다. DevOps Guru는 Amazon CloudWatch, AWS Config, AWS CloudTrail, AWS CloudFormationAWS X-Ray를 지원하는 여러 소스의 데이터를 통합함으로써 운영 데이터를 검색하고 시각화할 수 있는 단일 콘솔 환경을 고객에게 제공합니다. 따라서 여러 도구를 사용할 필요성이 줄어들게 됩니다.

DevOps Guru 시작하기
DevOps Guru를 활성화하려면 AWS Management Console에 액세스하고 [활성화]을 클릭하기만 하면 됩니다. DevOps Guru를 활성화할 때 IAM 역할을 선택할 수 있습니다. 그리고 분석할 AWS 리소스를 선택합니다. 여기에는 AWS 계정의 모든 리소스 또는 지정된 CloudFormation StackSets만 포함될 수 있습니다. 마지막으로, SNS를 통해 DevOps Guru의 알림을 보내려는 경우 Amazon SNS 항목을 설정할 수 있습니다.

DevOps Guru가 로그를 집계하고 환경을 분석하기 시작합니다. 최대 몇 시간이 걸릴 수 있습니다. 이 그림과 같이 간단한 서버리스 아키텍처가 있다고 가정해 보겠습니다.

시스템에 오류가 발생할 때 운영자는 Amazon API Gateway, AWS Lambda, AWS DynamoDB 중 어디에서 오류가 발생했는지를 조사해야 합니다. 그런 다음 근본 원인을 파악하고 문제 해결 방법을 결정해야 합니다. DevOps Guru를 사용하면 이 프로세스가 쉽고 간단합니다.

개발자가 DevOps Guru의 관리 콘솔에 액세스하면 애플리케이션 내에 구성된 AWS 리소스를 분석하는 동안 생성된 이상 징후의 모음인 통찰력 목록이 표시됩니다. 이 경우에는 Amazon API Gateway, AWS Lambda, Amazon DynamoDB가 이러한 리소스에 해당합니다. 각 통찰력에는 운영 문제를 더 잘 이해하고 해결하는 데 사용할 수 있는 관찰, 권장 사항 및 상황에 맞는 데이터가 포함되어 있습니다.

아래 목록은 통찰력 이름, 상태(종결 또는 진행 중), 심각도, 통찰력이 생성된 시기를 보여줍니다. 로그를 확인하지 않고서도 가장 최근의 문제(line1)에서 스택 내의 Lambda 함수 문제가 문제의 원인이었으며 기간과 관련이 있는 것임을 즉시 알 수 있습니다. 문제가 계속 발생하는 경우 상태가 Ongoing으로 표시됩니다. 이 문제는 일시적이었기 때문에 상태가 Closed로 표시됩니다.

통찰력

첫 번째 통찰력 링크를 클릭하여 가장 최근의 이상 징후를 자세히 살펴보겠습니다. [집계된 지표]와 [그래프로 표시된 이상]라는 두 개의 탭이 있습니다.

Aggregated metrics는 통찰력과 관련된 지표를 표시합니다. 운영자는 지표를 내보낸 리소스를 생성한 AWS CloudFormation 스택 그리고 해당 리소스의 이름과 유형을 볼 수 있습니다. 타임라인의 빨간색 선은 지표가 비정상적인 값을 내보낸 시간 범위를 나타냅니다. 이 경우 운영자는 각 지표에 대해 이상 징후가 발생한 11월 24일의 특정 시간을 볼 수 있습니다.

Graphed anomalies는 통찰력의 이상 징후 각각에 대한 자세한 그래프를 표시합니다. 운영자는 리소스 수준에서 통계별로 이상 징후를 조사하고 살펴볼 수 있습니다. 그래프는 지표 이름별로 그룹화됩니다.

지표

집계된 이상 징후와 그래프로 표시된 이상 징후를 검토함으로써 운영자는 문제가 발생한 시기, 진행 중인지 여부, 영향을 받는 리소스를 확인할 수 있습니다. 늘어난 Lambda 기간이 API Gateway에서 그에 따른 영향을 미치고, API Gateway에서 시간 초과를 일으키고 5XX 오류를 초래하는 것으로 보입니다.

DevOps Guru는 아래 그림과 같이 애플리케이션 구성을 변경한 활동과 연관된 관련 이벤트도 제공합니다.

이벤트

이제 이 문제가 발생하기 2시간 전에 구성이 변경된 것을 확인할 수 있습니다. 그래프에서 11/24 20:30의 점을 클릭하면 자세히 알아보고 해당 변경 사항의 세부 정보를 볼 수 있습니다.

[Ops 이벤트]까지 클릭하면 AWS CloudTrail 로그에서 구성 변경이 두 가지였음이 표시됩니다. 1) Lambda 함수의 동시 프로비저닝 용량이 변경되었고, 2) API 통합 지연 시간에서 통합 제한 시간이 줄어들었습니다.

수정 권장 사항

권장 사항은 운영자에게 Lambda에 대해 프로비저닝된 동시성을 평가할 것을 안내하고 API Gateway에서 오류를 해결하는 방법을 제시합니다. 추가적인 평가 후, 운영자는 이것이 정확하다는 것을 알게 됩니다. 근본 원인은 Lambda 프로비저닝된 동시성 설정과 API Gateway 통합 지연 시간 제한이 일치하지 않기 때문입니다. 마지막 배포에서 Lambda 구성이 업데이트되었을 때 이 애플리케이션이 버스트 트래픽에 응답하는 방식이 변경되었으며 더 이상 API Gateway 제한 시간 내에 맞지 않습니다. 이 오류는 단위 테스트에서 발견될 가능성이 작으며 구성을 업데이트하지 않으면 반복적으로 발생합니다.

DevOps Guru는 Amazon SNS를 통해 이상 징후 알림을 운영자에게 보낼 수 있으며, AWS Systems Manager OpsCenter와 통합되어 고객이 OpsCenter 내에서 통찰력을 직접 받아서 빠르게 문제를 진단하고 해결할 수 있도록 합니다.

지금 바로 평가판 이용 가능
Amazon DevOps Guru 평가판을 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤), EU(아일랜드), 아시아 태평양(도쿄)에서 이용할 수 있습니다. DevOps Guru에 대해 자세히 알아보려면 웹 사이트기술 설명서를 참조하고, 지금 바로 시작하세요.

– Kame