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

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

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

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

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

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

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

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

AWS サービス: AWS ParallelCluster

[概要]

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

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

  • AWS ParallelCluster v3 をサポート

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

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

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

  • 4 つまたは 8 つのグラフィックプロセッシングユニット (GPU) を搭載したノードの 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 Open Source を実行します。  コンピュートノードは Prometheus Node Exporter を実行します。ノードに GPU が含まれている場合は NVIDIA DCGM-Exporter も実行します。ヘッドノードはコンピュートノードから情報を取得し、そのデータを Grafana ダッシュボードに表示します。 

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

ほとんどの場合、ジョブスケジューラは大量の CPU やメモリを必要としないので、ヘッドノードの負荷は大きくありません。ユーザーはポート 443 から SSL を使用してヘッドノードのダッシュボードにアクセスします。

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

ツール

AWS サービス

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

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

  • Amazon Simple Storage Service (Amazon S3) は、量にかかわらず、データを保存、保護、取得するのに役立つクラウドベースのオブジェクトストレージサービスです。

  • Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワーク内で AWS リソースを起動できます。

その他のツール

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

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

  • NGINX Open Source は、オープンソースのウェブサーバーで、リバースプロキシでもあります。

  • NVIDIA データセンター GPU マネージャー (DCGM) は、クラスター環境で NVIDIA データセンターのグラフィックプロセッシングユニット (GPU) を管理およびモニタリングするための一連のツールです。このパターンでは、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 リソース

その他のリソース