AWS용 Grafana 모니터링 대시보드 설정 ParallelCluster - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS용 Grafana 모니터링 대시보드 설정 ParallelCluster

작성자: Dario La Porta (AWS) 및 William Lu (AWS)

코드 리포지토리: parallelcluster-monitoring-dashboard

환경: PoC 또는 파일럿

기술: 고성능 컴퓨팅, 분석, 관리 및 거버넌스

워크로드: 오픈 소스

AWS 서비스: AWS ParallelCluster

요약

AWS는 고성능 컴퓨팅 (HPC) 클러스터를 배포하고 관리할 수 있도록 ParallelCluster 지원합니다. AWS Batch 및 Slurm 오픈 소스 작업 스케줄러를 지원합니다. ParallelCluster AWS는 로깅 및 CloudWatch 메트릭을 위해 Amazon과 통합되어 있지만 워크로드에 대한 모니터링 대시보드를 제공하지는 않습니다.

AWS용 Grafana 대시보드 GitHub () 는 ParallelCluster AWS용 모니터링 대시보드입니다. ParallelCluster 운영 체제(OS) 수준에서 작업 스케줄러 인사이트와 상세한 모니터링 지표를 제공합니다. 이 솔루션에 포함된 대시보드에 대한 자세한 내용은 리포지토리의 예제 대시보드를 참조하십시오. GitHub 이러한 메트릭은 HPC 워크로드와 성능을 더 잘 이해하는 데 도움이 됩니다. 하지만 대시보드 코드는 최신 버전의 AWS ParallelCluster 또는 솔루션에서 사용되는 오픈 소스 패키지에 대해서는 업데이트되지 않습니다. 이 패턴은 다음과 같은 장점을 제공하도록 솔루션을 향상시킵니다.

  • AWS ParallelCluster v3를 지원합니다.

  • Prometheus, Grafana, Prometheus Slurm Exporter, NVIDIA DCGM-Exporter를 포함한 최신 버전의 오픈 소스 패키지를 사용합니다.

  • Slurm 작업이 사용하는 CPU 코어 및 GPU 수를 증가시킵니다.

  • 작업 모니터링 대시보드 추가

  • 그래픽 처리 장치(GPU)가 4개 또는 8개인 노드의 GPU 노드 모니터링 대시보드를 개선합니다.

이 버전의 향상된 솔루션은 AWS 고객의 HPC 프로덕션 환경에서 구현 및 검증되었습니다.

사전 조건 및 제한 사항

사전 조건 

제한 사항

  • 이 패턴은 Ubuntu 20.04 LTS를 지원하도록 설계되었습니다. 다른 버전의 Ubuntu를 사용하거나 Amazon Linux 또는 CentOS를 사용하는 경우 이 솔루션과 함께 제공되는 스크립트를 수정해야 합니다. 이러한 수정은 이 패턴에 포함되지 않습니다.

제품 버전

  • Ubuntu 20.04 LTS

  • ParallelCluster 3.X

청구 및 비용 고려 사항

  • 이 패턴으로 배포된 솔루션에는 프리 티어가 적용되지 않습니다. Amazon EC2, Amazon FSx for Lustre, Amazon VPC의 NAT 게이트웨이, Amazon Route 53에는 요금이 부과됩니다.

아키텍처

대상 아키텍처

다음 다이어그램은 사용자가 헤드 노드에서 ParallelCluster AWS의 모니터링 대시보드에 액세스하는 방법을 보여줍니다. 헤드 노드는 NICE DCV, Prometheus, Grafana, Prometheus Slurm Exporter, Prometheus Node Exporter, NGINX 오픈 소스를 운영합니다. 컴퓨팅 노드는 Prometheus Node Exporter를 실행하며, 노드에 GPU가 포함된 경우 NVIDIA DCGM-Exporter도 실행합니다. 헤드 노드는 컴퓨팅 노드에서 정보를 검색하고 Grafana 대시보드에 해당 데이터를 표시합니다.

