AWS ParallelCluster 2.10.0新機能CloudWatchダッシュボード自動作成

「すべてのGangliaを過去にする」は叶わなかった。
2020.11.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS ParallelCluster 2.10.0の新機能紹介

HPCクラスター構築時にCloudWatchダッシュボードが自動作成されるようになりました。

  • AWS ParallelClusterはAWSがサポートする、HPCクラスターの管理ツールです。
  • 必要に応じて自作していたダッシュボードを最初から用意してくれている!
  • ヘッドノードの標準メトリクスと、CloudWatch Logsのログが表示されるダッシュボードでした。

Create a CloudWatch Dashboard for the cluster, named -, including head node EC2 metrics and cluster logs. It can be disabled by configuring the enable parameter in the dashboard section.

Release AWS ParallelCluster v2.10.0 · aws/aws-parallelcluster

検証環境

項目
ParallelCluster 2.10.0
OS Ubuntu 18.04 LTS
AMI aws-parallelcluster-2.10.0-ubuntu-1804-lts-hvm-arm64-202011172100

ParallelClusterのモニタリングダッシュボード

ParallelCluster 2.10.0からCloudWatchダッシュボードが作成されます。どんな感じなのか実際にクラスター作成して見てみましょう。趣のあるUIを提供してくれるGangliaのモニタリングオプションを過去のものとしてくれるのでしょうか。

クラスター設定ファイル全文

検証時の設定ファイル内容です。下記の項目は環境に依存します。

  • aws_region_name
  • key_name
  • vpc_id
  • master_subnet_id
  • compute_subnet_id

multi-cluster

[aws]
aws_region_name = us-east-1

[global]
cluster_template = default
update_check = true
sanity_check = true

[aliases]
ssh = ssh {CFN_USER}@{MASTER_IP} {ARGS}

[cluster default]
key_name = sandbox-key-useast1
base_os = ubuntu1804
scheduler = slurm
vpc_settings = custom
s3_read_resource = arn:aws:s3:::pcluster-postinsall/*
post_install = s3://pcluster-postinsall/postinstall.sh
additional_iam_policies = arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess

# Instance Type
master_instance_type = c6g.large

# Queue
queue_settings = 2x, 16x

# Tag
tags = { "Name" : "MultiQueue-Cluster" }

# --- VPC Setting ---
[vpc custom]
vpc_id = vpc-07edfc27679c9ca80
master_subnet_id = subnet-0ab2754446b2f87a4
compute_subnet_id = subnet-0ab2754446b2f87a4
use_public_ips = true

# --- EBS Setting ---
[ebs external_ebs]
shared_dir = /shared
volume_type = gp2
volume_size = 20

# --- ComputeNode Setting ---
[queue 2x]
compute_resource_settings = 2x
placement_group = DYNAMIC
compute_type = spot

[queue 16x]
compute_resource_settings = 16x
placement_group = DYNAMIC
compute_type = spot

[compute_resource 2x]
instance_type = c6g.2xlarge
max_count = 32

[compute_resource 16x]
instance_type = c6g.16xlarge
max_count = 8

クラスター作成

pcluster createコマンドで任意の管理名称を設定し、設定ファイルを引数に指定します。管理名称はmulti-clusterとしています。

> pcluster create multi-cluster -c multi-cluster

CloudWatchダッシュボードの確認

parallelcluster-<管理名称>-<リージョン名>のダッシュボードが作成されています。

ヘッドノードの標準メトリクス表示

ヘッドノードのEBSのメトリクス表示

ヘッドノードの/var/logのいくつかログファイル

CloudWatch Logs設定

ダッシュボードにログが表示されていました。以前は明示的にCloudWatch Logsの設定を入れないとログはインスタンスのローカルにしか保存されませんでした。v2.10.0ではデフォルトで14日保持のCloudWatch Logsの設定が有効化されていました。

コンピューノードのログも保存されています。ダッシュボードの表示はヘッドノードのログのみでした。先頭のプライベートIPのIPアドレスでログを判断。

おわりに

ダッシュボード作るの大変なので最初から用意されているのはありがたいです。Gangliaは過去にしたとは言えませんでした。一方のGangaliaはメモリ使用率や、コンピューノードをまとめて表示できます。自動作成のCloudWatchダッシュボードはヘッドノードの標準メトリクスとログの表示です。コンピューノードは2.9.0からAutoScalingGroupでもないため、ダッシュボードでまとめて表示するのは難しいのでしょう。以前ダッシュボード表示を頑張ったのですがうまく表示する方法を見つけられませんでした。

以上、AWS ParallelClusterの最前線から網走の大村@コンサル部でした。

参考

[cw_log] section - AWS ParallelCluster