の Grafana モニタリングダッシュボードを設定する AWS ParallelCluster - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

の Grafana モニタリングダッシュボードを設定する AWS ParallelCluster

作成者: Dario La Porta (AWS) と William Lu (AWS)

コードリポジトリ: parallelcluster-monitoring-dashboard

環境:PoC またはパイロット

テクノロジー: ハイパフォーマンスコンピューティング、分析、管理とガバナンス 

ワークロード: オープンソース

AWS サービス: AWS ParallelCluster

[概要]

AWS ParallelCluster は、ハイパフォーマンスコンピューティング (HPC) クラスターのデプロイと管理に役立ちます。Batch AWSおよび Slurm オープンソースジョブスケジューラをサポートしています。AWS ParallelCluster はログ記録とメトリクス CloudWatch のために Amazon と統合されていますが、ワークロードのモニタリングダッシュボードは提供されません。

(GitHub) の Grafana ダッシュボードAWS ParallelClusterは、 のモニタリングダッシュボードですAWS ParallelCluster。ジョブスケジューラーの分析情報とオペレーティングシステム (OS) レベルでの詳細なモニタリングメトリクスを提供します。このソリューションに含まれるダッシュボードの詳細については、 GitHub リポジトリの「ダッシュボードの例」を参照してください。これらのメトリクスは、HPCワークロードとそのパフォーマンスをよりよく理解するのに役立ちます。ただし、 の最新バージョンAWS ParallelCluster やソリューションで使用されるオープンソースパッケージでは、ダッシュボードコードは更新されません。このパターンにより、ソリューションが強化され、以下の利点が得られます。

  • AWS ParallelCluster v3 をサポート

  • Prometheus、Grafana、Prometheus Slurm Exporter、NVIDIADCGM-Exporter などのオープンソースパッケージの最新バージョンを使用します

  • CPU コアの数と Slurm ジョブGPUsが使用する数を増やします

  • ジョブモニタリングダッシュボードを追加する

  • グラフィック処理ユニットが 4 つまたは 8 つのGPUノードのノードモニタリングダッシュボードを強化 (GPUs)

このバージョンの拡張ソリューションは、AWSお客様のHPC本番環境で実装および検証されています。

前提条件と制限

前提条件

制約事項

  • このパターンは、Ubuntu 20.04 をサポートするように設計されていますLTS。別のバージョンの Ubuntu を使用している場合、または Amazon Linux や CentOS を使用している場合は、このソリューションで提供されているスクリプトを変更する必要があります。  これらの変更は、このパターンには含まれていません。

製品バージョン

  • Ubuntu 20.04 LTS

  • ParallelCluster 3.X

請求とコストに関する考慮事項

  • このパターンでデプロイされるソリューションは無料利用枠の対象外です。Amazon EC2、Amazon FSx for Lustre、Amazon のNATゲートウェイVPC、Amazon Route 53 には料金が適用されます。

アーキテクチャ

ターゲット アーキテクチャ

次の図は、ユーザーがヘッドノードAWS ParallelCluster 上の のモニタリングダッシュボードにアクセスする方法を示しています。ヘッドノードはNICEDCV、、Prometheus、Grafana、Prometheus Slurm Exporter、Prometheus Node ExporterおよびNGINXオープンソースを実行します。コンピューティングノードは Prometheus Node Exporter を実行し、ノードに が含まれている場合は NVIDIA DCGM-Exporter も実行しますGPUs。ヘッドノードはコンピュートノードから情報を取得し、そのデータを Grafana ダッシュボードに表示します。 

ヘッドノードAWS ParallelCluster 上の のモニタリングダッシュボードへのアクセス。

ほとんどの場合、ジョブスケジューラは大量の CPUまたは メモリを必要としないため、ヘッドノードは大量にロードされません。ユーザーは、ポート 443 で を使用してヘッドノードSSLのダッシュボードにアクセスします。

権限のある閲覧者はすべて、モニタリングダッシュボードを匿名で閲覧できます。ダッシュボードを変更できるのは Grafana 管理者のみです。  aws-parallelcluster-monitoring/docker-compose/docker-compose.head.yml ファイルで Grafana 管理者のパスワードを設定します。

