AWS 기술 블로그
새로운 작업 관측성 지표를 사용하여 AWS Glue 작업에 대한 모니터링 및 디버깅 강화, 2부: Grafana를 사용한 실시간 모니터링
이 글은 AWS Big Data Blog에 게시된 Enhance monitoring and debugging for AWS Glue jobs using new job observability metrics, Part 2: Real-time monitoring using Grafana by Noritaka Sekiyama를 한국어 번역 및 편집하였습니다.
문제를 조기에 파악하고 중단을 최소화하려면 데이터 파이프라인을 실시간으로 모니터링하는 것이 중요합니다. AWS Glue는 AWS Glue를 기반으로 구축된 데이터 통합 파이프라인에 대한 귀중한 통찰력을 제공하는 AWS Glue 작업 관측성 지표 출시를 통해 이를 더욱 간단하게 만들었습니다. 그러나 여러 작업에 걸쳐 핵심 성과 지표를 추적해야 할 수도 있습니다. 이 경우 동일한 지표를 시각화하고 개별 문제를 드릴다운할 수 있는 대시보드가 대규모로 모니터링하는 효과적인 솔루션이 될 수 있습니다.
이 게시물에서는 Amazon Managed Grafana를 사용하여 AWS Glue 작업 관측성 지표를 Grafana와 통합하는 방법을 안내합니다. AWS Glue 작업의 오류 클래스 및 처리량 모니터링에 대한 두 가지 사용 사례와 함께 주요 통찰력을 표시하는데 사용할 수 있는 지표 및 차트 유형에 대해 논의합니다.
이 게시물을 읽고 계시다면 다음 사항에도 관심이 있으실 것입니다.
- 새로운 작업 관측성 지표를 사용하여 AWS Glue 작업에 대한 모니터링 및 디버깅 향상
- 새로운 작업 관찰 지표를 사용하여 AWS Glue 작업에 대한 모니터링 및 디버깅 향상, 3부: Amazon QuickSight를 사용한 시각화 및 추세 분석
솔루션 개요
Grafana는 저장된 위치에 관계없이 지표를 쿼리, 시각화, 경고 및 이해할 수 있는 오픈 소스 시각화 도구입니다. Grafana를 사용하면 시각적으로 풍부한 데이터 기반 대시보드를 생성, 탐색 및 공유할 수 있습니다. 새로운 AWS Glue 작업 관측성 지표는 실시간 모니터링 목적으로 Grafana와 쉽게 통합될 수 있습니다. 작업자 활용도, 왜곡도(skewness, 데이터 분포의 비대칭 정도), I/O 비율, 오류와 같은 지표는 읽기 쉬운 Grafana 대시보드에 캡처되고 시각화됩니다. Grafana와의 통합은 필요에 맞게 파이프라인 상태에 대한 사용자 정의 보기를 구축할 수 있는 유연한 방법을 제공합니다. 관측성 지표는 이전 AWS Glue에서는 불가능했던 모니터링 기능을 제공합니다. 중요한 데이터 통합 파이프라인을 위해 AWS Glue를 사용하는 회사는 파이프라인이 효율적으로 실행되고 있다는 확신을 가질 수 있습니다.
AWS Glue 작업 관측성 지표는 Amazon CloudWatch 지표로 표시됩니다. Amazon Managed Grafana를 프로비저닝 및 관리하고 지정된 지표에 대해 CloudWatch 플러그인을 구성할 수 있습니다. 다음 다이어그램은 솔루션 아키텍처를 보여줍니다.
솔루션 구현
솔루션을 설정하려면 다음 단계를 완료하세요.
- Amazon Managed Grafana 워크스페이스을 설정합니다.
- 워크스페이스에 로그인합니다.
- 관리를 선택합니다.
- 새 데이터 소스 추가를 선택합니다.
- CloudWatch를 선택합니다.
- 기본 리전에서 원하는 AWS 리전을 선택합니다.
- 사용자 지정 지표의 네임스페이스에 Glue를 입력합니다.
- 저장 및 테스트를 선택합니다.
이제 CloudWatch 데이터 소스가 등록되었습니다.
- 데이터 소스로 다음 URL을 복사합니다.
https://g-XXXXXXXXXX.grafana-workspace.<region>.amazonaws.com/datasources/edit/<data-source-ID>/
다음 단계는 JSON 템플릿 파일을 준비하기 위한 것입니다.
- Grafana 템플릿을 다운로드합니다.
- JSON 파일의
<data-source-id>
를 Grafana 데이터 소스 ID로 바꿉니다.
마지막으로 대시보드를 구성합니다.
- Grafana 콘솔에서 대시보드를 선택합니다.
- 새로 만들기 메뉴에서 가져오기를 선택합니다.
- JSON 파일을 업로드하고 가져오기를 선택합니다.
Grafana 대시보드는 다음 스크린샷과 같이 AWS Glue 관측성 지표를 시각화합니다.
샘플 대시보드에는 다음 차트가 있습니다.
- [Reliability] Job Run Errors Breakdown
- [Throughput] Bytes Read & Write
- [Throughput] Records Read & Write
- [Resource Utilization] Worker Utilization
- [Job Performance] Skewness
- [Resource Utilization] Disk Used (%)
- [Resource Utilization] Disk Available (GB)
- [Executor OOM] OOM Error Count
- [Executor OOM] Heap Memory Used (%)
- [Driver OOM] OOM Error Count
- [Driver OOM] Heap Memory Used (%)
작업 실패 원인 분석
iot_data_processing
작업의 작업 실행 실패 원인을 분석해 보겠습니다.
먼저 [Reliability] Job Run Errors Breakdown 원형 차트를 살펴보세요. 이 원형 차트는 가장 일반적인 오류를 빠르게 식별합니다.
그런 다음 iot_data_processing 작업 이름으로 필터링하여 이 작업에 대한 일반적인 오류를 확인하세요.
실패의 대부분(75%)이 glue.error.DISK_NO_SPACE_ERROR
로 인한 것임을 알 수 있습니다.
다음으로, 작업 실행 중 드라이버가 사용한 디스크 공간을 이해하려면 [Resource Utilization] Disk Used (%) 선형 차트를 살펴보세요. 이 작업의 경우 녹색 선은 드라이버의 디스크 사용량을 나타내고 노란색 선은 executor의 평균 디스크 사용량을 나타냅니다.
executor에서 디스크를 100% 사용한 경우가 3번이나 있었던 것을 확인할 수 있습니다.
다음으로 [Throughput] Records Read & Write 선형 차트를 보고 데이터 볼륨이 변경되었는지, 디스크 사용량에 영향을 미쳤는지 확인하세요.
차트는 이 범위의 시작 부분에서 약 40억 개의 레코드가 읽혀졌음을 보여줍니다. 그러나 정점에는 약 630억 개의 레코드가 읽혔습니다. 이는 수신되는 데이터 볼륨이 크게 증가하여 작업자 노드의 로컬 디스크 공간 부족이 발생했음을 의미합니다. 이러한 경우 작업자 수를 늘리거나 Auto Scaling을 활성화하거나 더 큰 작업자 유형을 선택할 수 있습니다.
이러한 제안을 구현한 후에는 디스크 사용량이 낮아지고 작업이 성공적으로 실행되는 것을 볼 수 있습니다.
(선택 사항) 교차 계정 설정 구성
선택적으로 교차 계정 설정을 구성할 수 있습니다. 교차 계정 지표는 CloudWatch 교차 계정 관측성에 따라 달라집니다. 이 설정에서는 다음과 같은 환경이 예상됩니다.
- AWS 계정은 AWS Organizations에서 관리되지 않습니다.
- 두 개의 계정이 있습니다. 하나는 Grafana가 있는 모니터링 계정으로 사용되고, 다른 계정은 AWS Glue 기반 데이터 통합 파이프라인이 있는 소스 계정으로 사용됩니다.
이 환경에 대한 교차 계정 설정을 구성하려면 각 계정에 대해 다음 단계를 완료하십시오.
모니터링 계정
모니터링 계정을 구성하려면 다음 단계를 완료하세요.
- 모니터링에 사용할 계정으로 AWS Management Console에 로그인합니다.
- CloudWatch 콘솔의 탐색 창에서 설정을 선택합니다.
- 모니터링 계정 구성에서 구성을 선택합니다.
- 데이터 선택에서 지표를 선택합니다.
- 소스 계정 나열에 이 모니터링 계정이 볼 소스 계정의 AWS 계정 ID를 입력합니다.
- 소스 계정을 식별하는데 도움이 되는 레이블 정의에서 계정 이름을 선택합니다.
- 구성을 선택합니다.
이제 계정이 모니터링 계정으로 성공적으로 구성되었습니다.
- 모니터링 계정 구성에서 계정을 연결하기 위한 리소스를 선택합니다.
- 모든 계정을 선택하여 개별 계정을 소스 계정으로 설정하기 위한 URL을 가져옵니다.
- URL 복사를 선택합니다.
다음 단계에서는 소스 계정에서 복사한 URL을 사용하게 됩니다.
소스 계정
소스 계정을 구성하려면 다음 단계를 완료하세요.
- 소스 계정을 사용하여 콘솔에 로그인합니다.
- 모니터링 계정에서 복사한 URL을 입력하세요.
일부 정보가 입력된 CloudWatch 설정 페이지를 볼 수 있습니다.
- 데이터 선택에서 지표를 선택합니다.
- 모니터링 계정 싱크 ARN 입력에서 ARN을 변경하지 마세요.
- 소스 계정을 식별하는데 도움이 되는 레이블 정의 섹션은 모니터링 계정에서 선택한 라벨로 미리 채워져 있습니다. 원하는 경우 수정을 선택하여 변경하세요.
- 링크를 선택합니다.
- 상자에 확인을 입력하고 확인을 선택합니다.
이제 소스 계정이 모니터링 계정에 연결되도록 구성되었습니다. 소스 계정에서 내보낸 지표는 모니터링 계정의 Grafana 대시보드에 표시됩니다.
자세한 내용은 CloudWatch 교차 계정 관측성을 참조하십시오.
고려사항
이 솔루션을 사용할 때 고려해야 할 사항은 다음과 같습니다.
- Grafana 통합은 실시간 모니터링을 위해 정의됩니다. 작업에 대한 기본적인 이해가 있다면 Grafana 대시보드에서 성능, 오류 등을 모니터링하는 것이 간단할 것입니다.
- Amazon Managed Grafana는 AWS IAM Identify Center에 의존합니다. 즉, AWS Identity and Access Management(IAM) 사용자 및 역할 뿐만 아니라 SSO(Single Sign-On) 사용자도 별도로 관리해야 합니다. 또한 AWS 콘솔에서 또 다른 로그인 단계가 필요합니다. Amazon Managed Grafana 가격 모델은 작업공간당 활성 사용자 라이선스에 따라 다릅니다. 사용자가 많을수록 요금이 더 많이 부과될 수 있습니다.
- 그래프 선은 작업별로 시각화됩니다. 모든 작업의 라인을 보려면 컨트롤에서 ALL을 선택하면 됩니다.
결론
AWS Glue 작업 관측성 지표는 데이터 파이프라인 성능을 실시간으로 모니터링할 수 있는 강력한 새로운 기능을 제공합니다. 주요 지표를 CloudWatch로 스트리밍하고 Grafana에서 시각화함으로써 이전에는 불가능했던 더욱 세밀한 가시성을 확보할 수 있습니다. 이 게시물에서는 Amazon Managed Grafana를 사용하여 관측성 지표를 활성화하고 데이터를 Grafana와 통합하는 것이 얼마나 간단한지 보여주었습니다. 우리는 사용 가능한 다양한 지표와 실행 가능한 통찰력을 표면화하기 위해 맞춤형 Grafana 대시보드를 구축하는 방법을 살펴보았습니다.
관측성은 이제 AWS의 강력한 데이터 조정에 필수적인 부분입니다. 실시간으로 데이터 통합 추세를 모니터링하는 기능을 통해 비용, 성능 및 안정성을 최적화할 수 있습니다.