헤드 노드에서 ParallelCluster AWS의 모니터링 대시보드에 액세스.

대부분의 경우 작업 스케줄러에 상당한 양의 CPU나 메모리가 필요하지 않기 때문에 헤드 노드의 부하가 많지 않습니다. 사용자는 포트 443에서 SSL을 사용하여 헤드 노드의 대시보드에 액세스합니다.

승인된 모든 뷰어는 모니터링 대시보드를 익명으로 볼 수 있습니다. Grafana 관리자만 대시보드를 수정할 수 있습니다. aws-parallelcluster-monitoring/docker-compose/docker-compose.head.yml 파일에서 Grafana 관리자의 비밀번호를 구성합니다.

도구

서비스

  • NICE DCV는 다양한 네트워크 조건에서 모든 클라우드 또는 데이터 센터에서 모든 디바이스로 원격 데스크톱 및 애플리케이션 스트리밍을 제공할 수 있는 고성능 원격 디스플레이 프로토콜입니다.

  • AWS는 고성능 컴퓨팅 (HPC) 클러스터를 배포하고 관리할 수 있도록 ParallelCluster 지원합니다. AWS Batch 및 Slurm 오픈 소스 작업 스케줄러를 지원합니다.

  • Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

  • Amazon Virtual Private Cloud(VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다.

기타 도구

  • Docker는 운영 체제 수준의 가상화를 사용하여 컨테이너에 소프트웨어를 제공하는 서비스형 플랫폼(PaaS) 제품 세트입니다.

  • Grafana는 지표, 로그 및 추적을 쿼리, 시각화, 경고 및 탐색하는 데 도움이 되는 오픈 소스 소프트웨어입니다.

  • NGINX 오픈 소스는 오픈 소스 웹 서버이자 리버스 프록시입니다.

  • NVIDIA 데이터 센터 GPU 관리자(DCGM)는 클러스터 환경에서 NVIDIA 데이터 센터 그래픽 처리 장치(GPU)를 관리하고 모니터링하기 위한 도구 모음입니다. 이 패턴에서는 Prometheus에서 GPU 지표를 내보내는 데 도움이 되는 DCGM-Exporter를 사용합니다.

  • Prometheus는 지표를 관련 키-값 쌍(레이블이라고 함)이 있는 시계열 데이터로 수집하고 저장하는 오픈 소스 시스템 모니터링 툴킷입니다. 이 패턴에서는 Prometheus Slurm Exporter를 사용하여 지표를 수집 및 내보내고 Prometheus Node Exporter를 사용하여 컴퓨팅 노드에서 지표를 내보냅니다.

  • Ubuntu는 엔터프라이즈 서버, 데스크톱, 클라우드 환경 및 IoT를 위해 설계된 오픈 소스 Linux 기반 운영 체제입니다.

코드 리포지토리

이 패턴의 코드는 GitHub pcluster-monitoring-dashboard리포지토리에서 사용할 수 있습니다.

에픽

작업설명필요한 기술

S3 버킷을 생성합니다.

Amazon S3 버킷을 생성합니다. 이 버킷을 사용하여 구성 스크립트를 저장합니다. 지침은 Amazon S3 설명서의 버킷 생성을 참조하세요.

일반 AWS

리포지토리를 복제합니다.

다음 명령을 실행하여 GitHub pcluster-monitoring-dashboard리포지토리를 복제합니다.

git clone https://github.com/aws-samples/parallelcluster-monitoring-dashboard.git
DevOps 엔지니어

관리 비밀번호를 생성합니다.

  1. aws-parallelcluster-monitoring 폴더를 선택하고 docker-compose 폴더를 선택한 다음, docker-compose.head.yml 파일을 엽니다.

  2. GF_SECURITY_ADMIN_PASSWORD 변수에서 Grafana4PC!를 원하는 암호로 바꿉니다. 이것은 Grafana 계정을 관리하는 데 사용하는 관리자 비밀번호입니다.

  3. docker-compose.head.yml 파일을 저장하고 닫습니다.

Linux Shell 스크립팅

필요한 파일을 S3 버킷에 복사합니다.

post_install.sh 스크립트와 aws-parallelcluster-monitoring폴더를 생성한 S3 버킷에 복사합니다. 이에 관한 지침은 Amazon S3 설명서의 객체 업로드를 참조하세요.

일반 AWS

헤드 노드용 추가 보안 그룹을 구성합니다.

  1. 헤드 노드용 보안 그룹을 생성합니다. 이 보안 그룹은 헤드 노드의 모니터링 대시보드로의 인바운드 트래픽을 허용합니다. 지침은 Amazon VPC 설명서의 NAT 게이트웨이 생성을 참조하세요.

  2. 인바운드 규칙을 보안 그룹에 추가합니다. 지침은 Amazon VPC 설명서의 NAT 게이트웨이 생성을 참조하세요. 규칙에 다음 파라미터를 사용합니다.

    • 유형 - HTTPS

    • 프로토콜 – TCP

    • 포트 범위 – 443

    • 소스 – IP 주소를 입력합니다.

    • 설명 - 사용자가 모니터링 대시보드에 액세스할 수 있도록 허용

AWS 관리자

헤드 노드의 IAM 정책을 구성합니다.

헤드 노드에 대한 자격 증명 기반 정책을 생성합니다. 이 정책을 통해 노드는 Amazon에서 지표 데이터를 검색할 수 CloudWatch 있습니다. GitHub 리포지토리에는 예제 정책이 포함되어 있습니다. 지침은 AWS Identity 및 Access Management(IAM) 설명서의 IAM 정책 생성을 참고하십시오.

AWS 관리자

컴퓨팅 노드의 IAM 정책을 구성합니다.

컴퓨팅 노드에 대한 자격 증명 기반 정책을 생성합니다. 이 정책을 통해 노드는 작업 ID 및 작업 소유자가 포함된 태그를 생성할 수 있습니다. GitHub 리포지토리에는 예제 정책이 포함되어 있습니다. 지침은 AWS Identity 및 Access Management(IAM) 설명서의 IAM 정책 생성을 참조하세요.

제공된 예제 파일을 사용할 경우 아래의 값을 대체합니다.

  • <REGION> – 클러스터가 호스팅되는 AWS 리전

  • <ACCOUNT_ID> – AWS 계정 ID

AWS 관리자
작업설명필요한 기술

제공된 클러스터 템플릿 파일을 수정합니다.

AWS ParallelCluster 클러스터를 생성합니다. 제공된 cluster.yaml CloudFormation AWS 템플릿 파일을 출발점으로 사용하여 클러스터를 생성합니다. 제공된 템플릿에서 다음 값을 바꾸십시오.

  • <REGION> – 클러스터가 호스팅되는 AWS 리전입니다.

  • <HEADNODE_SUBNET> – VPC의 공개 서브넷입니다.

  • <ADDITIONAL_HEAD_NODE_SG> – 헤드 노드용으로 만든 보안 그룹 이름입니다.

  • <KEY_NAME> – 기존의 Amazon EC2 키 쌍의 이름을 입력합니다. 이 키 쌍이 있는 리소스는 헤드 노드에 대한 SSH(Secure Shell) 액세스 권한을 가집니다.

  • <ALLOWED_IPS> -–헤드 노드에 SSH 연결을 허용하는 CIDR 형식의 IP 주소 범위를 입력합니다.

  • <ADDITIONAL_HEAD_NODE_POLICY> – 헤드 노드에 대해 생성한 IAM 정책의 이름을 입력합니다.

  • <BUCKET_NAME> – 생성한 S3 버킷의 이름을 입력합니다.

  • <COMPUTE_SUBNET> – VPC에 있는 개인 서브넷의 이름을 입력합니다.

  • <ADDITIONAL_COMPUTE_NODE_POLICY> – 컴퓨팅 노드에 대해 생성한 IAM 정책의 이름을 입력합니다.

AWS 관리자

클러스터를 생성합니다.

AWS ParallelCluster CLI에서 다음 명령을 입력합니다. 그러면 CloudFormation 템플릿이 배포되고 클러스터가 생성됩니다. 이 명령에 대한 자세한 내용은 AWS 설명서의 pcluster 생성-클러스터를 참조하십시오. ParallelCluster

pcluster create-cluster -n <cluster_name> -c cluster.yaml
관리자

클러스터 생성을 모니터링하십시오.

다음 명령을 입력하여 클러스터 생성을 모니터링합니다. 이 명령에 대한 자세한 내용은 AWS 설명서의 pcluster 설명-클러스터를 참조하십시오. ParallelCluster

pcluster describe-cluster -n <cluster_name>
관리자
작업설명필요한 기술

Grafana 포털에 접속합니다.

  1. 다음 명령을 입력하여 헤드 노드의 공개 IP 주소를 검색합니다.

    pcluster describe-cluster -n <cluster_name> --query headNode.publicIpAddress
  2. 웹 브라우저에서 Grafana 대시보드에 액세스하려면 다음 URL로 이동합니다.

    https://<head_node_public_ip_address>

  3. Grafana 프론트 페이지의 왼쪽 메뉴에서 4사각형 대시보드 아이콘을 선택한 다음 일반을 선택합니다. 그러면 구성된 대시보드 목록이 표시됩니다. Grafana에서 다음 대시보드를 사용할 수 있습니다.

    • 클러스터 비용 - 클러스터 비용에 대한 정보가 있습니다.

    • 클러스터 비용 - 클러스터 비용에 대한 정보가 있습니다.

    • 컴퓨팅 노드 세부 정보 - 컴퓨팅 노드의 사용 통계에 대한 정보가 있습니다.

    • 컴퓨팅 노드 목록 - 클러스터의 컴퓨팅 노드 목록이 있습니다.

    • GPU 노드 - GPU 노드의 사용 통계에 대한 정보가 있습니다.

    • 작업 세부 정보 - 작업 리소스 사용률에 대한 정보가 있습니다.

    • 헤드 노드 세부 정보 - 헤드 노드의 사용 통계에 대한 정보 포함

    • ParallelCluster 요약 — 클러스터 사용에 대한 정보가 들어 있습니다.

관리자
작업설명필요한 기술

클러스터를 삭제합니다.

클러스터를 삭제하려면 다음 명령을 입력합니다. 이 명령에 대한 자세한 내용은 AWS 설명서의 pcluster 삭제 클러스터를 참조하십시오. ParallelCluster

pcluster delete-cluster -n <cluster_name>
관리자

IAM 정책을 삭제합니다.

헤드 노드와 컴퓨팅 노드에 대해 생성한 정책을 삭제합니다. 정책 삭제에 대한 자세한 내용은 IAM 설명서의 IAM 정책 삭제를 참조하세요.

AWS 관리자

보안 그룹 및 규칙을 삭제합니다.

헤드 노드용으로 생성한 보안 그룹을 삭제합니다. 자세한 정보는 Amazon VPC 설명서의 보안 그룹 규칙 삭제보안 그룹 삭제를 참조하세요.

AWS 관리자

S3 버킷을 삭제합니다.

구성 스크립트를 저장하기 위해 생성한 S3 버킷을 삭제합니다. 자세한 내용은 Amazon S3 설명서의 버킷 삭제를 참조하세요.

일반 AWS

문제 해결

문제Solution

브라우저에서 헤드 노드에 액세스할 수 없습니다.

보안 그룹을 확인하고 인바운드 포트 443이 열려 있는지 확인합니다.

Grafana가 열리지 않습니다.

헤드 노드에서 docker logs Grafana의 컨테이너 로그를 확인하십시오.

일부 지표에 데이터가 없습니다.

헤드 노드에서 모든 컨테이너의 컨테이너 로그를 확인하십시오.

관련 리소스

설명서

기타 AWS 리소스

기타 리소스