ツール

AWS サービス

  • NICE DCV は、さまざまなネットワーク条件で、クラウドやデータセンターから任意のデバイスにリモートデスクトップとアプリケーションストリーミングを配信するのに役立つ高性能リモートディスプレイプロトコルです。

  • AWS ParallelCluster は、ハイパフォーマンスコンピューティング (HPC) クラスターのデプロイと管理に役立ちます。Batch AWSおよび Slurm オープンソースジョブスケジューラをサポートしています。

  • Amazon Simple Storage Service (Amazon S3) は、どのようなデータ量であっても、データを保存、保護、取得することを支援するクラウドベースのオブジェクトストレージサービスです。

  • Amazon Virtual Private Cloud (Amazon VPC) は、定義した仮想ネットワークにAWSリソースを起動するのに役立ちます。

その他のツール

  • Docker は、オペレーティングシステムレベルの仮想化を使用してソフトウェアをコンテナで配信するサービスとしての Platform as a Service (PaaS) 製品のセットです。

  • Grafana は、メトリクス、ログ、トレースのクエリ、可視化、アラート表示、探索に役立つオープンソースソフトウェアです。

  • NGINX オープンソースは、オープンソースのウェブサーバーとリバースプロキシです。

  • NVIDIA Data Center GPU Manager (DCGM) は、クラスター環境のNVIDIAデータセンターグラフィックス処理ユニット (GPUs) を管理およびモニタリングするためのツールのスイートです。このパターンでは、Prometheus からGPUメトリクスをエクスポートするのに役立つ DCGM-Exporter を使用します。

  • Prometheus はオープンソースのシステム監視ツールキットで、ラベルと呼ばれる関連するキーと値のペアを含む、時系列データとしてメトリクスを収集して保存します。このパターンでは、Prometheus Slurm Exporter を使用してメトリクスを収集およびエクスポートし、Prometheus Node Exporter を使用してコンピュートノードからメトリクスをエクスポートします。

  • Ubuntu はオープンソースの Linux ベースのオペレーティングシステムで、エンタープライズサーバー、デスクトップ、クラウド環境、IoT 向けに設計されています。

コードリポジトリ

このパターンのコードは、 リポジトリで 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 シェルスクリプト

必要なファイルを S3 バケットにコピーします。

post_install.sh スクリプトとaws-parallelcluster-monitoringフォルダを作成した S3 バケットにコピーします。手順については、Amazon S3 ドキュメントの「オブジェクトのアップロード」を参照してください。

全般 AWS

ヘッドノードに追加のセキュリティグループを設定します。

  1. ヘッドノードのセキュリティグループを作成します。このセキュリティグループは、ヘッドノードのモニタリングダッシュボードへのインバウンドトラフィックを許可します。手順については、Amazon VPCドキュメントの「セキュリティグループを作成する」を参照してください。

  2. インバウンドルールをセキュリティグループに追加します。手順については、Amazon VPCドキュメントの「セキュリティグループにルールを追加する」を参照してください。ルールには次のパラメータを使用します。

    • タイプ – HTTPS

    • プロトコル – TCP

    • ポート範囲 – 443

    • ソース — IP アドレスを入力します。

    • 説明 — ユーザーがモニタリングダッシュボードにアクセスできるようにします。

AWS 管理者

ヘッドノードのIAMポリシーを設定します。

ヘッドノードの ID ベースのポリシーを作成します。このポリシーにより、ノードは Amazon からメトリクスデータを取得できます CloudWatch。 GitHub リポジトリには、ポリシー の例が含まれています。手順については、AWS「Identity and Access Management (IAM) ドキュメント」のIAM「ポリシーの作成」を参照してください。

AWS 管理者

コンピューティングノードのIAMポリシーを設定します。

コンピューティングノードの ID ベースのポリシーを作成します。このポリシーを使用すると、ノードはジョブ ID とジョブ所有者を含むタグを作成できます。 GitHub リポジトリには、ポリシーの例 が含まれています。手順については、IAMドキュメントのIAM「ポリシーの作成」を参照してください。

提供されているサンプルファイルを使用する場合は、次の値を置き換えます:

  • <REGION> – クラスターがホストされているAWSリージョン

  • <ACCOUNT_ID> – AWSアカウント ID

AWS 管理者
タスク説明必要なスキル

提供されたクラスターテンプレートファイルを変更します。

AWS ParallelCluster クラスターを作成します。提供された cluster.yaml AWS CloudFormation テンプレートファイルを出発点として使用して、クラスターを作成します。提供されたテンプレートの次の値を置換します:

  • <REGION> – クラスターがホストされているAWSリージョン。

  • <HEADNODE_SUBNET> – のパブリックサブネットVPC。

  • <ADDITIONAL_HEAD_NODE_SG> – ヘッドノード用に作成したセキュリティグループの名前。

  • <KEY_NAME> – 既存の Amazon EC2キーペアの名前を入力します。このキーペアを持つリソースには、ヘッドノードへの Secure Shell (SSH) アクセスがあります。

  • <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 ParallelCluster ドキュメントの「pcluster create-cluster」を参照してください。

pcluster create-cluster -n <cluster_name> -c cluster.yaml
AWS 管理者

クラスターの作成をモニタリングします。

以下のコマンドを入力して、クラスターの作成を監視します。このコマンドの詳細については、AWS ParallelCluster ドキュメントの「pcluster describe-cluster」を参照してください。

pcluster describe-cluster -n <cluster_name>
AWS 管理者
タスク説明必要なスキル

Grafana ポータルにアクセスします。

  1. 以下のコマンドを入力して、ヘッドノードのパブリック IP アドレスを取得します。

    pcluster describe-cluster -n <cluster_name> --query headNode.publicIpAddress
  2. ウェブブラウザで、以下に移動URLして Grafana ダッシュボードにアクセスします。

    https://<head_node_public_ip_address>

  3. Grafana のフロントページで、左側のメニューにある 4 つの四角いダッシュボードアイコンを選択し、[全般] を選択します。そうすると、設定済みダッシュボードのリストが表示されます。Grafana では、以下のダッシュボードを使用できます。

    • クラスターコスト — クラスターのコストに関する情報が含まれます。

    • クラスターログ — クラスターのログに関する情報が含まれます。

    • コンピューティングノードの詳細 — コンピューティングノードの使用統計に関する情報が含まれます。

    • コンピューティングノードのリスト — クラスターのコンピューティングノードのリストが含まれます。

    • GPU ノード — GPUノードの使用状況統計に関する情報が含まれます。

    • ジョブの詳細 — ジョブのリソース使用率に関する情報が含まれます。

    • ヘッドノードの詳細 —ヘッドノードの使用統計に関する情報が含まれます。

    • ParallelCluster 概要 – クラスターの使用状況に関する情報が含まれます。

AWS 管理者
タスク説明必要なスキル

クラスターを削除します。

クラスターを削除するには、次のコマンドを入力します。このコマンドの詳細については、AWS ParallelCluster ドキュメントの「pcluster delete-cluster」を参照してください。

pcluster delete-cluster -n <cluster_name>
AWS 管理者

IAM ポリシーを削除します。

ヘッドノードとコンピューティングノード用に作成したポリシーを削除します。ポリシーの削除の詳細については、IAMドキュメントのIAM「ポリシーの削除」を参照してください。

AWS 管理者

セキュリティグループとルールを削除するには

ヘッドノード用に作成したセキュリティグループを削除します。  詳細については、Amazon VPCドキュメントの「セキュリティグループルールの削除」と「セキュリティグループの削除」を参照してください。

AWS 管理者

S3 バケットを削除します。

設定スクリプトを保存するために作成した S3 バケットを削除します。  詳細については、Amazon S3 ドキュメントの「バケットの削除」を参照してください。

全般 AWS

トラブルシューティング

問題ソリューション

ブラウザからヘッドノードにアクセスできません。

セキュリティグループをチェックし、インバウンドポート 443 がオープンになっていることを確認します。

Grafana が開かない。

ヘッドノードで、docker logs Grafana のコンテナログを確認してください。

一部のメトリクスにデータがありません。

ヘッドノードで、すべてのコンテナのコンテナログを確認します。

関連リソース

AWS ドキュメント

その他のAWSリソース

その他のリソース