128
AWS ParallelCluster AWS ParallelCluster ユーザーガイド AWS ParallelCluster: AWS ParallelCluster ユーザーガイド Copyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelClusterAWS ParallelCluster ユーザーガイド

AWS ParallelCluster: AWS ParallelCluster ユーザーガイドCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Page 2: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド

Table of ContentsAWS ParallelCluster とは .................................................................................................................... 1AWS ParallelCluster をセットアップする ............................................................................................... 2

AWS ParallelCluster のインストール ............................................................................................. 2仮想環境に AWS ParallelCluster をインストールする (推奨) ...................................................... 2pip を使用して非仮想環境に AWS ParallelCluster をインストールする ........................................ 2インストール後に実行する手順 ............................................................................................. 3各環境の詳細な手順 ............................................................................................................ 3仮想環境 ............................................................................................................................ 3Linux ................................................................................................................................ 5macOS .............................................................................................................................. 8Windows .......................................................................................................................... 10

AWS ParallelCluster の設定 ........................................................................................................ 12CfnCluster から AWS ParallelCluster への移行 .............................................................................. 16サポートされているリージョン ................................................................................................... 17

AWS ParallelCluster を使用する .......................................................................................................... 19pcluster ............................................................................................................................... 19

引数 ................................................................................................................................ 19サブコマンド: ................................................................................................................... 19pcluster configure .................................................................................................... 20pcluster create .......................................................................................................... 20pcluster createami .................................................................................................... 21pcluster dcv ............................................................................................................... 22pcluster delete .......................................................................................................... 23pcluster instances .................................................................................................... 24pcluster list ............................................................................................................. 25pcluster ssh ............................................................................................................... 25pcluster start ............................................................................................................ 26pcluster status .......................................................................................................... 27pcluster stop ............................................................................................................. 27pcluster update .......................................................................................................... 28pcluster version ........................................................................................................ 29

ネットワーク設定 ...................................................................................................................... 29単一パブリックサブネット内の AWS ParallelCluster .............................................................. 29AWS ParallelCluster 2 つのサブネットを使用する ................................................................. 30AWS Direct Connect を使用して接続された単一プライベートサブネット内の AWSParallelCluster .................................................................................................................. 31awsbatch タスクスケジューラによる AWS ParallelCluster ..................................................... 31

カスタムブートストラップアクション .......................................................................................... 33設定 ................................................................................................................................ 33引数 ................................................................................................................................ 34例 ................................................................................................................................... 34

Amazon S3 を使用する ............................................................................................................. 35例 ................................................................................................................................... 35

スポットインスタンスの使用 ...................................................................................................... 35シナリオ 1: 実行中のジョブがないスポットインスタンスが中断される ...................................... 36シナリオ 2: 単一ノードジョブを実行しているスポットインスタンスが中断される ...................... 36シナリオ 3: マルチノードジョブを実行しているスポットインスタンスが中断される ................... 36

AWS ParallelCluster の AWS Identity and Access Management ルール ............................................. 37デフォルト設定 ................................................................................................................. 37Amazon EC2 の既存の IAM ロールを使用する ...................................................................... 37ParallelClusterInstancePolicy .............................................................................................. 38ParallelClusterUserPolicy .................................................................................................... 41

AWS ParallelCluster によってサポートされているスケジューラ ....................................................... 49Son of Grid Engine (sge) ................................................................................................... 49

iii

Page 4: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド

Slurm Workload Manager (slurm) ...................................................................................... 49Torque Resource Manager (torque) ................................................................................... 50AWS Batch (awsbatch) .................................................................................................... 50

Amazon CloudWatch Logs との統合 ............................................................................................ 55Elastic Fabric Adapter ............................................................................................................... 56Intel MPI を有効にする .............................................................................................................. 56Intel HPC プラットフォームの仕様 .............................................................................................. 57NICE DCV を介してマスターインスタンスに接続する .................................................................... 57

NICE DCV HTTPS 証明書 .................................................................................................. 58NICE DCV のライセンシング ............................................................................................. 58

設定 ................................................................................................................................................ 33レイアウト ............................................................................................................................... 59[global] セクション ............................................................................................................... 59

cluster_template ......................................................................................................... 60update_check ................................................................................................................ 60sanity_check ................................................................................................................ 60

[aws] セクション .................................................................................................................... 60[aliases] セクション ............................................................................................................. 61[cluster] セクション ............................................................................................................. 61

additional_cfn_template ............................................................................................ 62additional_iam_policies ............................................................................................ 62base_os ......................................................................................................................... 63cluster_type ................................................................................................................ 64compute_instance_type ................................................................................................ 64compute_root_volume_size .......................................................................................... 64custom_ami .................................................................................................................... 64cw_log_settings ........................................................................................................... 65dcv_settings ................................................................................................................ 65desired_vcpus .............................................................................................................. 65disable_hyperthreading .............................................................................................. 65ebs_settings ................................................................................................................ 66ec2_iam_role ................................................................................................................ 66efs_settings ................................................................................................................ 66enable_efa .................................................................................................................... 66enable_intel_hpc_platform ........................................................................................ 67encrypted_ephemeral ................................................................................................... 67ephemeral_dir .............................................................................................................. 67extra_json .................................................................................................................... 67fsx_settings ................................................................................................................ 68initial_queue_size ..................................................................................................... 68key_name ....................................................................................................................... 68maintain_initial_size ................................................................................................ 68master_instance_type ................................................................................................. 69master_root_volume_size ............................................................................................ 69max_queue_size ............................................................................................................ 69max_vcpus ...................................................................................................................... 69min_vcpus ...................................................................................................................... 69placement ...................................................................................................................... 70placement_group ........................................................................................................... 70post_install ................................................................................................................ 70post_install_args ....................................................................................................... 71pre_install .................................................................................................................. 71pre_install_args ......................................................................................................... 71proxy_server ................................................................................................................ 71raid_settings .............................................................................................................. 71s3_read_resource ......................................................................................................... 72s3_read_write_resource .............................................................................................. 72

iv

Page 5: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド

scaling_settings ......................................................................................................... 72scheduler ...................................................................................................................... 72shared_dir .................................................................................................................... 73spot_bid_percentage ................................................................................................... 73spot_price .................................................................................................................... 73tags ............................................................................................................................... 73template_url ................................................................................................................ 74vpc_settings ................................................................................................................ 74

[cw_log] セクション ............................................................................................................... 74enable ........................................................................................................................... 74retention_days ............................................................................................................ 75

[dcv] セクション .................................................................................................................... 75enable ........................................................................................................................... 75port ............................................................................................................................... 76access_from .................................................................................................................. 76

[ebs] セクション .................................................................................................................... 76shared_dir .................................................................................................................... 77ebs_snapshot_id ........................................................................................................... 77volume_type .................................................................................................................. 77volume_size .................................................................................................................. 77volume_iops .................................................................................................................. 77encrypted ...................................................................................................................... 78ebs_kms_key_id ............................................................................................................ 78ebs_volume_id .............................................................................................................. 78

[efs] セクション .................................................................................................................... 78shared_dir .................................................................................................................... 79encrypted ...................................................................................................................... 79efs_kms_key_id ............................................................................................................ 79performance_mode ......................................................................................................... 79throughput_mode ........................................................................................................... 80provisioned_throughput .............................................................................................. 80efs_fs_id ...................................................................................................................... 80

[fsx] セクション .................................................................................................................... 81deployment_type ........................................................................................................... 82export_path .................................................................................................................. 83fsx_fs_id ...................................................................................................................... 83fsx_kms_key_id ............................................................................................................ 83import_path .................................................................................................................. 83imported_file_chunk_size .......................................................................................... 84per_unit_storage_throughput .................................................................................... 84shared_dir .................................................................................................................... 84storage_capacity ......................................................................................................... 84weekly_maintenance_start_time ................................................................................. 85

[raid] セクション ................................................................................................................... 85shared_dir .................................................................................................................... 85raid_type ...................................................................................................................... 86num_of_raid_volumes ................................................................................................... 86volume_type .................................................................................................................. 86volume_size .................................................................................................................. 87volume_iops .................................................................................................................. 87encrypted ...................................................................................................................... 87ebs_kms_key_id ............................................................................................................ 87

[scaling] セクション ............................................................................................................. 87scaledown_idletime ..................................................................................................... 88

[vpc] セクション .................................................................................................................... 88additional_sg .............................................................................................................. 88compute_subnet_cidr ................................................................................................... 88

v

Page 6: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド

compute_subnet_id ....................................................................................................... 88master_subnet_id ......................................................................................................... 89ssh_from ....................................................................................................................... 89use_public_ips ............................................................................................................ 89vpc_id ........................................................................................................................... 89vpc_security_group_id ................................................................................................ 89

例 ........................................................................................................................................... 35AWS ParallelCluster の詳細 ................................................................................................................ 91

AWS ParallelCluster プロセス ..................................................................................................... 91全般的な概要 .................................................................................................................... 91jobwatcher .................................................................................................................... 93sqswatcher .................................................................................................................... 95nodewatcher .................................................................................................................. 96

AWS ParallelCluster で使用される AWS のサービス ...................................................................... 98AWS Auto Scaling ............................................................................................................ 98AWS Batch ...................................................................................................................... 98AWS CloudFormation ........................................................................................................ 98Amazon CloudWatch ......................................................................................................... 99Amazon CloudWatch Logs ................................................................................................. 99AWS CodeBuild ................................................................................................................ 99Amazon DynamoDB .......................................................................................................... 99Amazon Elastic Block Store ................................................................................................ 99Amazon Elastic Compute Cloud .......................................................................................... 99Amazon Elastic Container Registry .................................................................................... 100AWS Identity and Access Management .............................................................................. 100AWS Lambda ................................................................................................................. 100Amazon Simple Notification Service ................................................................................... 100Amazon Simple Queue Service ......................................................................................... 100Amazon Simple Storage Service ....................................................................................... 101

AWS ParallelCluster Auto Scaling .............................................................................................. 101スケールアップ ............................................................................................................... 101スケールダウン ............................................................................................................... 102静的クラスター ............................................................................................................... 102

チュートリアル ............................................................................................................................... 103AWS ParallelCluster で最初のジョブを実行する ........................................................................... 103

インストールを確認する ................................................................................................... 103初めてクラスターを作成する ............................................................................................. 103マスターインスタンスにログインする ................................................................................ 104SGE を使用して最初のジョブを実行する ............................................................................ 104

カスタム AWS ParallelCluster AMI の構築 .................................................................................. 105AWS ParallelCluster AMI をカスタマイズする方法 ............................................................... 105

AWS ParallelCluster と awsbatch スケジューラを使用して MPI ジョブを実行する .......................... 107クラスターの作成 ............................................................................................................ 107マスターインスタンスにログインする ................................................................................ 104AWS Batch を使用して最初のジョブを実行する .................................................................. 109マルチノード並列環境で MPI ジョブを実行する ................................................................... 110

カスタム KMS キーを使用したディスク暗号化 ............................................................................ 113ロールの作成 .................................................................................................................. 113キーのアクセス許可を付与する ......................................................................................... 113クラスターの作成 ............................................................................................................ 107

開発 .............................................................................................................................................. 115カスタム AWS ParallelCluster クックブックをセットアップする .................................................... 115

ステップ ........................................................................................................................ 115カスタム AWS ParallelCluster ノードパッケージをセットアップする .............................................. 116

ステップ ........................................................................................................................ 115トラブルシューティング ................................................................................................................... 118

AWS Batch マルチノードの並列ジョブの送信に失敗しました ........................................................ 118

vi

Page 7: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド

プレイスメントグループとインスタンスの起動に関する問題 .......................................................... 118置き換えられないディレクトリ ................................................................................................. 118

ドキュメント履歴 ............................................................................................................................ 120

vii

Page 8: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド

AWS ParallelCluster とはAWS ParallelCluster は、AWS がサポートするオープンソースのクラスター管理ツールです。このツールは、AWS クラウドでハイパフォーマンスコンピューティング (HPC) クラスターを簡単にデプロイおよび管理するのに役立ちます。オープンソース CfnCluster プロジェクト上に構築されている AWSParallelCluster を使用すると、AWS にすばやく HPC コンピューティング環境を構築できます。必要なコンピューティングリソースと共有ファイルシステムが自動的に設定されます。AWS ParallelCluster は、さまざまなバッチスケジューラ (AWS Batch、SGE、Slurm、Torque) で使用できます。AWS ParallelClusterでは、クイックスタート PoC (概念実証) および本番稼働用デプロイのいずれも可能です。また、AWSParallelCluster には、DNA シーケンスワークフロー全体を自動化するゲノミクスポータルなど、高度なワークフローを構築することもできます。

1

Page 9: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster のインストール

AWS ParallelCluster をセットアップする

トピック• AWS ParallelCluster のインストール (p. 2)• AWS ParallelCluster の設定 (p. 12)• CfnCluster から AWS ParallelCluster への移行 (p. 16)• サポートされているリージョン (p. 17)

AWS ParallelCluster のインストールAWS ParallelCluster は Python パッケージとして配信され、Python パッケージマネージャである pip を使用してインストールされます。Python パッケージをインストールする方法の詳細については、PythonPackaging User Guide の「Installing Packages」を参照してください。

AWS ParallelCluster をインストールする方法

• 仮想環境を使用する (推奨) (p. 2)• pip を使用する (p. 2)

最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。

このガイドのコマンド例では、Python v 3 がインストールされていることを前提としています。pip コマンド例は pip3 バージョンを使用します。

仮想環境に AWS ParallelCluster をインストールする(推奨)仮想環境に AWS ParallelCluster をインストールすることをお勧めします。pip3 で AWS ParallelClusterのインストールを試みたときに依存関係の問題が発生した場合は、仮想環境に AWS ParallelCluster をインストール (p. 3)してツールとその依存関係を隔離します。または、通常使用しているものと異なるバージョンの Python を使用することもできます。

pip を使用して非仮想環境に AWS ParallelCluster をインストールするLinux、Windows、および macOS での AWS ParallelCluster の主なディストリビューション方法は pip です。これは Python のパッケージマネージャーです。Python パッケージとその依存関係をインストール、アップグレード、削除する方法です。

現行の AWS ParallelCluster バージョン

AWS ParallelCluster は定期的に更新されます。最新バージョンがあるかどうかを確認するには、「GitHubのリリースページ」を参照してください。

pip およびサポートされるバージョンの Python がすでにインストールされている場合は、以下のコマンドを使用して、AWS ParallelCluster をインストールできます。Python version 3+ がインストールされている場合は、pip3 コマンドの使用が推奨されます。

2

Page 10: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドインストール後に実行する手順

$ pip3 install aws-parallelcluster --upgrade --user

インストール後に実行する手順AWS ParallelCluster をインストールしたら、PATH 変数への実行可能ファイルのパスの追加が必要になる場合があります。プラットフォーム固有の手順については、以下のトピックを参照してください。

• Linux – AWS ParallelCluster 実行ファイルをコマンドラインパスに追加する (p. 7)• macOS – AWS ParallelCluster 実行ファイルをコマンドラインパスに追加する (p. 9)• Windows – AWS ParallelCluster 実行ファイルをコマンドラインパスに追加する (p. 11)

AWS ParallelCluster が正しくインストールされたことを確認するには、pcluster version を実行します。

$ pcluster version2.6.1

AWS ParallelCluster は定期的に更新されます。AWS ParallelCluster を最新バージョンに更新するには、インストールコマンドを再度実行します。AWS ParallelCluster の最新バージョンについては、「AWSParallelCluster リリースノート」を参照してください。

$ pip3 install aws-parallelcluster --upgrade --user

AWS ParallelCluster をアンインストールするには、pip uninstall を使用します。

$ pip3 uninstall aws-parallelcluster

Python と pip がインストールされていない場合は、使用している環境に応じた手順に従ってください。

各環境の詳細な手順• 仮想環境への AWS ParallelCluster のインストール (推奨) (p. 3)• Linux に AWS ParallelCluster をインストールする (p. 5)• MacOS で AWS ParallelCluster をインストールする (p. 8)• Windows に AWS ParallelCluster をインストールするには (p. 10)

仮想環境への AWS ParallelCluster のインストール (推奨)他の pip パッケージとのバージョンに関する要件の競合を回避するために、仮想環境に AWSParallelCluster をインストールすることをお勧めします。

前提条件

• pip と Python がインストールされていることを確認します。pip3 と、Python 3 バージョン 3.6 の使用をお勧めします。Python 2 を使用している場合は、pip3 の代わりに pip を、venv の代わりにvirtualenv を使用します。

3

Page 11: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド仮想環境

仮想環境に AWS ParallelCluster をインストールするには

1. virtualenv がインストールされていない場合は、pip3 を使用して virtualenv をインストールします。python3 -m virtualenv help がヘルプ情報を表示する場合は、ステップ 2 に進みます。

Linux, macOS, or Unix

$ python3 -m pip install --upgrade pip$ python3 -m pip install --user --upgrade virtualenv

exit を実行して現在のターミナルウィンドウを終了し、新しいターミナルウィンドウを開いて環境への変更を取得します。

Windows

C:\>pip3 install --user --upgrade virtualenv

exit を実行して現在のコマンドプロンプトを終了し、新しいコマンドプロンプトを開いて環境への変更を取得します。

2. 仮想環境を作成して名前を付けます。

Linux, macOS, or Unix

$ python3 -m virtualenv ~/apc-ve

Windows

C:\>virtualenv %USERPROFILE%\apc-ve

または、 -p オプションを使用して Python の特定のバージョンを指定することもできます。

$ python3 -m virtualenv -p $(which python3) ~/apc-ve

3. 新しい仮想環境をアクティブ化します。

Linux, macOS, or Unix

$ source ~/apc-ve/bin/activate

Windows

C:\>%USERPROFILE%\apc-ve\Scripts\activate

4. 仮想環境に AWS ParallelCluster をインストールします。

Linux, macOS, or Unix

(apc-ve)~$ python3 -m pip install --upgrade aws-parallelcluster

Windows

(apc-ve) C:\>pip3 install --upgrade aws-parallelcluster

5. AWS ParallelCluster が正しくインストールされたことを確認します。4

Page 12: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドLinux

Linux, macOS, or Unix

$ pcluster version2.6.1

Windows

(apc-ve) C:\>pcluster version2.6.1

deactivate コマンドを使用して、仮想環境を終了できます。新しいセッションを開始するたびに、環境を再度アクティブ化する (p. 4)必要があります。

AWS ParallelCluster を最新バージョンにアップグレードするには、インストールコマンドを再度実行します。

Linux, macOS, or Unix

(apc-ve)~$ python3 -m pip install --upgrade aws-parallelcluster

Windows

(apc-ve) C:\>pip3 install --upgrade aws-parallelcluster

Linux に AWS ParallelCluster をインストールするAWS ParallelCluster とその依存関係は、Python 用のパッケージマネージャーである pip を使用して、ほとんどの Linux ディストリビューションでインストールできます。まず、Python と pip がインストールされているかどうかを判断します。

1. お使いの Linux に Python と pip が付属していることを確認するには、pip --version を実行します。

$ pip --version

pip がインストールされている場合は、「pip を使用して AWS ParallelCluster をインストールする (p. 2)」トピックに移動します。それ以外の場合は、ステップ 2 に進みます。

2. Python がインストールされているかどうかを確認するには、python --version を実行します。

$ python --version

Python 3 version 3.6+ または Python 2 version 2.7 がインストールされている場合は、「pip を使用して AWS ParallelCluster をインストールする (p. 2)」トピックに移動します。それ以外の場合は、Python をインストール (p. 7)し、この手順に戻って pip をインストールします。

3. pip をインストールするには、Python Packaging Authority より提供されているスクリプトを使用します。

4. curl コマンドを使用してインストールスクリプトをダウンロードします。

$ curl -O https://bootstrap.pypa.io/get-pip.py

5

Page 13: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドLinux

5. Python でスクリプトを実行して、pip の最新バージョンとその他の必要なサポートパッケージをダウンロードしてインストールします。

$ python get-pip.py --user

または

$ python3 get-pip.py --user

--user スイッチを含めると、スクリプトは pip をパス ~/.local/bin にインストールします。6. pip を含むフォルダが PATH 変数の一部であることを確認するには、以下の操作を行います。

a. ユーザーフォルダでシェルのプロファイルスクリプトを見つけます。現在使用しているシェルが不明な場合は、basename $SHELL を実行します。

$ ls -a ~. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads

• Bash – .bash_profile、.profile、または .bash_login。• Zsh – .zshrc。• Tcsh – .tcshrc、.cshrc、または .login。

b. 次の例のように、プロファイルスクリプトの末尾にエクスポートコマンドを追加します。

export PATH=~/.local/bin:$PATH

エクスポートコマンドでは、パス (この例では ~/.local/bin) が、既存の PATH 変数の前に挿入されます。

c. 変更を適用するには、プロファイルを現在のセッションに再ロードします。

$ source ~/.bash_profile

7. pip が正しくインストールされたことを確認します。

$ pip3 --versionpip 20.0.2 from ~/.local/lib/python3.6/site-packages (python 3.6)

セクション• pip で AWS ParallelCluster をインストールします。 (p. 6)• AWS ParallelCluster 実行ファイルをコマンドラインパスに追加する (p. 7)• Linux での Python のインストール (p. 7)

pip で AWS ParallelCluster をインストールします。pip を使用して AWS ParallelCluster をインストールします。

$ python3 -m pip install aws-parallelcluster --upgrade --user

--user スイッチを使用すると、pip は AWS ParallelCluster を ~/.local/bin にインストールします。

AWS ParallelCluster が正しくインストールされたことを確認します。

6

Page 14: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドLinux

$ pcluster version2.6.1

最新バージョンにアップグレードするには、インストールコマンドを再び実行します。

$ python3 -m pip install aws-parallelcluster --upgrade --user

AWS ParallelCluster 実行ファイルをコマンドラインパスに追加するpip を使用してインストールした後は、オペレーティングシステムの PATH 環境変数への pcluster 実行ファイルの追加が必要になる場合があります。

pip によって AWS ParallelCluster がインストールされたフォルダを確認するには、次のコマンドを実行します。

$ which pcluster/home/username/.local/bin/pcluster

AWS ParallelCluster のインストール時に --user を除外した場合、実行ファイルは、Python インストールの bin フォルダにある場合があります。Python がインストールされた場所が不明な場合は、次のコマンドを実行します。

$ which python/usr/local/bin/python

出力は、実際の実行可能ファイルではなく symlink へのパスになる場合があります。symlink の示す場所を確認するには、ls -al を実行します。

$ ls -al $(which python)/usr/local/bin/python -> ~/.local/Python/3.6/bin/python3.6

これが AWS ParallelCluster のインストール (p. 2) のステップ 3 でパスに追加したのと同じフォルダである場合、インストール作業は完了です。それ以外の場合は、ステップ 3a – 3c を再び実行します。これにより、この追加フォルダがパスに追加されます。

Linux での Python のインストールご使用のディストリビューションに Python が付属していないか、以前のバージョンである場合は、pipおよび AWS ParallelCluster をインストールする前に Python をインストールします。

Linux に Python 3 をインストールするには

1. Python がインストール済みかどうかを確認します。

$ python3 --version

または

$ python --version

7

Page 15: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドmacOS

Note

ご使用の Linux ディストリビューションに Python が付属している場合は、Python 開発者パッケージをインストールする必要があります。開発者パッケージには、拡張機能をコンパイルして AWS ParallelCluster をインストールするのに必要なヘッダーとライブラリが含まれます。パッケージマネージャーを使用して、開発者パッケージをインストールします。通常、このファイル名は python-dev または python-devel です。

2. Python 2.7 以降がインストールされていない場合は、ご使用のディストリビューションのパッケージマネージャーを使用して Python をインストールします。コマンドとパッケージ名は、場合によって異なります。

• Debian から派生した OS (Ubuntu など) では、apt を使用します。

$ sudo apt-get install python3

• Red Hat およびそれから派生した OS では、yum を使用します。

$ sudo yum install python3

• SUSE およびそれから派生した OS では、zypper を使用します。

$ sudo zypper install python3

3. Python が正しくインストールされたことを確認するには、コマンドプロンプトまたはシェルを開き、次のコマンドを実行します。

$ python3 --versionPython 3.7.5

MacOS で AWS ParallelCluster をインストールするセクション

• 前提条件 (p. 8)• pip を使用して macOS に AWS ParallelCluster をインストールする (p. 9)• AWS ParallelCluster 実行ファイルをコマンドラインパスに追加する (p. 9)

前提条件• Python 3 バージョン 3.6+ または Python 2 バージョン 2.7

Python のインストールを確認します。

$ python --version

ご使用のコンピュータに Python がインストールされていない場合、または別のバージョンの Python をインストールする場合は、「Linux に AWS ParallelCluster をインストールする (p. 5)」の手順に従います。

8

Page 16: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドmacOS

pip を使用して macOS に AWS ParallelCluster をインストールするpip を直接使用して AWS ParallelCluster をインストールすることもできます。pip がない場合は、メインの「インストールに関するトピック (p. 2)」の手順に従います。macOS のバージョンにすでにPython と pip3 --version がインストールされているかどうかを確認するには、pip3 を実行します。

$ pip3 --version

MacOS に AWS ParallelCluster をインストールするには、以下の手順に従います。

1. Python.org のダウンロードページから Python の最新バージョンをダウンロードしてインストールします。

2. Python Packaging Authority が提供する pip3 インストールスクリプトをダウンロードして実行します。

$ curl -O https://bootstrap.pypa.io/get-pip.py$ python3 get-pip.py --user

3. 新しくインストールした pip3 を使用して AWS ParallelCluster をインストールします。Python バージョン 3+ を使用する場合、pip3 コマンドの使用が推奨されます。

$ python3 -m pip install aws-parallelcluster --upgrade --user

4. AWS ParallelCluster が正しくインストールされたことを確認します。

$ pcluster version2.6.1

プログラムが見つからない場合は、そのプログラムをコマンドラインパスに追加 (p. 9)します。

最新バージョンにアップグレードするには、インストールコマンドを再び実行します。

$ pip3 install aws-parallelcluster --upgrade --user

AWS ParallelCluster 実行ファイルをコマンドラインパスに追加するpip を使用してインストールした後は、オペレーティングシステムの PATH 環境変数への pcluster プログラムの追加が必要になる場合があります。プログラムの場所は、Python のインストール先によって異なります。

Example AWS ParallelCluster のインストール場所 - Python 3.7 および pip のある macOS (ユーザーモード)

~/Library/Python/3.6/bin

前の例のバージョン用に使用する Python のバージョンで置き換えます。

Python のインストール先がわからない場合は、which python を実行します。

$ which python3/usr/local/bin/python3

9

Page 17: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドWindows

出力は、実際のプログラムへのパスではなくシンボリックリンクへのパスになる場合があります。ls -alを実行して、その参照先を確認します。

$ ls -al /usr/local/bin/python3lrwxr-xr-x 1 username admin 36 Mar 12 12:47 /usr/local/bin/python3 -> ../Cellar/python/3.6.8/bin/python3

pip は、Python プログラムが含まれている同じフォルダに、アプリケーションをインストールします。このフォルダを PATH 変数に追加します。

PATH 変数を変更するには (Linux, macOS, or Unix)

1. ユーザーフォルダでシェルのプロファイルスクリプトを見つけます。現在使用しているシェルが不明な場合は、echo $SHELL を実行します。

$ ls -a ~. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads

• Bash – .bash_profile、.profile、または .bash_login。• Zsh – .zshrc。• Tcsh – .tcshrc、.cshrc、または .login。

2. プロファイルスクリプトにエクスポートコマンドを追加します。

export PATH=~/.local/bin:$PATH

このコマンドは、現在の PATH 変数にパス (この例では ~/.local/bin) を追加します。3. 現在のセッションにプロファイルをロードします。

$ source ~/.bash_profile

Windows に AWS ParallelCluster をインストールするにはWindows に AWS ParallelCluster をインストールするには、Python のパッケージマネージャーである pipを使用します。pip がすでに存在する場合は、メインの「インストールに関するトピック (p. 2)」の手順に従います。

セクション• Python と pip を使用して Windows に AWS ParallelCluster をインストールする (p. 10)• AWS ParallelCluster 実行ファイルをコマンドラインパスに追加する (p. 11)

Python と pip を使用して Windows に AWS ParallelCluster をインストールするPython Software Foundation は、pip を含む Windows 用インストーラを提供しています。

Python と pip をインストールするには (Windows)

1. Python.org のダウンロードページから Python Windows x86-64 のインストーラをダウンロードします。

10

Page 18: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドWindows

2. インストーラを実行します。3. [Add Python 3 to PATH] を選択します。4. [Install Now] を選択します。

インストーラはユーザーフォルダに Python をインストールし、プログラムフォルダをユーザーパスに追加します。

pip3 を使用して AWS ParallelCluster をインストールするには (Windows)

Python version 3+ を使用する場合は、pip3 コマンドの使用が推奨されます。

1. [スタート] メニューから [コマンドプロンプト] を開きます。2. 次のコマンドを使用して、Python と pip のいずれも正しくインストールされたことを確認します。

C:\>python --versionPython 3.7.5C:\>pip3 --versionpip 20.0.2 from C:\Users\username\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)

3. pip を使用して AWS ParallelCluster をインストールします。

C:\>pip3 install aws-parallelcluster

4. AWS ParallelCluster が正しくインストールされたことを確認します。

C:\>pcluster version2.6.1

最新バージョンにアップグレードするには、インストールコマンドを再び実行します。

C:\>pip3 install --user --upgrade aws-parallelcluster

AWS ParallelCluster 実行ファイルをコマンドラインパスに追加するpip を使用して AWS ParallelCluster インストールしたら、オペレーティングシステムの PATH 環境変数への pcluster プログラムの追加が必要になる場合があります。

次のコマンドを実行すると、aws プログラムがインストールされた場所を確認できます。

C:\>where pclusterC:\Users\username\AppData\Roaming\Python\Python36\Scripts\pcluster.exe

このコマンドで結果が返らない場合は、手動でパスを追加する必要があります。コマンドラインまたはWindows Explorer を使用して、コンピュータのインストールされている場所を見つけます。一般的なパスは、次のとおりです。

• Python 3 および pip3 – C:\Program Files\Python36\Scripts\• Python 3 と pip3 --user オプション – %APPDATA%\Python\Python36\Scripts

11

Page 19: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster の設定

Note

バージョン番号が含まれるフォルダ名は、異なる場合があります。前述の例は Python36 を示しています。必要に応じて使用しているバージョン番号に置き換えます。

PATH 変数を変更するには (Windows)

1. Windows キーを押し、「environment variables」と入力します。2. [Edit environment variables for your account] を選択します。3. PATH を選択して、編集 を選択します。4. このパスを [変数値] フィールドに追加します。以下に例を示します。C:\new\path

5. [OK] を 2 回選択して、新しい設定を適用します。6. 実行中のコマンドプロンプトを閉じ、コマンドプロンプトウィンドウを再度開きます。

AWS ParallelCluster の設定AWS ParallelCluster をインストールしたら、以下の設定のステップを完了します。

まず、AWS 認証情報を設定します。詳細については、「AWS CLI ユーザーガイド」の「AWS CLI の設定」を参照してください。

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLEAWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYDefault region name [us-east-1]: us-east-1Default output format [None]:

クラスターを起動するリージョンには、少なくとも 1 つの Amazon EC2 キーペアが必要です。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Amazon EC2 キーペア」を参照してください。

$ pcluster configure

設定ウィザードでは、クラスターを作成するために必要な情報をすべて入力するよう求められます。スケジューラ AWS Batch として使用する場合のシーケンス内容は、SGE、Slurm、Torque を使用する場合と異なります。

SGE, Slurm, or Torque

有効な AWS リージョン識別子のリストから、クラスターを実行するリージョンを選択します。

Allowed values for the AWS Region ID:1. ap-northeast-12. ap-northeast-23. ap-south-14. ap-southeast-15. ap-southeast-26. ca-central-17. eu-central-18. eu-north-19. eu-west-110. eu-west-211. eu-west-312. sa-east-1

12

Page 20: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster の設定

13. us-east-114. us-east-215. us-west-116. us-west-2AWS Region ID [ap-northeast-1]:

クラスターで使用するスケジューラを選択します。

Allowed values for Scheduler:1. sge2. torque3. slurm4. awsbatchScheduler [sge]:

オペレーティングシステムを選択します。

Allowed values for Operating System:1. alinux2. alinux23. centos64. centos75. ubuntu16046. ubuntu1804Operating System [alinux]:

Note

alinux2 のサポートは AWS ParallelCluster 2.6.0 で追加されました。

コンピュートノードのクラスターの最小サイズと最大サイズを入力します。これは、インスタンスの数で測定されます。

Minimum cluster size (instances) [0]:Maximum cluster size (instances) [10]:

マスターノードとコンピュートノードのインスタンスタイプが入力されます。インスタンスタイプの場合、アカウントインスタンスの制限は、要件を満たすのに十分な大きさです。詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「オンデマンドインスタンス制限」を参照してください。

Master instance type [t2.micro]: Compute instance type [t2.micro]:

キーペアは、選択したリージョンに Amazon EC2 で登録されているキーペアから選択されます。

Allowed values for EC2 Key Pair Name:1. prod-uswest1-key2. test-uswest1-keyEC2 Key Pair Name [prod-uswest1-key]:

前のステップが完了したら、既存の VPC を使用するか、AWS ParallelCluster が VPC を作成できるようにするかを決定します。適切に設定された VPC がない場合は、AWS ParallelCluster で新しい VPCを作成できます。同じパブリックサブネット内のマスターノードとコンピュートノードの両方を使用するか、プライベートサブネット内のすべてのノードを持つパブリックサブネット内のマスターノードのみを使用します。リージョン内の VPC 数の上限に達することは可能です。デフォルトの制限は、

13

Page 21: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster の設定

リージョンあたり 5 つの VPC です。この制限の詳細および増加をリクエストする方法については、「Amazon VPC ユーザーガイド」の「VPC とサブネット」を参照してください。

AWS ParallelCluster が VPC を作成できるようにする場合は、すべてのノードをパブリックサブネットに配置するかどうかを決定する必要があります。

Automate VPC creation? (y/n) [n]: yAllowed values for Network Configuration:1. Master in a public subnet and compute fleet in a private subnet2. Master and compute fleet in the same public subnetNetwork Configuration [Master in a public subnet and compute fleet in a private subnet]: 1Beginning VPC creation. Please do not leave the terminal until the creation is finalized

新しい VPC を作成しない場合、既存の VPC を選択する必要があります。

Automate VPC creation? (y/n) [n]: nAllowed values for VPC ID:1. subnet-0b4ad9c4678d3c7ad2. vpc-0e87c753286f37eef | ParallelClusterVPC-20191118233938 | 5 subnets insideVPC ID [vpc-0b4ad9c4678d3c7ad]: 1

VPC を選択したら、既存のサブネットを使用するか、新しいサブネットを作成するかを決定します。

Automate Subnet creation? (y/n) [y]: y

Creating CloudFormation stack...Do not leave the terminal until the process has finished

AWS Batch

有効な AWS リージョン識別子のリストから、クラスターを実行するリージョンを選択します。

Allowed values for AWS Region ID:1. ap-northeast-12. ap-northeast-23. ap-south-14. ap-southeast-15. ap-southeast-26. ca-central-17. eu-central-18. eu-north-19. eu-west-110. eu-west-211. eu-west-312. sa-east-113. us-east-114. us-east-215. us-west-116. us-west-2AWS Region ID [ap-northeast-1]:

クラスターで使用するスケジューラを選択します。

Allowed values for Scheduler:

14

Page 22: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster の設定

1. sge2. torque3. slurm4. awsbatchScheduler [sge]:

awsbatch がスケジューラとして選択されている場合、alinux または alinux2 がオペレーティングシステムとして使用されます。

コンピュートノードのクラスターの最小サイズと最大サイズを入力します。これは vCPU 単位で測定されます。

Minimum cluster size (vcpus) [0]:Maximum cluster size (vcpus) [10]:

マスターノードのインスタンスタイプが入力されます。awsbatch スケジューラを使用する場合、コンピューティングノードは optimal のインスタンスタイプを使用します。

Master instance type [t2.micro]:

Amazon EC2 キーペアは、選択したリージョンに Amazon EC2 で登録されているキーペアから選択されます。

Allowed values for EC2 Key Pair Name:1. prod-uswest1-key2. test-uswest1-keyEC2 Key Pair Name [prod-uswest1-key]:

既存の VPC を使用するか、AWS ParallelCluster が VPC を作成できるようにするかを決定します。適切に設定された VPC がない場合は、AWS ParallelCluster で新しい VPC を作成できます。同じパブリックサブネット内のマスターノードとコンピュートノードの両方を使用するか、プライベートサブネット内のすべてのノードを持つパブリックサブネット内のマスターノードのみを使用します。リージョン内の VPC 数の上限に達することは可能です。VPC のデフォルト数は 5 です。この制限の詳細および増加をリクエストする方法については、「Amazon VPC ユーザーガイド」の「VPC とサブネット」を参照してください。

AWS ParallelCluster が VPC を作成できるようにする場合は、すべてのノードをパブリックサブネットに配置するかどうかを決定します。

Automate VPC creation? (y/n) [n]: yAllowed values for Network Configuration:1. Master in a public subnet and compute fleet in a private subnet2. Master and compute fleet in the same public subnetNetwork Configuration [Master in a public subnet and compute fleet in a private subnet]: 1Beginning VPC creation. Please do not leave the terminal until the creation is finalized

新しい VPC を作成しない場合、既存の VPC を選択する必要があります。

Automate VPC creation? (y/n) [n]: nAllowed values for VPC ID:1. subnet-0b4ad9c4678d3c7ad2. vpc-0e87c753286f37eef | ParallelClusterVPC-20191118233938 | 5 subnets insideVPC ID [vpc-0b4ad9c4678d3c7ad]: 1

15

Page 23: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドCfnCluster から AWS ParallelCluster への移行

VPC を選択したら、既存のサブネットを使用するか、新しいサブネットを作成するかを決定します。

Automate Subnet creation? (y/n) [y]: y

Creating CloudFormation stack...Do not leave the terminal until the process has finished

前述のステップが完了したら、VPC にシンプルなクラスターが起動します。この際、パブリック IP をサポートしている既存のサブネットを使用します (サブネットのルートテーブルは 0.0.0.0/0 => igw-xxxxxx)。次の点に注意してください。

• VPC には DNS Resolution = yes と DNS Hostnames = yes が必要です。• リージョンに対して正しい domain-name がある DHCP オプションも必要です。デフォルトの DHCP

オプションセットでは、必要な AmazonProvidedDNS がすでに指定されています。複数のドメインネームサーバを指定する場合は、「Amazon VPC ユーザーガイド」の「DHCP オプションセット」を参照してください。

すべての設定に有効な値が入力されたら、create コマンドを実行して、クラスターを起動することができます。

$ pcluster create mycluster

クラスターが「CREATE_COMPLETE」ステータスになったら、通常の SSH クライアント/設定を使用して接続できます。Amazon EC2 インスタンスに接続する方法の詳細については、Linux インスタンス用Amazon EC2 ユーザーガイドの「EC2 ユーザーガイド」を参照してください。

CfnCluster から AWS ParallelCluster への移行AWS ParallelCluster は、強化されたバージョンの CfnCluster です。

現在 CfnCluster を使用している場合は、代わりに AWS ParallelCluster を使用して新しいクラスターを作成することをお勧めします。CfnCluster は引き続き使用できますが、現在は開発されていないため、新しい機能は追加されません。

CfnCluster と AWS ParallelCluster の主な違いについては、次のセクションを参照してください。

AWS ParallelCluster CLI は異なる一連のクラスターを管理します

cfncluster CLI で作成されたクラスターを pcluster CLI で管理することはできません。以下のコマンドは、CfnCluster によって作成されたクラスターでは動作しません。

pcluster listpcluster update cluster_namepcluster start cluster_namepcluster status cluster_name

CfnCluster で作成したクラスターを管理するには、cfncluster CLI を使用する必要があります。

古いクラスターを管理するために CfnCluster パッケージが必要な場合は、Python 仮想環境からインストールして使用することをお勧めします。

AWS ParallelCluster および CfnCluster では、使用される IAM カスタムポリシーが異なります

16

Page 24: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドサポートされているリージョン

以前に CfnCluster クラスター作成で使用した、カスタム IAM ポリシーを AWS ParallelCluster で使用することはできません。AWS ParallelCluster のカスタムポリシーが必要な場合は、新しく作成する必要があります。AWS ParallelCluster ガイドを参照してください。

AWS ParallelCluster および CfnCluster では、使用される設定ファイルが異なります

AWS ParallelCluster 設定ファイルは、~/.parallelcluster フォルダにあります。CfnCluster 設定ファイルは、~/.cfncluster フォルダにあります。

AWS ParallelCluster で既存の CfnCluster 設定ファイルを使用する場合は、以下の操作を行う必要があります。

1. 設定ファイルを ~/.cfncluster/config から ~/.parallelcluster/config に移動します。2. extra_json 設定パラメータを使用する場合は、以下のように変更します。

CfnCluster 設定:

extra_json = { "cfncluster" : { } }

AWS ParallelCluster 設定:

extra_json = { "cluster" : { } }

AWS ParallelCluster で、ganglia はデフォルトで無効になっています

AWS ParallelCluster で、ganglia はデフォルトで無効になっていますganglia を有効にするには:

1. 以下に示すように extra_json を設定します。

extra_json = { "cluster" : { "ganglia_enabled" : "yes" } }

2. また、ポート 80 への接続を許可するようにマスターセキュリティグループを変更します。

パブリック IP からポート 80 へのインバウンド接続を許可するには、新しいセキュリティグループルールを追加して、parallelcluster-<CLUSTER_NAME>-MasterSecurityGroup-<xxx> セキュリティグループを変更する必要があります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「セキュリティグループへのルールの追加」を参照してください。

サポートされているリージョンAWS ParallelCluster は以下の AWS リージョンで利用できます。

リージョン名 リージョン

米国東部 (オハイオ) us-east-2

米国東部(バージニア北部) us-east-1

米国西部 (北カリフォルニア) us-west-1

米国西部 (オレゴン) us-west-2

アジアパシフィック (香港) ap-east-1

アジアパシフィック (ムンバイ) ap-south-1

17

Page 25: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドサポートされているリージョン

リージョン名 リージョン

アジアパシフィック (ソウル) ap-northeast-2

アジアパシフィック (シンガポール) ap-southeast-1

アジアパシフィック (シドニー) ap-southeast-2

アジアパシフィック (東京) ap-northeast-1

カナダ (中部) ca-central-1

中国 (北京) cn-north-1

中国 (寧夏) cn-northwest-1

欧州 (フランクフルト) eu-central-1

欧州 (アイルランド) eu-west-1

欧州 (ロンドン) eu-west-2

欧州 (パリ) eu-west-3

欧州 (ストックホルム) eu-north-1

南米 (サンパウロ) sa-east-1

AWS GovCloud (米国東部) us-gov-east-1

AWS GovCloud (US-West) us-gov-west-1

18

Page 26: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster

AWS ParallelCluster を使用するトピック

• AWS ParallelCluster CLI コマンド (p. 19)• ネットワーク設定 (p. 29)• カスタムブートストラップアクション (p. 33)• Amazon S3 を使用する (p. 35)• スポットインスタンスの使用 (p. 35)• AWS ParallelCluster の AWS Identity and Access Management ルール (p. 37)• AWS ParallelCluster によってサポートされているスケジューラ (p. 49)• Amazon CloudWatch Logs との統合 (p. 55)• Elastic Fabric Adapter (p. 56)• Intel MPI を有効にする (p. 56)• Intel HPC プラットフォームの仕様 (p. 57)• NICE DCV を介してマスターインスタンスに接続する (p. 57)

AWS ParallelCluster CLI コマンドは pcluster CLI です。AWS クラウドで HPC クラスターを起動および管理するには、AWSParallelCluster CLI を使用します。

pcluster [ -h ] ( create | update | delete | start | stop | status | list | instances | ssh | dcv | createami | configure | version ) ...

引数pcluster command

選択肢:configure (p. 20)、create (p. 20)、createami (p. 21)、dcv (p. 22)、delete (p. 23)、instances (p. 24)、list (p. 25)、ssh (p. 25)、start (p. 26)、status (p. 27)、stop (p. 27)、update (p. 28)、version (p. 29)

サブコマンド:トピック

• pcluster configure (p. 20)• pcluster create (p. 20)• pcluster createami (p. 21)• pcluster dcv (p. 22)• pcluster delete (p. 23)• pcluster instances (p. 24)• pcluster list (p. 25)• pcluster ssh (p. 25)• pcluster start (p. 26)• pcluster status (p. 27)

19

Page 27: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster configure

• pcluster stop (p. 27)• pcluster update (p. 28)• pcluster version (p. 29)

pcluster configureAWS ParallelCluster の設定を開始します。

pcluster configure [ -h ] [ -c CONFIG_FILE ]

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

デフォルトは ~/.parallelcluster/config です。

詳細については、「the section called “AWS ParallelCluster の設定” (p. 12)」を参照してください。

pcluster create新しいクラスターを作成します。

pcluster create [ -h ] [ -c CONFIG_FILE ] [ -r REGION ] [ -nw ] [ -nr ] [ -u TEMPLATE_URL ] [ -t CLUSTER_TEMPLATE ] [ -p EXTRA_PARAMETERS ] [ -g TAGS ] cluster_name

位置引数cluster_name

クラスターの名前を定義します。AWS CloudFormation スタック名はparallelcluster-cluster_nameです。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

デフォルトは ~/.parallelcluster/config です。-r REGION, --region REGION

使用する AWS リージョンを指定します。the section called “pclusterconfigure” (p. 20) を使用して、指定されたリージョンにデフォルトを設定します。

20

Page 28: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster createami

-nw, --nowait

スタックコマンドの実行後にスタックイベントを待機しないことを示します。

デフォルトは False です。-nr, --norollback

エラー時に スタックのロールバックを無効にします。

デフォルトは False です。-u TEMPLATE_URL, --template-url TEMPLATE_URL

作成時に使用された場合は、カスタム AWS CloudFormation テンプレートの URL を指定します。-t CLUSTER_TEMPLATE, --cluster-template CLUSTER_TEMPLATE

使用するクラスターテンプレートを示します。-p EXTRA_PARAMETERS, --extra-parameters EXTRA_PARAMETERS

スタック作成に追加のパラメータを追加します。-g TAGS, --tags TAGS

スタックに追加するその他のタグを指定します。

コマンドが呼び出され、その呼び出しのステータスのポーリングが開始された場合は、「Ctrl-C」を使用して終了するのが安全です。pcluster status mycluster を呼び出すことで、現在のステータスの表示に戻ることができます。

例:

$ pcluster create mycluster$ pcluster create mycluster --tags '{ "Key1" : "Value1" , "Key2" : "Value2" }'

pcluster createami(Linux/macOS) AWS ParallelCluster で使用するカスタム AMI を作成します。

pcluster createami [ -h ] - ai BASE_AMI_ID - os BASE_AMI_OS [ -ap CUSTOM_AMI_NAME_PREFIX ] [ -cc CUSTOM_AMI_COOKBOOK ] [ -c CONFIG_FILE ] [ -r REGION ]

必要な依存関係AWS ParallelCluster CLI に加えて、次の依存関係も pcluster createami を実行する必要があります。

• Packer: https://www.packer.io/downloads.htmlから最新バージョンをダウンロードしてください。• ChefDK: https://downloads.chef.io/chefdk/から最新バージョンをダウンロードしてください。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-ai BASE_AMI_ID, --ami-id BASE_AMI_ID

AWS ParallelCluster AMI の構築に使用する基本 AMI を指定します。

21

Page 29: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster dcv

-os BASE_AMI_OS, --os BASE_AMI_OS

基本 AMI の OS を指定します。有効なオプションは、alinux、alinux2、ubuntu1604、ubuntu1804、centos6、centos7 です。

Note

alinux2 のサポートは AWS ParallelCluster 2.6.0 で追加されました。ubuntu1804 のサポートは AWS ParallelCluster 2.5.0 で追加されました。

-ap CUSTOM_AMI_NAME_PREFIX, --ami-name-prefix CUSTOM_AMI_NAME_PREFIX

作成される AWS ParallelCluster AMI のプレフィックス名を指定します。

デフォルトは custom-ami- です。-cc CUSTOM_AMI_COOKBOOK, --custom-cookbook CUSTOM_AMI_COOKBOOK

AWS ParallelCluster AMI の構築に使用するクックブックを指定します。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

デフォルトは ~/.parallelcluster/config です。-r REGION, --region REGION

接続するリージョンを指定します。

pcluster dcvマスターインスタンスで実行されている NICE DCV サーバーと対話します。

pcluster dcv [ -h ] ( connect )

pcluster dcv command

選択肢: connect (p. 22)

Note

ubuntu1804 での pcluster dcv コマンドのサポートは AWS ParallelCluster 2.6.0 で追加されました。centos7 での pcluster dcv コマンドのサポートは AWS ParallelCluster 2.5.0 で追加されました。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。

サブコマンドpcluster dcv connect

pcluster dcv connect [ -h ] [ -k SSH_KEY_PATH ] cluster_name

22

Page 30: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster delete

Important

URL は、発行されてから 30 秒後に有効期限が切れます。URL の有効期限が切れる前に接続が確立されていない場合、pcluster dcv connect を再度実行して新しい URL を生成します。

位置引数

cluster_name

接続するクラスターの名前を指定します。

名前付き引数

-h, --help

指定したコマンドのヘルプテキストを表示します。-k SSH_KEY_PATH, --key-path SSH_KEY_PATH

接続に使用する SSH キーのキーパス。

キーは、the section called “key_name” (p. 68) 設定パラメータでクラスター作成時に指定したものである必要があります。この引数はオプションですが、指定しない場合は、SSH クライアントに対してデフォルトでそのキーが使用可能になる必要があります。たとえば、ssh-add で ssh-agent に追加します。

-s, --show-url

NICE DCV セッションに接続するためのワンタイム URL を表示します。このオプションを指定すると、デフォルトのブラウザは開きません。

Note

--show-url オプションのサポートは、AWS ParallelCluster 2.5.1 で追加されました。

例:

$ pcluster dcv connect -k ~/.ssh/id_rsa

マスターインスタンスで実行中の NICE DCV セッションに接続するためのデフォルトブラウザを開きます。

NICE DCV セッションがまだ開始されていない場合は、新しいセッションが作成されます。

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

pcluster delete [ -h ] [ -c CONFIG_FILE ] [ -r REGION ] [ -nw ] cluster_name

位置引数cluster_name

削除するクラスターの名前を指定します。

23

Page 31: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster instances

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

デフォルトは ~/.parallelcluster/config です。--keep-logs

クラスターを削除した後も CloudWatch Logs データを保持します。ロググループは手動で削除されるまで残りますが、ログイベントは the section called “retention_days” (p. 75) 設定に基づいて期限切れになります。この設定はデフォルトで 14 日です。

Note

--keep-logs 引数のサポートは AWS ParallelCluster 2.6.0 で追加されました。

-r REGION, --region REGION

接続するリージョンを指定します。

コマンドが呼び出され、その呼び出しのステータスのポーリングが開始された場合は、「Ctrl-C」を使用して終了するのが安全です。pcluster status mycluster を呼び出すことで、現在のステータスの表示に戻ることができます。

pcluster instancesクラスター内のすべてのインスタンスのリストが表示されます。

pcluster instances [ -h ] [ -c CONFIG_FILE ] [ -r REGION ] cluster_name

位置引数cluster_name

指定された名前のクラスターのインスタンスを表示します。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

デフォルトは ~/.parallelcluster/config です。-r REGION, --region REGION

接続するリージョンを指定します。

24

Page 32: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster list

pcluster listAWS ParallelCluster に関連付けられているスタックのリストが表示されます。

pcluster list [ -h ] [ -c CONFIG_FILE ] [ -r REGION ]

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。--color

クラスターのステータスを色で表示します。

デフォルトは False です。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

デフォルトは c です。-r REGION, --region REGION

接続するリージョンを指定します。

「parallelcluster-*」という名前の AWS CloudFormation スタックの名前を一覧表示します。

pcluster ssh事前に入力されているクラスターのユーザー名と IP アドレスで ssh コマンドを実行します。任意の引数は ssh コマンドの末尾に付加されます。このコマンドは、設定ファイルのエイリアスセクションでカスタマイズできます。

pcluster ssh [ -h ] [ -d ] cluster_name

位置引数cluster_name

接続するクラスターの名前を指定します。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-d, --dryrun

実行するコマンドを出力して終了します。

デフォルトは False です。

例:

25

Page 33: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster start

$ pcluster ssh -d mycluster -i ~/.ssh/id_rsa

事前に入力されているクラスターのユーザー名と IP アドレスで ssh コマンドを返します。

$ ssh [email protected] -i ~/.ssh/id_rsa

ssh コマンドは、[エイリアス] セクション (p. 61) のグローバル設定ファイルで定義されます。次のようにカスタマイズできます。

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

代入される変数:

CFN_USER

the section called “base_os” (p. 63) のユーザー名が選択されています。MASTER_IP

マスターノードの IP アドレス。ARGS

ssh コマンドに渡すオプションの引数。

pcluster start停止されているクラスターのコンピューティングシステムを開始します。

pcluster start [ -h ] [ -c CONFIG_FILE ] [ -r REGION ] cluster_name

位置引数cluster_name

指定したクラスター名のコンピューティングシステムを起動します。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

デフォルトは ~/.parallelcluster/config です。-r REGION, --region REGION

接続するリージョンを指定します。

このコマンドは、Auto Scaling グループのパラメータを次のいずれかに設定します。

• クラスターの作成に使用されたテンプレートの初期設定値 (max_queue_size およびinitial_queue_size)。

26

Page 34: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster status

• 最初に作成してからクラスターの更新に使用された設定値。

pcluster statusクラスターの現在の状態をプルします。

pcluster status [ -h ] [ -c CONFIG_FILE ] [ -r REGION ] [ -nw ] cluster_name

位置引数cluster_name

指定された名前のクラスターのステータスを表示します。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

デフォルトは ~/.parallelcluster/config です。-r REGION, --region REGION

接続するリージョンを指定します。-nw, --nowait

スタックコマンドの実行後にスタックイベントを待機しないことを示します。

デフォルトは False です。

pcluster stopコンピューティングフリートを停止し、マスターノードを実行中のままにします。

pcluster stop [ -h ] [ -c CONFIG_FILE ] [ -r REGION ] cluster_name

位置引数cluster_name

指定したクラスター名のコンピューティングシステムを停止します。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

27

Page 35: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster update

デフォルトは ~/.parallelcluster/config です。-r REGION, --region REGION

接続するリージョンを指定します。

Auto Scaling グループパラメータを最小数/最大数/望ましい数 =0/0/0 に設定し、コンピューティングシステムを終了します。マスターは現在も実行されています。すべての EC2 リソースを終了して EC2 の料金が発生するのを回避するには、クラスターを削除することを検討してください。

pcluster update設定ファイルの値を使用して、実行中のクラスターを更新します。

pcluster update [ -h ] [ -c CONFIG_FILE ] [ -r REGION ] [ -nw ] [ -nr ] [ -t CLUSTER_TEMPLATE ] [ -p EXTRA_PARAMETERS ] [ -rd ] cluster_name

位置引数cluster_name

更新するクラスターの名前を指定します。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。-c CONFIG_FILE, --config CONFIG_FILE

使用する代替設定ファイルを指定します。

デフォルトは ~/.parallelcluster/config です。-r REGION, --region REGION

接続するリージョンを指定します。-nw, --nowait

スタックコマンドの実行後にスタックイベントを待機しないことを示します。

デフォルトは False です。-nr, --norollback

エラー時に AWS CloudFormation スタックのロールバックを無効にします。

デフォルトは False です。-t CLUSTER_TEMPLATE, --cluster-template CLUSTER_TEMPLATE

使用するクラスターテンプレートのセクションを指定します。-p EXTRA_PARAMETERS, --extra-parameters EXTRA_PARAMETERS

スタック更新に追加のパラメータを追加します。-rd, --reset-desired

Auto Scaling グループの現在の容量を初期設定値にリセットします。

デフォルトは False です。

28

Page 36: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpcluster version

コマンドが呼び出され、その呼び出しのステータスのポーリングが開始された場合は、「Ctrl-C」を使用して終了するのが安全です。pcluster status mycluster を呼び出すことで、現在のステータスの表示に戻ることができます。

pcluster versionAWS ParallelCluster のバージョンを表示します。

pcluster version [ -h ]

コマンド固有のフラグについて、pcluster [command] –help を実行します。

名前付き引数-h, --help

指定したコマンドのヘルプテキストを表示します。

コマンドが呼び出され、その呼び出しのステータスのポーリングが開始された場合は、「Ctrl-C」を使用して終了するのが安全です。pcluster status mycluster を呼び出すことで、現在のステータスの表示に戻ることができます。

ネットワーク設定AWS ParallelCluster はネットワークに Amazon Virtual Private Cloud (VPC) を使用します。VPC は、クラスターをデプロイするための柔軟で設定可能なネットワーキングプラットフォームを提供します。

VPC では、DNS Resolution = yes、DNS Hostnames = yes および DHCP オプションがリージョンに対して正しいドメイン名を持つ必要があります。デフォルトの DHCP オプションセットでは、必要なAmazonProvidedDNSがすでに指定されています。複数のドメインネームサーバーを指定する場合は、「Amazon VPC ユーザーガイド」の「DHCP オプションセット」を参照してください。

AWS ParallelCluster では、次の高レベル設定がサポートされています。

• マスターインスタンスとコンピュートインスタンスの両方に単一のサブネット。• 1 つのパブリックサブネットにマスターを持ち、プライベートサブネットにコンピュートインスタンス

を持つ 2 つのサブネット。サブネットは、新規または既存のサブネットにすることができます。

これらの設定はすべて、パブリック IP アドレス指定の有無にかかわらず動作できます。また、AWSParallelCluster は、すべての AWS リクエストに HTTP プロキシを利用するようにデプロイすることもできます。これらの設定を組み合わせることで、さまざまなデプロイシナリオにつながります。たとえば、インターネット経由ですべてのアクセスが可能な単一のパブリックサブネットを設定することができます。また、すべてのトラフィックを AWS Direct Connect および HTTP プロキシ経由で完全にプライベートネットワークを設定することもできます。

これらのシナリオのいくつかについては、以下のアーキテクチャ図を参照してください。

単一パブリックサブネット内の AWS ParallelClusterこのアーキテクチャの設定には、次の設定が必要です。

[vpc public]vpc_id = vpc-xxxxxx

29

Page 37: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster 2 つのサブネットを使用する

master_subnet_id = subnet-<public>use_public_ips = true

the section called “use_public_ips” (p. 89) 設定を false に指定できません。インターネットゲートウェイでは、すべてのインスタンスにグローバルに一意の IP アドレスが必要であるためです。詳細については、Amazon VPC ユーザーガイド の「インターネットアクセスを有効にする」を参照してください。

AWS ParallelCluster 2 つのサブネットを使用する

コンピューティングインスタンス用に新しいプライベートサブネットを作成するための設定には、次の設定が必要です。

値はすべてサンプルです

[vpc public-private-new]vpc_id = vpc-xxxxxxmaster_subnet_id = subnet-<public>compute_subnet_cidr = 10.0.1.0/24

既存のプライベートネットワークを使用するための設定には、次の設定が必要です。

[vpc public-private-existing]vpc_id = vpc-xxxxxxmaster_subnet_id = subnet-<public>compute_subnet_id = subnet-<private>

30

Page 38: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS Direct Connect を使用して接続された単一

プライベートサブネット内の AWS ParallelCluster

どちらの設定でも、コンピューティングインスタンスへのウェブアクセスを有効にするには、NAT ゲートウェイまたは内部プロキシが必要です。

AWS Direct Connect を使用して接続された単一プライベートサブネット内の AWS ParallelCluster

このアーキテクチャの設定には、次の設定が必要です。

[cluster private-proxy]proxy_server = http://proxy.corp.net:8080

[vpc private-proxy]vpc_id = vpc-xxxxxxmaster_subnet_id = subnet-<private>use_public_ips = false

use_public_ips が false に設定されている場合は、すべてのトラフィックにプロキシを使用するように VPC を正しく設定する必要があります。ウェブアクセスはマスターインスタンスとコンピューティングインスタンスの両方に必要です。

awsbatch タスクスケジューラによる AWSParallelClusterawsbatch をスケジューラタイプとして使用すると、AWS ParallelCluster によって、AWS Batch マネージドのコンピューティング環境が作成されます。AWS Batch 環境では、compute_subnet で起動されて

31

Page 39: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドawsbatch タスクスケジューラによる AWS ParallelCluster

いる、Amazon Elastic Container Service (Amazon ECS) コンテナインスタンスを管理します。AWS Batchが正しく機能するためには、Amazon ECS コンテナインスタンスは Amazon ECS サービスエンドポイントと通信するために外部ネットワークアクセスを必要とします。これは以下のシナリオに変換されます。

• compute_subnet は NAT ゲートウェイを使用してインターネットにアクセスします。(この手法をお勧めします。)

• compute_subnet で起動されたインスタンスはパブリック IP アドレスを持ち、インターネットゲートウェイを介してインターネットにアクセスできます。

さらに、マルチノード並列ジョブに興味がある場合は (AWS Batch ドキュメントによる) 以下を参照してください。

AWS Batch のマルチノードの並列ジョブは Amazon ECS awsvpc ネットワークモードを使用して、マルチノードの並列ジョブコンテナに Amazon EC2 インスタンスと同じネットワークプロパティを付与します。各マルチノードの並列ジョブコンテナは、独自の Elastic Network Interface、プライマリプライベートIP アドレス、および内部の DNS ホスト名を取得します。ネットワークインターフェイスは、ホストコンピューティングリソースと同じ Amazon VPC サブネットに作成されます。コンピューティングリソースに適用されるすべてのセキュリティグループも同じく適用されます。

Amazon ECS タスクネットワークを使用している場合は、ネットワークモードは、Amazon EC2 起動タイプを使用するタスクには、パブリック IP アドレスを使用する Elastic Network Interface を提供しません。Amazon EC2 起動タイプを使用するタスクでインターネットにアクセスするには、NAT ゲートウェイを使用するよう設定されたプライベートサブネットでタスクを起動する必要があります。

そのため、クラスターがマルチノード並列ジョブを実行するには NAT ゲートウェイを設定する方法しかありません。

32

Page 40: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドカスタムブートストラップアクション

詳細については、以下の AWS のドキュメントを参照してください。

• AWS Batch マネージド型のコンピューティング環境• AWS Batch マルチノードの並列ジョブ• awsvpc ネットワークモードでの Amazon ECS タスクネットワーキング

カスタムブートストラップアクションAWS ParallelCluster では、クラスター作成時にメインブートストラップアクションの前 (インストール前)または後 (インストール後) に任意のコードを実行できます。このコードは通常 Amazon Simple StorageService (Amazon S3) に格納され、クラスター作成中に HTTP または HTTPS を介してアクセスできます。コードは root として実行され、クラスター OS でサポートされている任意のスクリプト言語 (通常はbash または python) で実行できます。

インストール前のアクションは、NAT、Amazon Elastic Block Store (Amazon EBS)、スケジューラの設定など、クラスターのデプロイブートストラップの前に呼び出されます。一般的なインストール前のアクションには、ストレージの変更、追加のユーザーまたはパッケージの追加などがあります。

インストール後のアクションは、インスタンスが完了したと見なされる前の最後のアクションとして、クラスターのブートストラップが完了した後に呼び出されます。一般的なインストール後のアクションには、スケジューラ設定の変更、ストレージまたはパッケージの変更などがあります。

引数は、設定でそれらを指定することでスクリプトに渡すことができます。これらの引数はインストール前後のアクションに二重引用符で囲まれて渡されます。

インストール前またはインストール後のアクションに失敗すると、インスタンスのブートストラップは失敗します。成功すると、終了コード 0 で通知されます。その他の終了コードは、失敗とみなされます。

マスターノードとコンピュートノードの実行を区別できます。/etc/parallelcluster/cfnconfigファイルをソースし、cfn_node_type 環境変数を評価します。可能な値は、マスターノードとコンピュートノードにそれぞれ「MasterServer」と「ComputeFleet」です。

#!/bin/bash

. "/etc/parallelcluster/cfnconfig"

case "${cfn_node_type}" in MasterServer) echo "I am the master node" >> /tmp/master.txt ;; ComputeFleet) echo "I am a compute node" >> /tmp/compute.txt ;; *) ;;esac

設定次の設定は、インストール前後のアクションと引数を定義するために使用されます。

# URL to a preinstall script. This is executed before any of the boot_as_* scripts are run# (defaults to NONE)pre_install = NONE# Arguments to be passed to preinstall script# (defaults to NONE)

33

Page 41: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド引数

pre_install_args = NONE# URL to a postinstall script. This is executed after any of the boot_as_* scripts are run# (defaults to NONE)post_install = NONE# Arguments to be passed to postinstall script# (defaults to NONE)post_install_args = NONE

引数最初の 2 つの引数 $0 と $1 はスクリプト名と URL 用に予約されています。

$0 => the script name$1 => s3 url$n => args set by pre/post_install_args

例以下のステップでは、R パッケージをクラスターにインストールする簡単なインストール後のスクリプトを作成します。

1. スクリプトを作成します。

#!/bin/bash

echo "post-install script has $# arguments"for arg in "$@"do echo "arg: ${arg}"done

yum -y install "${@:2}"

2. Amazon S3 に正しいアクセス許可でスクリプトをアップロードしてください。

$ aws s3 cp --acl public-read /path/to/myscript.sh s3://<bucket-name>/myscript.sh

3. インストール後の新しいアクションを含むように AWS ParallelCluster 設定を更新します。

[cluster default]...post_install = https://<bucket-name>.s3.amazonaws.com/myscript.shpost_install_args = "R curl wget"

バケットにパブリック読み取りのアクセス許可がない場合は、URL プロトコルとして s3 を使用します。

[cluster default]...post_install = s3://<bucket-name>/myscript.shpost_install_args = "R curl wget"

4. クラスターを起動します。

$ pcluster create mycluster

5. 出力の検証

34

Page 42: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAmazon S3 を使用する

$ less /var/log/cfn-init.log2019-04-11 10:43:54,588 [DEBUG] Command runpostinstall output: post-install script has 4 argumentsarg: s3://eu-eu-west-1/test.sharg: Rarg: curlarg: wgetLoaded plugins: dkms-build-requires, priorities, update-motd, upgrade-helperPackage R-3.4.1-1.52.amzn1.x86_64 already installed and latest versionPackage curl-7.61.1-7.91.amzn1.x86_64 already installed and latest versionPackage wget-1.18-4.29.amzn1.x86_64 already installed and latest versionNothing to do

Amazon S3 を使用するAmazon S3 は、AWS ParallelCluster からアクセスすることができます。Amazon S3 へのアクセスを制御するには、AWS ParallelCluster 設定で 2 つのパラメータを使用します。

# Specify Amazon S3 resource which AWS ParallelCluster nodes will be granted read-only access# (defaults to NONE)s3_read_resource = NONE# Specify Amazon S3 resource which AWS ParallelCluster nodes will be granted read-write access# (defaults to NONE)s3_read_write_resource = NONE

どちらのパラメータも * または有効な Amazon S3 ARN を受け入れます。Amazon S3 ARN の指定の詳細については、AWS General Referenceの「Amazon S3 ARN 形式」を参照してください。

例次の例では、Amazon S3 バケット (my_corporate_bucket) 内の任意のオブジェクトへの読み取りアクセス権を付与しています。

s3_read_resource = arn:aws:s3:::my_corporate_bucket/*

以下の例では、バケットへの読み取りアクセスを付与していますが、バケットからアイテムを読み取ることはできません。

s3_read_resource = arn:aws:s3:::my_corporate_bucket

この最後の例では、バケットおよびバケットに保存されたアイテムへの読み取りアクセスが付与されます。

s3_read_resource = arn:aws:s3:::my_corporate_bucket*

スポットインスタンスの使用AWS ParallelCluster は、クラスター設定が the section called “cluster_type” (p. 64) = spot に設定されている場合、スポットインスタンスを使用します。スポットインスタンスの主な特徴は、オンデマンド

35

Page 43: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドシナリオ 1: 実行中のジョブがないスポットインスタンスが中断される

インスタンスのコストよりも安く利用できる点ですが、中断される可能性もあります。中断の効果は、使用するスケジューラによって異なります。さらに、スポットインスタンスの中断の通知を活用できます。これによって、Amazon EC2 がスポットインスタンスを中断または終了する 2 分前に警告が提供されます。詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「スポットインスタンスの中断」を参照してください。以下のセクションでは、スポットインスタンスを中断できる 3 つのシナリオについて説明します。

シナリオ 1: 実行中のジョブがないスポットインスタンスが中断されるこの中断が発生すると、スケジューラキューに追加のインスタンスを必要とする保留中のジョブがある場合、またはアクティブなインスタンスの数が the section called “initial_queue_size” (p. 68) 設定を下回っている場合、AWS ParallelCluster はインスタンスを置き換えようとします。AWS ParallelClusterが新しいインスタンスをプロビジョニングできない場合、新しいインスタンスのリクエストは定期的に繰り返されます。

シナリオ 2: 単一ノードジョブを実行しているスポットインスタンスが中断されるこの中断の動作は、使用されているスケジューラによって異なります。

Slurm

ジョブが終了し、状態コードが NODE_FAIL になります。コンピュートインスタンスがスケジューラキューから削除されます。

SGE

ジョブが終了します。ジョブが再実行フラグを有効にしている場合 (qsub -r yes または qalter -r yes を使用)、またはキューで rerun 設定が TRUE に設定されている場合、ジョブは再スケジュールされます。コンピュートインスタンスがスケジューラキューから削除されます。この動作は、次のSGE 設定パラメータから起こります。• reschedule_unknown 00:00:30

• ENABLE_FORCED_QDEL_IF_UNKNOWN

• ENABLE_RESCHEDULE_KILL=1

Torque

ジョブがシステムから削除され、ノードがスケジューラから削除されます。ジョブは再実行されません。中断時にインスタンス上で複数のジョブが実行されている場合、ノードの削除中にトルクがタイムアウトすることがあります。the section called “sqswatcher” (p. 95) ログファイルにエラーが表示されることがあります。これはスケーリングロジックには影響せず、その後の再試行によって適切なクリーンアップが実行されます。

シナリオ 3: マルチノードジョブを実行しているスポットインスタンスが中断されるこの中断の動作は、使用されているスケジューラによって異なります。

Slurm

ジョブが終了し、状態コードが NODE_FAIL になります。コンピュートインスタンスがスケジューラキューから削除されます。終了したジョブを実行していた他のノードは、設定された the sectioncalled “scaledown_idletime” (p. 88) 時間が経過した後に縮小される可能性があります。

36

Page 44: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster の AWS Identity

and Access Management ルール

SGE

ジョブは終了せず、残りのノードで引き続き実行されます。コンピュートノードはスケジューラキューから削除されますが、ホストリストには孤立した使用できないノードとして表示されます。

この場合、ユーザーはジョブを削除する必要があります (qdel <jobid>)。ノードは引き続きホストリスト (qhost) に表示されますが、AWS ParallelCluster に影響はありません。リストからホストを削除するには、インスタンスを置き換えた後に次のコマンドを実行します。

sudo -- bash -c 'source /etc/profile.d/sge.sh; qconf -dattr hostgroup hostlist <hostname> @allhosts; qconf -de <hostname>'

Torque

ジョブがシステムから削除され、ノードがスケジューラから削除されます。ジョブは再実行されません。中断時にインスタンス上で複数のジョブが実行されている場合、ノードの削除中にトルクがタイムアウトすることがあります。the section called “sqswatcher” (p. 95) ログファイルにエラーが表示されることがあります。これはスケーリングロジックには影響せず、その後の再試行によって適切なクリーンアップが実行されます。

スポットインスタンスの詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「スポットインスタンス」を参照してください。

AWS ParallelCluster の AWS Identity and AccessManagement ルール

AWS ParallelCluster では、Amazon EC2 の AWS Identity and Access Management (IAM) ロールを使用して、クラスターのデプロイとオペレーションのためにインスタンスが AWS のサービスにアクセスできるようにします。デフォルトでは、Amazon EC2 の IAM ロールは、AWS CloudFormation によって作成されるクラスターの一部として作成されます。そのため、次のセクションで説明するように、クラスターを作成するユーザーに適切なレベルのアクセス許可が必要です。

AWS ParallelCluster は複数の AWS のサービスを使用してクラスターをデプロイおよび運用します。詳細なリストは、「AWS ParallelCluster セクションで使用する AWS のサービス (p. 98)」を参照してください。

デフォルト設定クラスター作成にデフォルト設定を使用すると、Amazon EC2 の IAM がクラスターによって作成されます。通常、ユーザーには、クラスターの起動に必要なすべてのリソースを作成するための適切なレベルのアクセス許可 (例: Amazon EC2 の IAM) が必要です。通常、IAM ユーザーには、AdministratorAccess 管理ポリシーのアクセス許可が必要です。管理ポリシーの詳細については、IAM ユーザーガイドの「AWS 管理ポリシー」を参照してください。

Amazon EC2 の既存の IAM ロールを使用するクラスターを作成する際、Amazon EC2 の IAM ロールを使用することはできますが、まず IAM ポリシーとロールを定義してから、クラスターを起動する必要があります。通常、クラスターを起動する際ユーザーに付与されているアクセス許可を制限するには、Amazon EC2 の既存の IAM ロールを選択します。次の例では、Amazon EC2 と AWS ParallelCluster の両方の IAM ポリシーおよびロールを示します。両方をIAM で個別のポリシーとして作成してから、適切なリソースにアタッチする必要があります。どちらのポリシーでも、<REGION>、<AWS ACCOUNT ID> などの文字列を適切な値に置き換えます。

37

Page 45: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterInstancePolicy

ParallelClusterInstancePolicy次の例では、スケジューラとして SGE、Slurm、または Torque を使用してParallelClusterInstancePolicy を設定します。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeVolumes", "ec2:AttachVolume", "ec2:DescribeInstanceAttribute", "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:DescribeRegions" ], "Resource": [ "*" ], "Effect": "Allow", "Sid": "EC2" }, { "Action": [ "dynamodb:ListTables" ], "Resource": [ "*" ], "Effect": "Allow", "Sid": "DynamoDBList" }, { "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage", "sqs:ChangeMessageVisibility", "sqs:DeleteMessage", "sqs:GetQueueUrl" ], "Resource": [ "arn:aws:sqs:<REGION>:<AWS ACCOUNT ID>:parallelcluster-*" ], "Effect": "Allow", "Sid": "SQSQueue" }, { "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:TerminateInstanceInAutoScalingGroup", "autoscaling:SetDesiredCapacity", "autoScaling:UpdateAutoScalingGroup", "autoscaling:DescribeTags", "autoScaling:SetInstanceHealth" ], "Resource": [ "*" ], "Effect": "Allow", "Sid": "Autoscaling" }, { "Action": [

38

Page 46: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterInstancePolicy

"cloudformation:DescribeStacks", "cloudformation:DescribeStackResource" ], "Resource": [ "arn:aws:cloudformation:<REGION>:<AWS ACCOUNT ID>:stack/parallelcluster-*/*" ], "Effect": "Allow", "Sid": "CloudFormation" }, { "Action": [ "dynamodb:PutItem", "dynamodb:Query", "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:DescribeTable" ], "Resource": [ "arn:aws:dynamodb:<REGION>:<AWS ACCOUNT ID>:table/parallelcluster-*" ], "Effect": "Allow", "Sid": "DynamoDBTable" }, { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<REGION>-aws-parallelcluster/*" ], "Effect": "Allow", "Sid": "S3GetObj" }, { "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::NONE/batch/*" ], "Effect": "Allow", "Sid": "S3PutObj" }, { "Resource": [ "*" ], "Action": [ "sqs:ListQueues" ], "Effect": "Allow", "Sid": "SQSList" }, { "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster-*" ], "Effect": "Allow", "Sid": "BatchJobPassRole" }, { "Action": [

39

Page 47: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterInstancePolicy

"s3:GetObject" ], "Resource": [ "arn:aws:s3:::dcv-license.<REGION>/*" ], "Effect": "Allow", "Sid": "DcvLicense" } ]}

次の例では、スケジューラとして awsbatch を使用して ParallelClusterInstancePolicy を設定します。AWS BatchAWS CloudFormation ネストされたスタックで定義されている BatchUserRole に割り当てられているのと同じポリシーを含める必要があります。BatchUserRole ARN はスタック出力として提供されます。必要なアクセス許可の概要は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "batch:SubmitJob", "batch:RegisterJobDefinition", "cloudformation:DescribeStacks", "ecs:ListContainerInstances", "ecs:DescribeContainerInstances", "logs:GetLogEvents", "logs:FilterLogEvents", "s3:PutObject", "s3:Get*", "s3:DeleteObject", "iam:PassRole" ], "Resource": [ "arn:aws:batch:<REGION>:<AWS ACCOUNT ID>:job-definition/<AWS_BATCH_STACK - JOB_DEFINITION_SERIAL_NAME>:1", "arn:aws:batch:<REGION>:<AWS ACCOUNT ID>:job-definition/<AWS_BATCH_STACK - JOB_DEFINITION_MNP_NAME>*", "arn:aws:batch:<REGION>:<AWS ACCOUNT ID>:job-queue/<AWS_BATCH_STACK - JOB_QUEUE_NAME>", "arn:aws:cloudformation:<REGION>:<AWS ACCOUNT ID>:stack/<STACK NAME>/*", "arn:aws:s3:::<RESOURCES S3 BUCKET>/batch/*", "arn:aws:iam::<AWS ACCOUNT ID>:role/<AWS_BATCH_STACK - JOB_ROLE>", "arn:aws:ecs:<REGION>:<AWS ACCOUNT ID>:cluster/<ECS COMPUTE ENVIRONMENT>", "arn:aws:ecs:<REGION>:<AWS ACCOUNT ID>:container-instance/*", "arn:aws:logs:<REGION>:<AWS ACCOUNT ID>:log-group:/aws/batch/job:log-stream:*" ], "Effect": "Allow" }, { "Action": [ "s3:List*" ], "Resource": [ "arn:aws:s3:::<RESOURCES S3 BUCKET>" ], "Effect": "Allow" }, { "Action": [ "batch:DescribeJobQueues", "batch:TerminateJob", "batch:DescribeJobs",

40

Page 48: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterUserPolicy

"batch:CancelJob", "batch:DescribeJobDefinitions", "batch:ListJobs", "batch:DescribeComputeEnvironments", "ec2:DescribeInstances" ], "Resource": "*", "Effect": "Allow" } ]}

ParallelClusterUserPolicy次の例では、スケジューラとして SGE、Slurm、または Torque を使用してParallelClusterUserPolicy を設定します。

Note

カスタムロール、the section called “ec2_iam_role” (p. 66) = <role_name> を使用する場合は、IAM リソースを変更して、そのロールの名前を次の場所から含める必要があります。"Resource": "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster-*"操作:"Resource": "arn:aws:iam::<AWS ACCOUNT ID>:role/<role_name>"

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EC2Describe", "Action": [ "ec2:DescribeKeyPairs", "ec2:DescribeRegions", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribePlacementGroups", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DescribeVpcAttribute", "ec2:DescribeAddresses", "ec2:CreateTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeAvailabilityZones" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "NetworkingEasyConfig", "Action": [ "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DescribeNatGateways", "ec2:CreateNatGateway", "ec2:DescribeInternetGateways", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway",

41

Page 49: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterUserPolicy

"ec2:DescribeRouteTables", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:CreateSubnet", "ec2:ModifySubnetAttribute" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "EC2Modify", "Action": [ "ec2:CreateVolume", "ec2:RunInstances", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:ModifyVolumeAttribute", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface", "ec2:DeleteVolume", "ec2:TerminateInstances", "ec2:DeleteSecurityGroup", "ec2:DisassociateAddress", "ec2:RevokeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:ReleaseAddress", "ec2:CreatePlacementGroup", "ec2:DeletePlacementGroup" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "AutoScalingDescribe", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "AutoScalingModify", "Action": [ "autoscaling:CreateAutoScalingGroup", "ec2:CreateLaunchTemplate", "ec2:ModifyLaunchTemplate", "ec2:DeleteLaunchTemplate", "ec2:DescribeLaunchTemplates", "ec2:DescribeLaunchTemplateVersions", "autoscaling:PutNotificationConfiguration", "autoscaling:UpdateAutoScalingGroup", "autoscaling:PutScalingPolicy", "autoscaling:DescribeScalingActivities", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeletePolicy", "autoscaling:DisableMetricsCollection", "autoscaling:EnableMetricsCollection" ], "Effect": "Allow", "Resource": "*"

42

Page 50: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterUserPolicy

}, { "Sid": "DynamoDBDescribe", "Action": [ "dynamodb:DescribeTable" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "DynamoDBModify", "Action": [ "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:TagResource" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "SQSDescribe", "Action": [ "sqs:GetQueueAttributes" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "SQSModify", "Action": [ "sqs:CreateQueue", "sqs:SetQueueAttributes", "sqs:DeleteQueue", "sqs:TagQueue" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "SNSDescribe", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "SNSModify", "Action": [ "sns:CreateTopic", "sns:Subscribe", "sns:DeleteTopic" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CloudFormationDescribe", "Action": [ "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:GetTemplate"

43

Page 51: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterUserPolicy

], "Effect": "Allow", "Resource": "*" }, { "Sid": "CloudFormationModify", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "S3ParallelClusterReadOnly", "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::<REGION>-aws-parallelcluster*" ] }, { "Sid": "IAMModify", "Action": [ "iam:PassRole", "iam:CreateRole", "iam:CreateServiceLinkedRole", "iam:DeleteRole", "iam:GetRole", "iam:TagRole", "iam:SimulatePrincipalPolicy" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::<AWS ACCOUNT ID>:role/<PARALLELCLUSTER EC2 ROLE NAME>", "arn:aws:iam::<AWS ACCOUNT ID>:role/aws-service-role/*" ] }, { "Sid": "IAMCreateInstanceProfile", "Action": [ "iam:CreateInstanceProfile", "iam:DeleteInstanceProfile" ], "Effect": "Allow", "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/*" }, { "Sid": "IAMInstanceProfile", "Action": [ "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:GetRolePolicy", "iam:GetPolicy", "iam:AttachRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Effect": "Allow", "Resource": "*" },

44

Page 52: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterUserPolicy

{ "Sid": "EFSDescribe", "Action": [ "elasticfilesystem:DescribeMountTargets", "elasticfilesystem:DescribeMountTargetSecurityGroups", "ec2:DescribeNetworkInterfaceAttribute" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "SSMDescribe", "Action": [ "ssm:GetParametersByPath" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "FSx", "Effect": "Allow", "Action": [ "fsx:*" ], "Resource": "*" }, { "Sid": "EFS", "Effect": "Allow", "Action": [ "elasticfilesystem:*" ], "Resource": "*" }, { "Sid": "CloudWatchLogs", "Effect": "Allow", "Action": [ "logs:DeleteLogGroup", "logs:PutRetentionPolicy", "logs:DescribeLogGroups", "logs:CreateLogGroup" ], "Resource": "*" } ]}

次の例では、awsbatch をスケジューラとして使用して、ParallelClusterUserPolicy を設定します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EC2Describe", "Action": [ "ec2:DescribeKeyPairs", "ec2:DescribeRegions", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribePlacementGroups", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus",

45

Page 53: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterUserPolicy

"ec2:DescribeSnapshots", "ec2:DescribeVolumes", "ec2:DescribeVpcAttribute", "ec2:DescribeAddresses", "ec2:CreateTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeAvailabilityZones" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "NetworkingEasyConfig", "Action": [ "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DescribeNatGateways", "ec2:CreateNatGateway", "ec2:DescribeInternetGateways", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DescribeRouteTables", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:CreateSubnet", "ec2:ModifySubnetAttribute" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "EC2Modify", "Action": [ "ec2:CreateVolume", "ec2:RunInstances", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:ModifyVolumeAttribute", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface", "ec2:DeleteVolume", "ec2:TerminateInstances", "ec2:DeleteSecurityGroup", "ec2:DisassociateAddress", "ec2:RevokeSecurityGroupIngress", "ec2:ReleaseAddress", "ec2:CreatePlacementGroup", "ec2:DeletePlacementGroup" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "DynamoDB", "Action": [ "dynamodb:DescribeTable", "dynamodb:CreateTable", "dynamodb:DeleteTable", "dynamodb:TagResource" ], "Effect": "Allow",

46

Page 54: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterUserPolicy

"Resource": "arn:aws:dynamodb:<REGION>:<AWS ACCOUNT ID>:table/parallelcluster-*" }, { "Sid": "CloudFormation", "Action": [ "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:GetTemplate", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Effect": "Allow", "Resource": "arn:aws:cloudformation:<REGION>:<AWS ACCOUNT ID>:stack/parallelcluster-*" }, { "Sid": "SQS", "Action": [ "sqs:GetQueueAttributes", "sqs:CreateQueue", "sqs:SetQueueAttributes", "sqs:DeleteQueue", "sqs:TagQueue" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "SQSQueue", "Action": [ "sqs:SendMessage", "sqs:ReceiveMessage", "sqs:ChangeMessageVisibility", "sqs:DeleteMessage", "sqs:GetQueueUrl" ], "Effect": "Allow", "Resource": "arn:aws:sqs:<REGION>:<AWS ACCOUNT ID>:parallelcluster-*" }, { "Sid": "SNS", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes", "sns:CreateTopic", "sns:Subscribe", "sns:DeleteTopic"], "Effect": "Allow", "Resource": "*" }, { "Sid": "IAMRole", "Action": [ "iam:PassRole", "iam:CreateRole", "iam:DeleteRole", "iam:GetRole", "iam:TagRole", "iam:SimulatePrincipalPolicy" ], "Effect": "Allow", "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:role/parallelcluster-*"

47

Page 55: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドParallelClusterUserPolicy

}, { "Sid": "IAMInstanceProfile", "Action": [ "iam:CreateInstanceProfile", "iam:DeleteInstanceProfile", "iam:GetInstanceProfile", "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::<AWS ACCOUNT ID>:instance-profile/*" }, { "Sid": "IAM", "Action": [ "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:GetRolePolicy", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:GetPolicy", "iam:AttachRolePolicy", "iam:DetachRolePolicy" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "S3ResourcesBucket", "Action": ["s3:*"], "Effect": "Allow", "Resource": ["arn:aws:s3:::parallelcluster-*"] }, { "Sid": "S3ParallelClusterReadOnly", "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::<REGION>-aws-parallelcluster/*"] }, { "Sid": "Lambda", "Action": [ "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:GetFunctionConfiguration", "lambda:InvokeFunction", "lambda:AddPermission", "lambda:RemovePermission" ], "Effect": "Allow", "Resource": "arn:aws:lambda:<REGION>:<AWS ACCOUNT ID>:function:parallelcluster-*" }, { "Sid": "Logs", "Effect": "Allow", "Action": ["logs:*"], "Resource": "arn:aws:logs:<REGION>:<AWS ACCOUNT ID>:*" }, { "Sid": "CodeBuild", "Effect": "Allow", "Action": ["codebuild:*"], "Resource": "arn:aws:codebuild:<REGION>:<AWS ACCOUNT ID>:project/parallelcluster-*"

48

Page 56: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster によってサポートされているスケジューラ

}, { "Sid": "ECR", "Effect": "Allow", "Action": ["ecr:*"], "Resource": "*" }, { "Sid": "Batch", "Effect": "Allow", "Action": ["batch:*"], "Resource": "*" }, { "Sid": "AmazonCloudWatchEvents", "Effect": "Allow", "Action": ["events:*"], "Resource": "*" } ]}

AWS ParallelCluster によってサポートされているスケジューラ

AWS ParallelCluster は、the section called “scheduler” (p. 72) 設定を使用して設定された複数のスケジューラをサポートしています。

トピック• Son of Grid Engine (sge) (p. 49)• Slurm Workload Manager (slurm) (p. 49)• Torque Resource Manager (torque) (p. 50)• AWS Batch (awsbatch) (p. 50)

Son of Grid Engine (sge)AWS ParallelCluster は、Son of Grid Engine 8.1.9 を使用しています。このスケジューラについては、「https://arc.liv.ac.uk/trac/SGE」を参照してください。ダウンロードについては、「https://arc.liv.ac.uk/downloads/SGE/releases/8.1.9/」を参照してください。ソースコードについては、「https://arc.liv.ac.uk/trac/SGE/browser/sge」を参照してください。

Slurm Workload Manager (slurm)AWS ParallelCluster は、Slurm Workload Manager 19.05.5 を使用しています。Slurm Workload Managerの詳細については、「https://slurm.schedmd.com/」を参照してください。ダウンロードについては、「https://www.schedmd.com/downloads.php」を参照してください。ソースコードについては、「https://github.com/SchedMD/slurm」を参照してください。

AWS ParallelCluster のバージョン 2.5.0 および 2.5.1 は、Slurm Workload Manager 19.05.3-2 を使用しています。AWS ParallelCluster のバージョン 2.3.1 ~ 2.4.1 は、Slurm Workload Manager 18.08.6-2 を使用しています。AWS ParallelCluster のバージョン 2.3.1 より前は、Slurm Workload Manager 16.05.3-1 を使用しています (現在はダウンロードできません)。

49

Page 57: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドTorque Resource Manager (torque)

Torque Resource Manager (torque)AWS ParallelCluster は、Torque Resource Manager 6.1.2 を使用しています。Torque ResourceManager 6.1.2 の詳細については、「http://docs.adaptivecomputing.com/torque/6-1-2/releaseNotes/torquerelnote.htm」を参照してください。ドキュメントについては、「http://docs.adaptivecomputing.com/torque/6-1-2/adminGuide/torque.htm」を参照してください。ソースコードについては、「https://github.com/adaptivecomputing/torque/tree/6.1.2」を参照してください。

AWS ParallelCluster バージョン 2.4.0 以前は、Torque Resource Manager 6.0.2 を使用しています。リリースノートについては、「http://docs.adaptivecomputing.com/torque/6-0-2/releaseNotes/torqueReleaseNotes6.0.2.pdf」を参照してください。ドキュメントについては、「http://docs.adaptivecomputing.com/torque/6-0-2/adminGuide/help.htm」を参照してください。ソースコードについては、「https://github.com/adaptivecomputing/torque/tree/6.0.2」を参照してください。

AWS Batch (awsbatch)AWS Batch の詳細については、「AWS Batch」を参照してください。マニュアルについては、『AWSBatch ユーザーガイド』を参照してください。

AWS Batch の AWS ParallelCluster CLI コマンド

awsbatch スケジューラを使用すると、AWS Batch の AWS ParallelCluster CLI コマンドは、AWSParallelCluster マスターノードに自動的にインストールされます。CLI は、AWS Batch API を使用して、以下を許可します。

• ジョブの送信と管理• ジョブ、キュー、ホストのモニタリング• 従来のスケジューラコマンドのミラーリング

トピック• awsbsub (p. 50)• awsbstat (p. 52)• awsbout (p. 53)• awsbkill (p. 53)• awsbqueues (p. 54)• awsbhosts (p. 54)

awsbsub

ジョブをクラスターのジョブキューに送信します。

awsbsub [-h] [-jn JOB_NAME] [-c CLUSTER] [-cf] [-w WORKING_DIR] [-pw PARENT_WORKING_DIR] [-if INPUT_FILE] [-p VCPUS] [-m MEMORY] [-e ENV] [-eb ENV_BLACKLIST] [-r RETRY_ATTEMPTS] [-t TIMEOUT] [-n NODES] [-a ARRAY_SIZE] [-d DEPENDS_ON] [command] [arguments [arguments ...]]

位置引数

command

ジョブを送信するか (指定したコマンドがコンピューティングインスタンスで使用可能である必要がある)、転送するファイル名を指定します (--command-file オプションも参照)。

50

Page 58: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS Batch (awsbatch)

arguments

(オプション) コマンドまたはコマンドファイルの引数を指定します。

名前付き引数

-jn JOB_NAME, --job-name JOB_NAME

ジョブの名前を指定します。1 字目は英数字である必要があります。ジョブ名は 128 文字以内で指定できます。英字 (大文字と小文字)、数字、ハイフン、アンダースコアを使用できます。

-c CLUSTER, --cluster CLUSTER

使用するクラスターを指定します。-cf, --command-file

コマンドがコンピューティングインスタンスに転送されるファイルであることを示します。

デフォルト: False-w WORKING_DIR, --working-dir WORKING_DIR

ジョブの作業ディレクトリとして使用するフォルダを指定します。作業ディレクトリが指定されない場合、ジョブは、ユーザーのホームディレクトリの job-<AWS_BATCH_JOB_ID> サブフォルダで実行されます。このパラメータ、または --parent-working-dir パラメータを使用できます。

-pw PARENT_WORKING_DIR, --parent-working-dir PARENT_WORKING_DIR

ジョブの作業ディレクトリの親フォルダを指定します。親の作業ディレクトリが指定されない場合、デフォルトはユーザーのホームディレクトリに設定されます。job-<AWS_BATCH_JOB_ID> という名前のサブフォルダが親の作業ディレクトリに作成されます。このパラメータ、または --working-dir パラメータを使用できます。

-if INPUT_FILE, --input-file INPUT_FILE

コンピューティングインスタンスに転送するファイル (ジョブの作業ディレクトリ内) を指定します。複数の入力ファイルのパラメータを指定できます。

-p VCPUS, --vcpus VCPUS

コンテナ用に予約する vCPU の数を指定します。–nodes を指定すると、ノードごとの vCPU の数が識別されます。

デフォルト: 1-m MEMORY, --memory MEMORY

ジョブに送信するメモリのハード制限 (MiB 単位) を指定します。ここで指定されたメモリ制限を超えようとすると、ジョブは強制終了されます。

デフォルト: 128-e ENV, --env ENV

ジョブ環境にエクスポートする環境変数名のカンマ区切りリストを指定します。すべての環境変数をエクスポートするには、 「all」を指定します。「all」の環境変数のリストには、–env-blacklistパラメータに一覧表示されている変数や、先頭が PCLUSTER_* または AWS_* の変数は含まれません。

-eb ENV_BLACKLIST, --env-blacklist ENV_BLACKLIST

ジョブ環境にエクスポートしない環境変数名のカンマ区切りリストを指定します。HOME、PWD、USER、PATH、LD_LIBRARY_PATH、TERM、および TERMCAP はデフォルトでエクスポートされません。

51

Page 59: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS Batch (awsbatch)

-r RETRY_ATTEMPTS, --retry-attempts RETRY_ATTEMPTS

ジョブを RUNNABLE ステータスに移行する回数を指定します。1〜10 回の試行を指定できます。試行回数の値が 1 を上回る場合に失敗すると、ジョブは、RUNNABLE に移行するまで、指定された回数再試行されます。

デフォルト: 1-t TIMEOUT, --timeout TIMEOUT

ジョブが終了していない場合に AWS Batch がジョブを終了するまでの時間 (ジョブ試行の startedAtタイムスタンプから計測) を秒単位で指定します。タイムアウト値は 60 秒以上に指定する必要があります。

-n NODES, --nodes NODES

ジョブ用に予約するノード数を指定します。マルチノード並列送信が有効になるように、このパラメータに値を指定します。

-a ARRAY_SIZE, --array-size ARRAY_SIZE

配列のサイズを示します。2 から 10,000 までの値を指定できます。ジョブの配列プロパティを指定した場合は、配列ジョブになります。

-d DEPENDS_ON, --depends-on DEPENDS_ON

ジョブの依存関係のセミコロン区切りリストを指定します。ジョブは最大 20 個のジョブに依存します。配列ジョブのジョブ ID を指定せずに、SEQUENTIAL タイプの依存関係を指定できます。シーケンシャルな依存関係では、各子配列ジョブがインデックス 0 から開始して順番に完了します。また、配列ジョブのジョブ ID を使用して N_TO_N タイプの依存関係を指定することもできます。N_TO_N の依存関係では、このジョブの各インデックスの子は各依存関係の対応するインデックスの子が完了するまで待機してから開始されます。このパラメータの構文は、「"jobId=<string>,type=<string>;...」です。

awsbstat

クラスターのジョブキューに送信されたジョブを表示します。

awsbstat [-h] [-c CLUSTER] [-s STATUS] [-e] [-d] [job_ids [job_ids ...]]

位置引数

job_ids

出力に表示するジョブ ID のスペース区切りリストを指定します。ジョブがジョブ配列の場合は、すべての子ジョブが表示されます。単一のジョブがリクエストされた場合は、詳細バージョンで表示されます。

名前付き引数

-c CLUSTER, --cluster CLUSTER

使用するクラスターを示します。-s STATUS, --status STATUS

含めるジョブステータスのカンマ区切りリストを指定します。デフォルトのジョブのステータスは「active」です。有効な値は、SUBMITTED、PENDING、 RUNNABLE、STARTING、RUNNING、SUCCEEDED、 FAILED、ALL です。

52

Page 60: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS Batch (awsbatch)

デフォルト値は、SUBMITTED、PENDING、RUNNABLE、STARTING、RUNNING です。-e, --expand-children

子を含むジョブを拡張します (配列とマルチノードの並列ジョブのいずれも)。

デフォルト: False-d, --details

ジョブの詳細を表示します。

デフォルト: False

awsbout

指定されたジョブの出力を表示します。

awsbout [ - h ] [ - c CLUSTER ] [ - hd HEAD ] [ - t TAIL ] [ - s ] [ - sp STREAM_PERIOD ] job_id

位置引数

job_id

ジョブ ID を指定します。

名前付き引数

-c CLUSTER, --cluster CLUSTER

使用するクラスターを示します。-hd HEAD, --head HEAD

ジョブ出力の最初の HEAD 行を取得します。-t TAIL, --tail TAIL

ジョブ出力の最後の <tail> 行を取得します。-s, --stream

ジョブ出力を取得してから、追加の出力が生成されるのを待ちます。ジョブ出力の最新の <tail> 行から開始するには、この引数に –tail を指定します。

デフォルト: False-sp STREAM_PERIOD, --stream-period STREAM_PERIOD

ストリーミング期間を設定します。

デフォルト: 5

awsbkill

クラスターに送信されたジョブをキャンセルし、終了します。

awsbkill [ - h ] [ - c CLUSTER ] [ - r REASON ] job_ids [ job_ids ... ]

53

Page 61: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS Batch (awsbatch)

位置引数

job_ids

キャンセルまたは終了するジョブ ID のスペース区切りリストを指定します。

名前付き引数

-c CLUSTER, --cluster CLUSTER

使用するクラスターの名前を示します。-r REASON, --reason REASON

キャンセル理由と合わせて、ジョブにアタッチするメッセージを示します。

Terminated by the user (デフォルト)

awsbqueues

クラスターに関連付けられているジョブキューを表示します。

awsbqueues [ - h ] [ - c CLUSTER ] [ - d ] [ job_queues [ job_queues ... ]]

位置引数

job_queues

表示するキュー名のスペース区切りリストを指定します。単一のキューがリクエストされた場合は、詳細バージョンで表示されます。

名前付き引数

-c CLUSTER, --cluster CLUSTER

使用するクラスターの名前を指定します。-d, --details

キューの詳細を表示するかどうかを示します。

デフォルト: False

awsbhosts

クラスターのコンピューティング環境に属するホストを表示します。

awsbhosts [ - h ] [ - c CLUSTER ] [ - d ] [ instance_ids [ instance_ids ... ]]

位置引数

instance_ids

インスタンス ID のスペース区切りリストを指定します。単一のインスタンスがリクエストされた場合は、詳細バージョンで表示されます。

54

Page 62: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAmazon CloudWatch Logs との統合

名前付き引数

-c CLUSTER, --cluster CLUSTER

使用するクラスターの名前を指定します。-d, --details

ホストの詳細を表示するかどうかを示します。

デフォルト: False

Amazon CloudWatch Logs との統合AWS ParallelCluster 2.6.0 以降、共通ログはデフォルトで CloudWatch Logs に保存されます。CloudWatch Logs の詳細については、「Amazon CloudWatch Logs User Guide」を参照してください。CloudWatch Logs 統合を設定するには、[cw_log] セクション (p. 74) および the section called“cw_log_settings” (p. 65) 設定を参照してください。

ロググループは、クラスターごとに名前 /aws/parallelcluster/cluster-name (/aws/parallelcluster/testCluster など) で作成されます。ノード別の各ログ (またはパスに * が含まれている場合はログのセット) には、{hostname}.{instance_id}.{logIdentifier} という名前のログストリームがあります。例 ip-172-31-10-46.i-02587cf29cc3048f3.nodewatcher.ログデータは CloudWatch エージェントによって CloudWatch に送信され、すべてのクラスターインスタンスでroot として実行されます。

以下のリストには、ログのパスとそれらのログに使用される logIdentifier が含まれます。

• /opt/sge/default/spool/qmaster/messages (sge-qmaster)• /var/log/cfn-init.log (cfn-init)• /var/log/cloud-init.log (cloud-init)• /var/log/dcv/agent.*.log (dcv-agent)• /var/log/dcv/dcv-xsession.*.log (dcv-xsession)• /var/log/dcv/server.log (dcv-server)• /var/log/dcv/sessionlauncher.log (dcv-session-launcher)• /var/log/dcv/Xdcv.*.log (Xdcv)• /var/log/jobwatcher (jobwatcher)• /var/log/messages (system-messages)• /var/log/nodewatcher (nodewatcher)• /var/log/parallelcluster/pcluster_dcv_authenticator.log (dcv-authenticator)• /var/log/parallelcluster/pcluster_dcv_connect.log (dcv-ext-authenticator)• /var/log/slurmctld.log (slurmctld)• /var/log/slurmd.log (slurmd)• /var/log/sqswatcher (sqswatcher)• /var/log/supervisord.log (supervisord)• /var/log/syslog (syslog)• /var/spool/sge/*/messages (sge-exec-daemon)• /var/spool/torque/client_logs/* (torque-client)• /var/spool/torque/server_logs/* (torque-server)

55

Page 63: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドElastic Fabric Adapter

Note

AWS ParallelCluster 2.6.0 では、/var/log/cfn-init-cmd.log (cfn-init-cmd) と /var/log/cfn-wire.log (cfn-wire) も CloudWatch Logs に保存されていました。

Elastic Fabric AdapterElastic Fabric Adapter (EFA) は、同じサブネット上の他のインスタンスとの低レイテンシーのネットワーク通信用の OS バイパス機能を備えたネットワークデバイスです。EFA は Libfabric を使用して公開され、メッセージングパッシングインターフェイス (MPI) を使用するアプリケーションで使用できます。AWS ParallelCluster で EFA を使用するには、[クラスター] セクション (p. 61) に行enable_efa = compute を追加します。EFA は、特定のオペレーティングシステム (the sectioncalled “base_os” (p. 63) が alinux、alinux2、centos7、ubuntu1604、ubuntu1804) 上の特定のインスタンスタイプ (the section called “compute_instance_type” (p. 64) がc5n.18xlarge、c5n.metal、i3en.24xlarge、m5dn.24xlarge、m5n.24xlarge、r5dn.24xlarge、r5n.24xlarge、p3dn.24xlarge)でサポートされています。enable_efa の設定の詳細については、「the section called“enable_efa” (p. 66)」を参照してください。クラスタープレイスメントグループは、インスタンス間のレイテンシーを最小限に抑えるために使用する必要があります。詳細については、「the section called“placement” (p. 70)」および「the section called “placement_group” (p. 70)」を参照してください。

詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Elastic Fabric Adapter」および AWS オープンソースブログの「Elastic Fabric Adapter および AWS ParallelCluster による HPC ワークロードのスケーリング」を参照してください。

Note

デフォルトでは、Ubuntu ディストリビューションにより ptrace (プロセストレース) 保護が有効になります。AWS ParallelCluster 2,6.0 以降、Libfabric が適切に機能するように、ptrace 保護が無効になります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Ptrace 保護を無効にする」を参照してください。

Intel MPI を有効にするIntel MPI は、the section called “base_os” (p. 63) 設定がalinux、alinux2、centos7、ubuntu1604、および ubuntu1804 値の AWS ParallelCluster AMI で使用できます。Intel MPI を使用することで、Intel Simplified Software License に同意することになります。デフォルトでは、Open MPI はパス上に配置されます。Open MPI の代わりに Intel MPI を有効にするには、まず Intel MPI モジュールをロードする必要があります。module load intelmpi を使用して最新のものをインストールします。モジュールの正確な名前は、更新ごとに変更されます。使用可能なモジュールを確認するには、module avail を実行します。

$ module avail

----------------------------------------- /usr/share/Modules/modulefiles ------------------------------------------dot libfabric-aws/1.8.1amzn1.3 module-info null use.ownintelmpi/2019.6.166 module-git modules openmpi/4.0.2

------------------------------------------------ /etc/modulefiles -------------------------------------------------

モジュールをロードするには、module load modulename を実行します。mpirun を実行するために使用するスクリプトにこれを追加できます。

56

Page 64: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドIntel HPC プラットフォームの仕様

$ module load intelmpi

ロードされているモジュールを確認するには、module list を実行します。

$ module listCurrently Loaded Modulefiles: 1) intelmpi/2019.6.166

Intel MPI が有効になっていることを確認するには、mpirun --version を実行します。

$ mpirun --versionIntel(R) MPI Library for Linux* OS, Version 2019 Update 6 Build 20191024 (id: 082ae5608)Copyright 2003-2019, Intel Corporation.

Intel MPI モジュールがロードされると、Intel MPI ツールを使用するように複数のパスが変更されます。Intel MPI ツールでコンパイルされたコードを実行するには、まず Intel MPI モジュールをロードします。

Note

AWS ParallelCluster 2.5.0 より前のバージョンでは、中国 (北京) および 中国 (寧夏) の AWSParallelCluster AMI では Intel MPI を使用できません。

Intel HPC プラットフォームの仕様AWS ParallelCluster は、Intel HPC プラットフォームの仕様に準拠しています。Intel HPC プラットフォームの仕様は、コンピューティング、ファブリック、メモリ、ストレージ、ソフトウェア要件のセットを提供し、高水準の品質と HPC ワークロードとの互換性を確保します。

Intel HPC Platform Specification に準拠するには、以下の要件を満たす必要があります。

• オペレーティングシステムは CentOS 7 (the section called “base_os” (p. 63) =centos7) であることが必要です。

• コンピュートノードのインスタンスタイプには、Intel CPU と 64 GB 以上のメモリが必要です。インスタンスタイプの c5 ファミリーの場合、インスタンスタイプは少なくとも c5.9xlarge (the sectioncalled “compute_instance_type” (p. 64) = c5.9xlarge) であることが必要です。

• マスターノードには 200 GB 以上のストレージが必要です。• Intel Parallel Studio のエンドユーザー使用許諾契約書に同意する必要があります (the sectioncalled “enable_intel_hpc_platform” (p. 67) = true)。

• 各コンピューティングノードには、少なくとも 80 GB のストレージが必要です (the sectioncalled “compute_root_volume_size” (p. 64) = 80)。

ストレージは、ローカルまたはネットワーク (マスターノードの NFS 共有、EBS または Amazon FSx forLustre) に存在でき、共有することもできます。

NICE DCV を介してマスターインスタンスに接続する

NICE DCV はリモート可視化技術で、リモートの高性能サーバーでホストされるグラフィック多用 3D アプリケーションに安全に接続することを可能にします。詳細については、「NICE DCV」を参照してください。

57

Page 65: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドNICE DCV HTTPS 証明書

the section called “base_os” (p. 63) = alinux2、the section called“base_os” (p. 63) = centos7、または the section called “base_os” (p. 63) =ubuntu1804 を使用すると、NICE DCV ソフトウェアが自動的にマスターインスタンスにインストールされます。

マスターインスタンスで NICE DCV を有効にするには、the section called“enable” (p. 75) = master の付いた [dcv] セクション (p. 75) の名前が the sectioncalled “dcv_settings” (p. 65) に含まれ、the section called “base_os” (p. 63) がalinux2、centos7、または ubuntu1804 に設定されている必要があります。

[cluster custom-cluster]...dcv_settings = custom-dcv...[dcv custom-dcv]enable = master

NICE DCV 設定パラメータの詳細については、「the section called “dcv_settings” (p. 65)」を参照してください。NICE DCV セッションに接続するには、the section called “pclusterdcv” (p. 22) コマンドを使用します。

Note

alinux2 および ubuntu1804 での NICE DCV のサポートは AWS ParallelCluster 2.6.0 で追加されました。centos7 での NICE DCV のサポートは AWS ParallelCluster 2.5.0 で追加されました。

NICE DCV HTTPS 証明書NICE DCV は、NICE DCV クライアント と NICE DCV サーバー間のトラフィックを保護するために使用される自己署名証明書を自動的に生成します。

デフォルトの自己署名 NICE DCV 証明書を別の証明書に置き換えるには、まずマスターインスタンスに接続します。次に、the section called “pcluster dcv” (p. 22) コマンドを実行する前に、証明書とキーの両方を /etc/dcv フォルダにコピーします。

詳細については、「NICE DCV 管理者ガイド」の「TLS 証明書を変更する」を参照してください。

NICE DCV のライセンシングAmazon EC2 インスタンスで実行する場合、NICE DCV サーバーはライセンスサーバーを必要としません。ただし、NICE DCV サーバーは定期的に Amazon S3 バケットに接続して、有効なライセンスが使用可能かどうかを判断する必要があります。

AWS ParallelCluster は、必要な権限を the section called “ParallelClusterInstancePolicy” (p. 38) に自動的に追加します。カスタム IAM インスタンスポリシーを使用する場合は、「NICE DCV 管理者ガイド」の「Amazon EC2 の NICE DCV」で説明されているアクセス権限を使用します。

58

Page 66: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドレイアウト

設定トピック

• レイアウト (p. 59)• [global] セクション (p. 59)• [aws] セクション (p. 60)• [aliases] セクション (p. 61)• [cluster] セクション (p. 61)• [cw_log] セクション (p. 74)• [dcv] セクション (p. 75)• [ebs] セクション (p. 76)• [efs] セクション (p. 78)• [fsx] セクション (p. 81)• [raid] セクション (p. 85)• [scaling] セクション (p. 87)• [vpc] セクション (p. 88)• 例 (p. 35)

デフォルトでは、AWS ParallelCluster は、すべての設定パラメータにファイル ~/.parallelcluster/config を使用します。カスタム設定ファイルは、-c または --config コマンドラインオプションを使用するか AWS_PCLUSTER_CONFIG_FILE 環境変数を使用して指定します。

設定ファイルの例は、AWS ParallelCluster と一緒に、python ディレクトリ (site-packages/aws-parallelcluster/examples/config) にインストールされます。設定ファイルの例も GitHub (https://github.com/aws/aws-parallelcluster/blob/v2.6.1/cli/pcluster/examples/config) で入手できます。

レイアウトAWS ParallelCluster 設定は、複数のセクションで定義されます。

以下のセクションが必要です: [#####] ##### (p. 59) および [aws] ##### (p. 60)。

少なくとも、[#####] ##### (p. 61) と [vpc] ##### (p. 88) を 1 つずつ含める必要があります。

セクションは、角括弧で囲まれたセクション名で始まり、パラメータと設定が続きます。

[global]cluster_template = defaultupdate_check = truesanity_check = true

[global] セクショントピック

59

Page 67: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドcluster_template

• cluster_template (p. 60)• update_check (p. 60)• sanity_check (p. 60)

pcluster に関連するグローバル設定オプションを指定します。

[global]

cluster_templateデフォルトでクラスターに使用されるクラスターセクションの名前を定義します。

「クラスターの定義 (p. 61)」を参照してください。

たとえば、[cluster default] で始まるセクションを指定する次の設定がデフォルトで使用されます。

cluster_template = default

update_checkpcluster の更新プログラムを確認します。

update_check = true

sanity_checkクラスターパラメータで定義されているリソースの存在を検証します。

デフォルト値は true です。

sanity_check = true

Note

AWS ParallelCluster 2.5.0 より前のバージョンでは、sanity_check のデフォルトは false でした。

[aws] セクションAWS リージョンの情報を指定します。

これらの設定はすべてのクラスターに適用されます。また、必須です。

認証情報を保存するには、環境、Amazon EC2 の IAM ロール、または AWS CLI を使用します。AWSParallelCluster 設定ファイルに認証情報を保存することはありません。

[aws]# Defaults to us-east-1 if not defined in environment or belowaws_region_name = #region

60

Page 68: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド[aliases] セクション

[aliases] セクションエイリアスを指定することで、ssh コマンドをカスタマイズできるようになります。

次のデフォルト設定を書き留めます。

• OS のデフォルトのユーザー名は、CFN_USER に設定されます。• MASTER_IP は、マスターインスタンスの IP アドレスに設定されます。• ARGS は、ユーザーが pcluster ssh cluster_name の後に指定する任意の引数に設定されます。

[aliases]# This is the aliases section, you can configure# ssh alias heressh = ssh {CFN_USER}@{MASTER_IP} {ARGS}

[cluster] セクショントピック

• additional_cfn_template (p. 62)• additional_iam_policies (p. 62)• base_os (p. 63)• cluster_type (p. 64)• compute_instance_type (p. 64)• compute_root_volume_size (p. 64)• custom_ami (p. 64)• cw_log_settings (p. 65)• dcv_settings (p. 65)• desired_vcpus (p. 65)• disable_hyperthreading (p. 65)• ebs_settings (p. 66)• ec2_iam_role (p. 66)• efs_settings (p. 66)• enable_efa (p. 66)• enable_intel_hpc_platform (p. 67)• encrypted_ephemeral (p. 67)• ephemeral_dir (p. 67)• extra_json (p. 67)• fsx_settings (p. 68)• initial_queue_size (p. 68)• key_name (p. 68)• maintain_initial_size (p. 68)• master_instance_type (p. 69)• master_root_volume_size (p. 69)• max_queue_size (p. 69)• max_vcpus (p. 69)

61

Page 69: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドadditional_cfn_template

• min_vcpus (p. 69)• placement (p. 70)• placement_group (p. 70)• post_install (p. 70)• post_install_args (p. 71)• pre_install (p. 71)• pre_install_args (p. 71)• proxy_server (p. 71)• raid_settings (p. 71)• s3_read_resource (p. 72)• s3_read_write_resource (p. 72)• scaling_settings (p. 72)• scheduler (p. 72)• shared_dir (p. 73)• spot_bid_percentage (p. 73)• spot_price (p. 73)• tags (p. 73)• template_url (p. 74)• vpc_settings (p. 74)

異なるジョブタイプやワークロードに 1 つ以上のクラスターを定義します。

各クラスターには独自の設定を指定できます。

形式は次のとおりです: [cluster <clustername>][#####] ##### (p. 59) の the sectioncalled “cluster_template” (p. 60) 設定で名前を付けた [#####] ##### (p. 61) が使用されます。

[cluster default]

additional_cfn_templateクラスターとともに起動する追加の AWS CloudFormation テンプレートを定義します。この追加のテンプレートは、クラスターの外部に存在するがクラスターのライフサイクルの一部であるリソースの作成に使用されます。

NONE 以外の値に設定する場合、その値は、すべてのパラメータが指定されているパブリックテンプレートへの HTTP URL である必要があります。

デフォルト値は NONE です。

additional_cfn_template = NONE

additional_iam_policiesAmazon EC2 の IAM ポリシーの Amazon リソースネーム (ARN) のカンマ区切りリストを指定します。このリストは、AWS ParallelCluster で必要なアクセス権限に加えて、クラスターで使用されるルートロールにアタッチされます。IAM ポリシー名とその ARN が異なります。名前をadditional_iam_policies の引数として使用することはできません。ec2_iam_role の代わりに

62

Page 70: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドbase_os

additional_iam_policies を使用する必要があります。これは、AWS ParallelCluster が必要とする権限に additional_iam_policies が追加され、必要なすべての権限が ec2_iam_role に含まれている必要があるためです。必要な権限は、機能が追加されるにつれ、リリースごとに変更されることがよくあります。

デフォルト値は NONE です。

additional_iam_policies = arn:aws:iam::aws:policy/AdministratorAccess

Note

additional_iam_policies のサポートは AWS ParallelCluster 2.5.0 で追加されました。

base_osクラスターで使用する OS タイプを指定します。

使用できるオプションは、以下のとおりです。

• alinux

• alinux2

• centos6

• centos7

• ubuntu1604

• ubuntu1804

Note

alinux2 のサポートは AWS ParallelCluster 2.6.0 で追加されました。ubuntu1804 のサポートが追加され、ubuntu1404 のサポートが AWS ParallelCluster 2.5.0 で削除されました。

リージョンごとにサポートされているオペレーティングシステムを以下の表に示します。「商用」には、us-east-1、us-west-2 などサポートされている他のすべてのリージョンが含まれます。

パーティション (リージョン) alinux およびalinux2

centos6 およびcentos7

ubuntu1604 および ubuntu1804

商用 (以下に記載されていないすべてのリージョン)

True True True

AWS GovCloud (米国東部) (us-gov-east-1)

True False True

AWS GovCloud (US-West) (us-gov-west-1)

True False True

中国 (北京) (cn-north-1) True False True

中国 (寧夏) (cn-northwest-1) True False True

注: base_os パラメータは、クラスターへのログインに使用されるユーザ名も決定します。

• centos6 および centos7: centos• ubuntu1604 および ubuntu1804: ubuntu

63

Page 71: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドcluster_type

• alinux および alinux2: ec2-user

デフォルト値は alinux です。Note

the section called “scheduler” (p. 72) パラメータが awsbatch の場合、alinux またはalinux2 がサポートされます。

base_os = alinux

cluster_type起動するクラスターのタイプを定義します。

有効なオプションは、ondemand と spot です。

デフォルト値は ondemand です。

スポットインスタンスの詳細については、「the section called “スポットインスタンスの使用” (p. 35)」を参照してください。

cluster_type = ondemand

compute_instance_typeクラスターコンピューティングノードに使用される Amazon EC2 インスタンスタイプを定義します。

awsbatch スケジューラを使用している場合は、AWS Batch UI のコンピューティング環境の作成で、サポートされるインスタンスタイプのリストを参照してください。

スケジューラが awsbatch の場合、デフォルトは t2.micro、optimal です。

compute_instance_type = t2.micro

A1 インスタンスはサポートされません。

compute_root_volume_sizeComputeFleet ルートボリュームのサイズ (GB 単位) を指定します。AMI は growroot をサポートする必要があります。

デフォルト値は 25 です。Note

AWS ParallelCluster 2.5.0 より前のバージョンでは、デフォルトは 20 でした。

compute_root_volume_size = 20

custom_amiデフォルトの公開された AMI の代わりにマスターノードとコンピューティングノードに使用するカスタムAMI の ID を指定します。

64

Page 72: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドcw_log_settings

デフォルト値は NONE です。

custom_ami = NONE

cw_log_settingsCloudWatch Logs 設定で [cw_log] セクションを識別します。

詳細については、「[cw_log] セクション (p. 74)」および「the section called “Amazon CloudWatch Logsとの統合” (p. 55)」を参照してください。

たとえば、以下の設定では、[cw_log custom-cw] で始まるセクションが CloudWatch Logs 設定で使用されることを指定します。

cw_log_settings = custom-cw

Note

cw_log_settings のサポートは AWS ParallelCluster 2.6.0 で追加されました。

dcv_settingsNICE DCV 設定により [dcv] セクションを識別します。

詳細については、「[dcv] セクション (p. 75)」を参照してください。

たとえば、次の設定では、[dcv custom-dcv] で始まるセクションが NICE DCV 設定で使用されることを指定します。

dcv_settings = custom-dcv

Note

dcv_settings のサポートは AWS ParallelCluster 2.5.0 で追加されました。

desired_vcpusコンピューティング環境で必要な vCPU の数を指定します。スケジューラが awsbatch の場合にのみ使用します。

デフォルト値は 4 です。

desired_vcpus = 4

disable_hyperthreadingマスターノードとコンピュートノードでハイパースレッディングを無効にします。すべてのインスタンスタイプがハイパースレッディングを無効にできるわけではありません。ハイパースレッディングの無効化をサポートするインスタンスタイプのリストについては、Linux インスタンス用 Amazon EC2 ユーザーガイドの「インスタンスタイプあたりの CPU コアとスレッド数」を参照してください。

disable_hyperthreading = true

65

Page 73: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドebs_settings

Note

disable_hyperthreading のサポートは AWS ParallelCluster 2.5.0 で追加されました。

ebs_settingsマスターインスタンスにマウントされている Amazon EBS ボリュームがある [ebs] セクションを識別します。複数の Amazon EBS ボリュームを使用する場合は、これらのパラメータをカンマ区切りリストとして入力します。

最大 5 つの追加の Amazon EBS ボリュームがサポートされます。

詳細については、「[ebs] セクション (p. 76)」を参照してください。

たとえば、[ebs custom1] および [ebs custom2] で始まるセクションを指定する次の設定が AmazonEBS ボリュームで使用されます。

ebs_settings = custom1, custom2

ec2_iam_roleクラスター内のすべてのインスタンスにアタッチされる Amazon EC2 の既存の IAM ロールの名前を定義します。IAM ロール名とその Amazon リソースネーム (ARN) は異なります。ARN を ec2_iam_role の引数として使用することはできません 。このオプションを指定すると、additional_iam_policies 設定は無視されます。AWS ParallelCluster に追加される機能には新しいアクセス権限が必要になることが多いため、AWS では ec2_iam_role ではなく additional_iam_policies を使用することをお勧めします。

デフォルト値は NONE です。

ec2_iam_role = NONE

efs_settingsAmazon EFS ファイルシステムに関する設定を指定します。

詳細については、「[efs] セクション (p. 78)」を参照してください。

たとえば、[efs customfs] で始まるセクションを指定する次の設定が Amazon EFS ファイルシステム構成に使用されます。

efs_settings = customfs

enable_efaこれが存在する場合、コンピューターノードで Elastic Fabric Adapter (EFA) を有効化することを指定します。EFA は、特定のオペレーティングシステム (the section called “base_os” (p. 63)が alinux、alinux2、centos7、ubuntu1604、ubuntu1804) 上の特定のインスタンスタイプ(c5n.18xlarge がc5n.metal、i3en.24xlarge、m5dn.24xlarge、m5n.24xlarge、r5dn.24xlarge、r5n.24xlarge、p3dn.24xlarge)でサポートされています。詳細については、「the section called “Elastic Fabric Adapter” (p. 56)」を参照してください。

enable_efa = compute

66

Page 74: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドenable_intel_hpc_platform

enable_intel_hpc_platform存在する場合は、Intel Parallel Studio のエンドユーザー使用許諾契約書が承認されたことを示します。これにより、Intel Parallel Studio がマスターノードにインストールされ、コンピューティングノードと共有されます。これにより、マスターノードのブートストラップに要する時間が数分長くなります。enable_intel_hpc_platform 設定は CentOS 7 (the section called“base_os” (p. 63) = centos7) でのみサポートされています。

enable_intel_hpc_platform = true

Note

enable_intel_hpc_platform のサポートは AWS ParallelCluster 2.5.0 で追加されました。

encrypted_ephemeralLUKS (Linux Unified Key Setup) を使用して、回復不能なメモリ内キーにより一時的なインスタンスストアボリュームを暗号化します。

詳細については、「https://gitlab.com/cryptsetup/cryptsetup/blob/master/README.md」を参照してください。

デフォルト値は false です。

encrypted_ephemeral = false

ephemeral_dirインスタンスストアボリュームをマウントするパスを定義します (使用されている場合)。

デフォルト値は /scratch です。

ephemeral_dir = /scratch

extra_jsonChef が使用する dna.json にマージされる追加の JSON を定義します。

デフォルト値は {} です。

extra_json = {}

Note

AWS ParallelCluster 2.6.1 以降、起動時間を短縮するために、ほとんどのインストールレシピはノードの起動時にデフォルトでスキップされます。起動時間の短縮よりも下位互換性の向上を優先させるために、すべてのインストールレシピを実行するには、the section called“extra_json” (p. 67) 設定の cluster キーに "skip_install_recipes" : "no" を追加します。以下に例を示します。

extra_json = { "cluster" : { "skip_install_recipes" : "no" } }

67

Page 75: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドfsx_settings

fsx_settingsAmazon FSx for Lustre 設定を定義するセクションを指定します。

詳細については、「[fsx] セクション (p. 81)」を参照してください。

fsx_settings = fs

たとえば、次の設定では、[fsx fs] で始まるセクションが Amazon FSx for Lustre 設定で使用されることを指定します。

fsx_settings = fs

initial_queue_sizeクラスターでコンピューティングノードとして起動する Amazon EC2 インスタンスの最初の数を設定します。

この設定は、従来のスケジューラ (SGE、Slurm、Torque) にのみ適用されます。

スケジューラが awsbatch の場合は、the section called “min_vcpus” (p. 69) を使用します。

デフォルトは 2 です。

initial_queue_size = 2

key_nameインスタンスへの SSH アクセスを有効にするための既存の Amazon EC2 キーペアを指定します。

key_name = mykey

maintain_initial_size従来のスケジューラ (SGE、Slurm、および Torque) の Auto Scaling グループの最初のサイズを維持します。

スケジューラが awsbatch の場合は、代わりに the section called “desired_vcpus” (p. 65)を使用します。

この設定は、ブーリアン型フラグです。true に設定した場合、Auto Scaling グループのメンバー数が the section called “initial_queue_size” (p. 68) の値よりも少なくなることはありません。クラスターは the section called “max_queue_size” (p. 69) の値にスケールアップできます。cluster_type = spot の場合、Auto Scaling グループはインスタンスを中断し、initial_queue_size サイズを下回る可能性があります。

false に設定した場合、Auto Scaling グループは、不要なときにリソースがアイドル状態で待機するのを回避するため、ゼロ (0) メンバーにスケールダウンできます。

デフォルトは false です。

maintain_initial_size = false

68

Page 76: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドmaster_instance_type

master_instance_typeマスターノードに使用される Amazon EC2 インスタンスのタイプを定義します。

デフォルトは t2.micro です。

master_instance_type = t2.micro

A1 インスタンスはサポートされません。

master_root_volume_sizeMasterServer ルートボリュームのサイズ (GB 単位) を指定します。AMI が growroot をサポートしている必要があります。

デフォルト値は 25 です。

Note

AWS ParallelCluster 2.5.0 より前のバージョンでは、デフォルトは 20 でした。

master_root_volume_size = 25

max_queue_sizeクラスターで起動可能な最大数の Amazon EC2 インスタンスの最大数を設定します。

この設定は、従来のスケジューラ (SGE、Slurm、Torque) にのみ適用されます。

スケジューラが awsbatch の場合は、the section called “max_vcpus” (p. 69) を使用します。

デフォルトは 10 です。

max_queue_size = 10

max_vcpusコンピューティング環境での vCPU の最大数を指定します。スケジューラが awsbatch の場合にのみ使用します。

デフォルト値は 20 です。

max_vcpus = 20

min_vcpusawsbatchスケジューラの Auto Scaling グループの最初のサイズを維持します。

スケジューラが SGE、Slurm、または Torque の場合は、the section called“maintain_initial_size” (p. 68) を使用します。

コンピューティング環境のメンバー数が min_vcpus の値よりも少なくなることはありません。

69

Page 77: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドplacement

デフォルトは 0 です。

min_vcpus = 0

placementクラスターのプレイスメントグループのロジックを定義します。これにより、クラスター全体、またはクラスタープレイスメントグループを使用するコンピューティングインスタンスのみが有効になります。

有効なオプションは cluster または compute です。

このパラメータは、awsbatch がスケジューラの場合には使用されません。

デフォルト値は compute です。

placement = compute

placement_groupクラスタープレイスメントグループを定義します。

有効なオプションは次のとおりです。

• NONE

• DYNAMIC

• 既存の Amazon EC2 クラスタプレイスメントグループ名

DYNAMIC に設定されている場合、一意のプレイスメントグループはクラスタースタックの一部として作成され、削除されます。

このパラメータは、awsbatch がスケジューラの場合には使用されません。

プレイスメントグループの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「プレイスメントグループ」を参照してください。

デフォルト値は NONE です。

すべてのインスタンスタイプがクラスタープレイスメントグループをサポートしているわけではありません。たとえば、デフォルトのインスタンスタイプでは、クラスタープレイスメントグループは t2.microによってサポートされません。クラスタープレイスメントグループをサポートするインスタンスタイプのリストについては、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「クラスタープレイスメントグループのルールと制限」を参照してください。プレイスメントグループを使用する際のヒントについては、「the section called “プレイスメントグループとインスタンスの起動に関する問題” (p. 118)」を参照してください。

placement_group = NONE

post_installすべての boot_as_* スクリプトが実行される前に実行されるインストール後スクリプトへの URL を指定します。

awsbatch をスケジューラとして使用する場合、インストール後スクリプトはマスターノードでのみ実行されます。

70

Page 78: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドpost_install_args

パラメータの形式には、「http://hostname/path/to/script.sh」または「s3://bucketname/path/to/script.sh」を指定できます。

デフォルト値は NONE です。

post_install = NONE

post_install_args事後インストールスクリプトに渡される引用符で囲んだ引数のリストを指定します。

デフォルト値は NONE です。

post_install_args = "NONE"

pre_installいずれかの boot_as_* スクリプトが実行される前に実行される事前インストールスクリプトへの URL を指定します。

awsbatch をスケジューラとして使用する場合、事前インストールスクリプトはマスターノードでのみ実行されます。

パラメータの形式には、「http://hostname/path/to/script.sh」または「s3://bucketname/path/to/script.sh」を指定できます。

デフォルト値は NONE です。

pre_install = NONE

pre_install_args事前インストールスクリプトに渡される引用符で囲んだ引数のリストを指定します。

デフォルト値は NONE です。

pre_install_args = "NONE"

proxy_serverHTTP または HTTPS プロキシサーバーを定義します。通常は、http://x.x.x.x:8080 です。

デフォルト値は NONE です。

proxy_server = NONE

raid_settingsAmazon EBS ボリューム RAID 設定で [raid] セクションを識別します。

詳細については、「[raid] セクション (p. 85)」を参照してください。

たとえば、[raid rs] で始まるセクションを指定する次の設定が Auto Scaling 設定で使用されます。

71

Page 79: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドs3_read_resource

raid_settings = rs

s3_read_resourceAWS ParallelCluster ノードに読み取り専用アクセスを付与する Amazon S3 リソースを指定します。

たとえば、「arn:aws:s3:::my_corporate_bucket/*」は、my_corporate_bucket バケット内のすべてのオブジェクトに読み取り専用アクセス許可を付与します。

形式の詳細については、「Amazon S3 での作業 (p. 35)」を参照してください。

デフォルト値は NONE です。

s3_read_resource = NONE

s3_read_write_resourceAWS ParallelCluster ノードに読み書きアクセスを付与する Amazon S3 リソースを指定します。

たとえば、「arn:aws:s3:::my_corporate_bucket/Development/*」は、my_corporate_bucket バケットの Development フォルダにあるすべてのオブジェクトに読み取り/書き込みアクセス許可を付与します。

形式の詳細については、「Amazon S3 での作業 (p. 35)」を参照してください。

デフォルト値は NONE です。

s3_read_write_resource = NONE

scaling_settingsAuto Scaling 設定により [scaling] セクションを識別します。

詳細については、「[scaling] セクション (p. 87)」を参照してください。

たとえば、[scaling custom] で始まるセクションを指定する次の設定が Auto Scaling 設定で使用されます。

scaling_settings = custom

schedulerクラスターのスケジューラを定義します。

有効なオプションは次のとおりです。

• sge

• torque

• slurm

• awsbatch

awsbatch スケジューラの詳細については、「ネットワークのセットアップ (p. 31)」を参照してください。

72

Page 80: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドshared_dir

デフォルト値は sge です。

scheduler = sge

shared_dir共有 Amazon EBS ボリュームをマウントするパスを定義します。

このオプションを複数の Amazon EBS ボリュームと一緒に使用しないでください。代わりに、各 AmazonEBS の [ebs] セクション (p. 76) セクションで shared_dir 値を指定します。

複数の Amazon EBS ボリュームを操作する詳細については、「Amazon EBS セクション (p. 76)」を参照してください。

デフォルト値は /shared です。

/myshared の共有 Amazon EBS ボリュームを以下の例に示します。

shared_dir = myshared

spot_bid_percentageawsbatch がスケジューラの場合は、必要に応じて、ComputeFleet の最大スポット価格の計算に使用されるオンデマンド入札パーセンテージを設定します。

指定しない場合は、オンデマンド料金を上限として、現在のスポット市場価格が選択されます。

spot_bid_percentage = 85

spot_price従来のスケジューラ (SGE、Slurm、および Torque) で必要に応じて ComputeFleet の最大スポット料金を設定します。the section called “cluster_type” (p. 64) が spot に設定されている場合にのみ使用されます。値を指定しない場合、オンデマンド料金を上限とするスポット料金が課金されます。

スケジューラが awsbatch の場合は、代わりに spot_bid_percentage (p. 73) を使用します。

お客様のニーズに合った入札価格を見つけるためにサポートが必要な場合は、「スポット入札アドバイザー」を参照してください。

spot_price = 1.50

Note

AWS ParallelCluster 2.5.0 では、cluster_type = spot で spot_price が指定されていない場合、ComputeFleet のインスタンスの起動は失敗します。この問題は AWS ParallelCluster 2.5.1で修正されました。

tagsAWS CloudFormation で使用するタグを定義します。

コマンドラインタグが --tags を介して指定されている場合は、設定タグとマージされます。

コマンドラインタグは、同じキーを持つタグ設定を上書きします。

73

Page 81: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドtemplate_url

タグは JSON 形式です。中括弧の外側に引用符を使用しないでください。

詳細については、AWS CloudFormation ユーザーガイド の「AWS CloudFormation Resource Tags タイプ」を参照してください。

tags = {"key" : "value", "key2" : "value2"}

template_urlクラスターの作成に使用される AWS CloudFormation テンプレートへのパスを定義します。

更新では、スタックの作成に使用した元のテンプレートが使用されます。

デフォルトは https://<aws_region_name>-aws-parallelcluster.s3.amazonaws.com/templates/aws-parallelcluster-<version>.cfn.json です。

template_url = https://us-east-1-aws-parallelcluster.s3.amazonaws.com/templates/aws-parallelcluster.cfn.json

vpc_settingsクラスターがデプロイされる Amazon VPC 設定で [vpc] セクションを識別します。

詳細については、「[vpc] セクション (p. 88)」を参照してください。

たとえば、[vpc public] で始まるセクションを指定する次の設定が Amazon VPC 設定で使用されます。

vpc_settings = public

[cw_log] セクションCloudWatch Logs の構成設定を定義します。

形式は次のとおりです。[cw_log <cw-log-name>]

[cw_log custom-cw-log]enable = trueretention_days = 14

詳細については、「the section called “Amazon CloudWatch Logs との統合” (p. 55)」を参照してください。

Note

cw_log のサポートは AWS ParallelCluster 2.6.0 で追加されました。

enable(オプション) CloudWatch Logs が有効かどうかを示します。

デフォルト値は true です。CloudWatch Logs を無効にするには、false を使用します。

以下の例では、CloudWatch Logs を有効にします。

74

Page 82: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドretention_days

enable = true

retention_days(オプション) CloudWatch Logs が個々のログイベントを保持する日数を示します。

デフォルト値は 14 です。サポートされる値は1、3、5、7、14、30、60、90、120、150、180、365、400、545、731、1827、3653 です。

以下の例では、ログイベントを 30 日間保持するように CloudWatch Logs を設定します。

retention_days = 30

[dcv] セクションマスターインスタンスで実行されている NICE DCV サーバーの構成設定を定義します。

NICE DCV サーバーを作成および設定するには、the section called “enable” (p. 75) を masterに、the section called “base_os” (p. 63) を alinux2、centos7、または ubuntu1804 に設定して、セクションの名前で the section called “dcv_settings” (p. 65) を指定します。

形式は次のとおりです。[dcv <dcvname>]

[dcv custom-dcv]enable = masterport = 8443access_from = 0.0.0.0/0

Important

デフォルトでは、AWS ParallelCluster によって設定される NICE DCV ポートはすべての IPv4アドレスに対して開いています。ただし、ユーザーは NICE DCV セッションの URL を持っている場合にのみ NICE DCV ポートに接続でき、その URL が pcluster dcv connectから返されてから 30 秒以内に NICE DCV セッションに接続できます。the section called“access_from” (p. 76) 設定を使用して、CIDR 形式の IP 範囲で NICE DCV ポートへのアクセスをさらに制限し、the section called “port” (p. 76) 設定を使用して非標準ポートを設定します。Note

alinux2 および ubuntu1804 での [dcv] ##### (p. 75) のサポートは AWSParallelCluster 2.6.0 で追加されました。centos7 での [dcv] ##### (p. 75) のサポートはAWS ParallelCluster 2.5.0 で追加されました。

enable(必須)マスターノードで NICE DCV が有効かどうかを示します。マスターノードで NICE DCV を有効にし、必要なセキュリティグループルールを設定するには、enable を master に設定します。

デフォルト値は NONE です。

次の例では、マスターノードで NICE DCV を有効にします。

enable = master

75

Page 83: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドport

Note

NICE DCV は、マスターインスタンスで実行されている NICE DCV クライアントと NICE DCVサーバー 間のトラフィックを保護するために使用される自己署名証明書を自動的に生成します。独自の証明書を設定するには、「the section called “NICE DCV HTTPS 証明書” (p. 58)」を参照してください。

port(任意) NICE DCV のポートを指定します。

デフォルト値は 8443 です。

port = 8443

access_from(任意、推奨) NICE DCV への接続の CIDR 形式の IP 範囲を指定します。この設定は、AWS ParallelClusterでセキュリティグループを作成する場合にのみ使用されます。

デフォルト値は 0.0.0.0/0 で、すべてのインターネットアドレスからのアクセスを許可します。

access_from = 0.0.0.0/0

[ebs] セクショントピック

• shared_dir (p. 77)• ebs_snapshot_id (p. 77)• volume_type (p. 77)• volume_size (p. 77)• volume_iops (p. 77)• encrypted (p. 78)• ebs_kms_key_id (p. 78)• ebs_volume_id (p. 78)

マスターインスタンスにマウントされ、コンピューティングノードへの NFS を介して共有されているボリュームの Amazon EBS ボリューム設定を定義します。

形式は次のとおりです。[ebs <ebsname>]

[ebs custom1]shared_dir = vol1ebs_snapshot_id = snap-xxxxxvolume_type = io1volume_iops = 200...

[ebs custom2]shared_dir = vol2...

76

Page 84: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドshared_dir

...

shared_dir共有 Amazon EBS ボリュームをマウントするパスを指定します。

複数の Amazon EBS ボリュームを使用する場合、このパラメータは必須です。

1 つの Amazon EBS ボリュームを使用している場合は、このオプションによって [クラスター] セクション (p. 61) で指定されている the section called “shared_dir” (p. 73) は上書きされます。以下の例では、ボリュームは /vol1 にマウントされます。

shared_dir = vol1

ebs_snapshot_idボリュームのソースとしてスナップショットを使用している場合は、Amazon EBS スナップショット IDを定義します。

デフォルト値は NONE です。

ebs_snapshot_id = snap-xxxxx

volume_type起動するボリュームの Amazon EBS ボリュームタイプを指定します。

有効なオプションは次のとおりです。

• gp2

• io1

• st1

• sc1

デフォルト値は gp2 です。

volume_type = io1

volume_size作成するボリュームのサイズ (GiB 単位) を指定します (スナップショットを使用していない場合)。

デフォルト値は 20 です。

volume_size = 20

volume_iopsio1 タイプボリュームの IOPS の数を定義します。

volume_iops = 200

77

Page 85: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドencrypted

encryptedAmazon EBS ボリュームが暗号化されているかどうかを示します。注意: スナップショットでは使用しないでください。

デフォルト値は false です。

encrypted = false

ebs_kms_key_id暗号化に使用するカスタムの AWS KMS キーを指定します。

このパラメータは、encrypted = true とともに使用する必要があります。また、カスタムのec2_iam_role も含まれている必要があります。

詳細については、「the section called “カスタム KMS キーを使用したディスク暗号化” (p. 113)」を参照してください。

ebs_kms_key_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

ebs_volume_idマスターインスタンスにアタッチする既存の Amazon EBS ボリュームのボリューム ID を定義します。

デフォルト値は NONE です。

ebs_volume_id = vol-xxxxxx

[efs] セクショントピック

• shared_dir (p. 79)• encrypted (p. 79)• efs_kms_key_id (p. 79)• performance_mode (p. 79)• throughput_mode (p. 80)• provisioned_throughput (p. 80)• efs_fs_id (p. 80)

マスターインスタンスとコンピューティングインスタンスにマウントされる Amazon EFS の設定を定義します。詳細については、Amazon EFS ドキュメントの「CreateFileSystem」を参照してください。

形式は次のとおりです。[efs <efsname>]

[efs customfs]shared_dir = efsencrypted = falseperformance_mode = generalPurpose

78

Page 86: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドshared_dir

shared_dirマスターおよびコンピューティングノードで Amazon EFS マウントポイントを定義します。

このパラメータは必須です。Amazon EFS セクションは、shared_dir が指定されている場合にのみ使用します。

共有ディレクトリとして /NONE または NONE を使用しないでください。

次の例では、/efs の Amazon EFS をマウントします。

shared_dir = efs

encryptedファイルシステムが暗号化されているかどうかを示します。これは、Amazon EFS API リファレンスのEncrypted パラメータに対応しています。

デフォルト値は false です。

encrypted = true

efs_kms_key_id(オプション) 暗号化されたファイルシステムの保護に使用する、AWS Key Management Service (AWSKMS) カスタマー管理キー (CMK) を識別します。これを設定する場合は、the section called“encrypted” (p. 79) 設定を true に設定する必要があります。これは、Amazon EFS API リファレンスの KmsKeyId パラメータに対応しています。

デフォルト値は NONE です。

efs_kms_key_id = 1234abcd-12ab-34cd-56ef-1234567890ab

performance_modeファイル システムのパフォーマンスモードを定義します。これは、Amazon EFS API リファレンスのPerformanceMode パラメータに対応しています。

有効な選択は次のとおりです。

• generalPurpose

• maxIO

いずれの値も、大文字と小文字が区別されます。

ほとんどのファイルシステムに generalPurpose パフォーマンスモードをお勧めします。

maxIO パフォーマンスモードを使用するファイルシステムでは、集計スループットと 1 秒あたりのオペレーション数をより高いレベルにスケーリングできます。ただし、ほとんどのファイルオペレーションでは、レイテンシーがわずかに長くなるというトレードオフがあります。

このパラメータは、ファイルシステムの作成後に変更することはできません。

デフォルト値は generalPurpose です。

79

Page 87: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドthroughput_mode

performance_mode = generalPurpose

throughput_modeファイルシステムのスループットモードを定義します。これは、Amazon EFS API リファレンスのThroughputMode パラメータに対応しています。

有効なオプションは次のとおりです。

• bursting

• provisioned

throughput_mode = provisioned

provisioned_throughputファイルシステムのプロビジョニングされたスループット (MiB/秒で測定) を定義します。これは、Amazon EFS API リファレンスの ProvisionedThroughputInMibps パラメータに対応しています。

このパラメータを使用する場合は、the section called “throughput_mode” (p. 80) をprovisioned に設定する必要があります。

スループットの制限は 1024 MiB/秒です。制限緩和をリクエストするには、AWS サポートまでお問い合わせください。

最小値は 0.0 MiB/s です。

provisioned_throughput = 1024

efs_fs_id既存のファイルシステムの Amazon EFS ファイルシステム ID を定義します。

このオプションを指定すると、shared_dir を除く他の Amazon EFS オプションはすべて無効になります。

このオプションを config_sanity に設定した場合は、ファイルシステムのみサポートされます。

• スタックのアベイラビリティーゾーンにマウントターゲットがない

または• スタックのアベイラビリティーゾーンには既存のマウントターゲットがあり、0.0.0.0/0 からのイン

バウンドおよびアウトバウンドの NFS トラフィックが許可されています。

efs_fs_id を検証するための健全性チェックには、IAM ロールに以下のアクセス許可が必要になります。

• elasticfilesystem:DescribeMountTargets

• elasticfilesystem:DescribeMountTargetSecurityGroups

• ec2:DescribeSubnets

• ec2:DescribeSecurityGroups

• ec2:DescribeNetworkInterfaceAttribute

80

Page 88: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド[fsx] セクション

エラーを回避するためには、これらのアクセス許可を IAM ロールに追加するか、sanity_check =false を設定します。

注意 : 0.0.0.0/0 から許可されているインバウンドおよびアウトバウンド NFS トラフィックのマウントターゲットを設定した場合、ファイルシステムは、マウントターゲットのアベイラビリティーゾーンのどこからの NFS マウントリクエストにも公開されます。AWS では、スタックのアベイラビリティーゾーンにマウントターゲットを作成せず、このステップの処理を AWS にお任せいただくことをお勧めします。スタックのアベイラビリティーゾーンにマウントターゲットが必要な場合は、[vpc] セクション (p. 88)で vpc_security_group_id オプションを指定して、カスタムセキュリティグループを使用することを検討してください。次に、そのセキュリティグループをマウントターゲットに追加し、config sanity をオフにしてクラスターを作成します。

デフォルト値は NONE です。

efs_fs_id = fs-12345

[fsx] セクショントピック

• deployment_type (p. 82)• export_path (p. 83)• fsx_fs_id (p. 83)• fsx_kms_key_id (p. 83)• import_path (p. 83)• imported_file_chunk_size (p. 84)• per_unit_storage_throughput (p. 84)• shared_dir (p. 84)• storage_capacity (p. 84)• weekly_maintenance_start_time (p. 85)

アタッチされた Amazon FSx for Lustre ファイルシステムの設定を定義します。Amazon FSx for Lustre の詳細については、「Amazon FSx CreateFileSystem」を参照してください。

Amazon FSx for Lustre は、the section called “base_os” (p. 63) がalinux、alinux2、centos7、ubuntu1604、または ubuntu1804 の場合にサポートされます。

Amazon Linux を使用する場合、kernel は 4.14.104-78.84.amzn1.x86_64 以上である必要があります。詳細な手順については、Amazon FSx for Lustre ユーザーガイド の「Lustre クライアントのインストール」を参照してください。

Note

awsbatch をスケジューラとして使用する場合、Amazon FSx for Lustre は現在サポートされていません。Note

alinux2、ubuntu1604、ubuntu1804 での Amazon FSx for Lustre のサポートは AWSParallelCluster 2.6.0 で追加されました。centos7 での Amazon FSx for Lustre のサポートはAWS ParallelCluster 2.4.0 で追加されました。

既存のファイルシステムを使用する場合は、ポート 988 経由のインバウンドの TCP トラフィックを許可するセキュリティグループに関連付ける必要があります。セキュリティグループルールでソースを0.0.0.0/0 に設定すると、そのルールのプロトコルとポート範囲に対する VPC セキュリティグループ内

81

Page 89: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドdeployment_type

のすべての IP 範囲からのクライアントアクセスが可能になります。ファイルシステムへのアクセスをさらに制限するために、セキュリティグループルールには、より具体的な CIDR 範囲、IP アドレス、セキュリティグループ ID など、より限定的なソースを使用することをお勧めします。the section called“vpc_security_group_id” (p. 89) を使用しない場合、これは自動的に行われます。

既存の Amazon FSx ファイルシステムを使用するには、the section called“fsx_fs_id” (p. 83) を指定します。

形式は次のとおりです。[fsx <fsxname>]

[fsx fs]shared_dir = /fsxfsx_fs_id = fs-073c3803dca3e28a6

新しいファイルシステムを作成し、設定するには、次のパラメータを使用します。

[fsx fs]shared_dir = /fsxstorage_capacity = 3600imported_file_chunk_size = 1024export_path = s3://bucket/folderimport_path = s3://bucketweekly_maintenance_start_time = 1:00:00

deployment_type(オプション) Amazon FSx for Lustre デプロイタイプを指定します。これは、Amazon FSx API リファレンスの DeploymentType パラメータに対応しています。詳細については、Amazon FSx for Lustre ユーザーガイド の「Amazon FSx for Lustre デプロイオプション」を参照してください。一時ストレージとデータの短期処理には、スクラッチデプロイタイプを選択します。SCRATCH_2 は、最新世代のスクラッチファイルシステムであり、ベースラインスループットよりも高いバーストスループットを提供し、データ転送時の暗号化も提供します。

有効な値は SCRATCH_1、SCRATCH_2、PERSISTENT_1 です。

SCRATCH_1

Amazon FSx for Lustre のデフォルトのデプロイタイプ。このデプロイタイプでは、the section called“storage_capacity” (p. 84) 設定の可能な値は 1200、2400、および 3600 の倍数です。

SCRATCH_2

急増するワークロードの最大 6 倍のベースラインスループットに対応し、サポート対象のリージョンでサポートされているインスタンスタイプのデータの転送中の暗号化にも対応する、最新世代のスクラッチファイルシステム。詳細については、Amazon FSx for Lustre ユーザーガイドの「転送中のデータの暗号化」を参照してください。このデプロイタイプでは、the section called“storage_capacity” (p. 84) 設定の可能な値は 1200 および 2400 の倍数です。

PERSISTENT_1

長期ストレージ用に設計されています。ファイルサーバーは可用性が高く、データはファイルシステムの AWS アベイラビリティーゾーン (AZ) 内で複製されます。また、サポートされているインスタンスタイプのデータの転送中の暗号化に対応します。このデプロイタイプでは、the section called“storage_capacity” (p. 84) 設定の可能な値は 1200 および 2400 の倍数です。

デフォルト値は SCRATCH_1 です。

deployment_type = SCRATCH_2

82

Page 90: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドexport_path

Note

deployment_type のサポートは AWS ParallelCluster 2.6.0 で追加されました。

export_path(オプション) ファイルシステムのルートがエクスポートされる Amazon S3 パスを指定します。パスはimport_path パラメータと同じ Amazon S3 バケットに存在する必要があります。これは、Amazon FSxAPI リファレンスの ExportPath パラメータに対応しています。

デフォルト値は s3://import-bucket/FSxLustre[creation-timestamp] です。ここで、import-bucket は the section called “import_path” (p. 83) パラメータで指定されるバケットです。

export_path = s3://bucket/folder

fsx_fs_id(オプション) 既存の Amazon FSx for Lustre ファイルシステムをアタッチします。

このオプションを指定すると、[fsx] セクション (p. 81) の the section called “export_path” (p. 83)および the section called “fsx_fs_id” (p. 83) の設定のみが使用され、[fsx] セクション (p. 81) の他の設定は無視されます。

fsx_fs_id = fs-073c3803dca3e28a6

fsx_kms_key_id(オプション) AWS Key Management Service (AWS KMS) カスタマー管理キーのキー ID を指定します。

このキーは、保管時のファイルシステムのデータを暗号化するために使用されます。

これは、カスタム ec2_iam_role と使用する必要があります。詳細については、「the section called “カスタム KMS キーを使用したディスク暗号化” (p. 113)」を参照してください。これは、Amazon FSx APIリファレンスの KmsKeyId パラメータに対応しています。

.

fsx_kms_key_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Note

fsx_kms_key_id のサポートは AWS ParallelCluster 2.6.0 で追加されました。

import_path(オプション) ファイルシステムにデータをロードする S3 バケットを指定します。エクスポートバケットとしても機能します。詳細については、「the section called “export_path” (p. 83)」を参照してください。これは、Amazon FSx API リファレンスの ImportPath パラメータに対応しています。

インポートは、クラスター作成時に行われます。詳細については、Amazon FSx for Lustre ユーザーガイドの「Amazon S3 バケットからのデータのインポート」を参照してください。

値が指定されない場合、ファイルシステムは空になります。

83

Page 91: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドimported_file_chunk_size

import_path = s3://bucket

imported_file_chunk_size(オプション) データリポジトリからインポートされたファイルの場合 (import_path を使用)、この値がストライプカウントと 1 つの物理ディスクに保存されたファイルごとの最大データ量 (MiB 単位) を決定します。1 つのファイルにストライピングできるディスクの最大数は、ファイルシステムを構成するディスクの合計数によって制限されます。これは、Amazon FSx API リファレンスの ImportedFileChunkSize パラメータに対応しています。

チャンクサイズのデフォルトは 1024 (1 GiB) であり、512,000 MiB (500 GiB) まで高くすることができます。Amazon S3 オブジェクトの最大サイズは 5 TB です。

imported_file_chunk_size = 1024

per_unit_storage_throughput(PERSISTENT_1 デプロイタイプに必須) the section called “deployment_type” (p. 82)= PERSISTENT_1 デプロイタイプの場合、1 テラバイト (TiB) のストレージごとの読み取りおよび書き込みスループットの量を MB/s/TiB 単位で取得します。ファイルシステムのスループット容量は、ファイルシステムのストレージ容量 (TiB) に per_unit_storage_throughput (MB/s/TiB) を掛けて計算されます。2.4 TiB のファイルシステムの場合、50 MB/s/TiB の per_unit_storage_throughputをプロビジョニングすると、ファイルシステムのスループットは 120 MB/s になります。プロビジョニングしたスループットに対して支払いが発生します。これは、Amazon FSx API リファレンスのPerUnitStorageThroughput パラメータに対応しています。

指定できる値は 50、100、200 です。

per_unit_storage_throughput = 200

Note

per_unit_storage_throughput のサポートは AWS ParallelCluster 2.6.0 で追加されました。

shared_dir(必須) マスターノードとコンピューティングノードで Amazon FSx for Lustre ファイルシステムのマウントポイントを定義します。

共有ディレクトリとして /NONE または NONE を使用しないでください。

次の例では、ファイルシステムを /fsx にマウントします。

shared_dir = /fsx

storage_capacity(必須) ファイルシステムのストレージ容量 (GiB 単位) を指定します。これは、Amazon FSx API リファレンスの StorageCapacity パラメータに対応しています。

ストレージ容量の可能な値は the section called “deployment_type” (p. 82) 設定によって異なります。

84

Page 92: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドweekly_maintenance_start_time

SCRATCH_1

可能な値は 1200、2400、および 3600 の倍数です。SCRATCH_2 および PERSISTENT_1

可能な値は 1200 および 2400 の倍数です。

storage_capacity = 7200

Note

AWS ParallelCluster 2.5.0 および 2.5.1 では、storage_capacity の可能な値は1200、2400、および 3600 の倍数です。AWS ParallelCluster 2.5.0 より前のバージョンでは、storage_capacity の最小サイズは 3600 でした。

weekly_maintenance_start_time(オプション) 毎週のメンテナンスを実行する推奨時間 (UTC タイムゾーン) を指定します。これは、Amazon FSx API リファレンスの WeeklyMaintenanceStartTime パラメータに対応しています。

形式は [曜日]: [時間]: [分] です。たとえば、月曜日の深夜は次のようになります。

weekly_maintenance_start_time = 1:00:00

[raid] セクショントピック

• shared_dir (p. 85)• raid_type (p. 86)• num_of_raid_volumes (p. 86)• volume_type (p. 86)• volume_size (p. 87)• volume_iops (p. 87)• encrypted (p. 87)• ebs_kms_key_id (p. 87)

多数の同一の Amazon EBS ボリュームから作成される RAID アレイの設定を定義します。RAID ドライブはマスターノードにマウントされ、NFS 経由でコンピューティングノードにエクスポートされます。

形式は次のとおりです。[raid <raidname>]

[raid rs]shared_dir = raidraid_type = 1num_of_raid_volumes = 2encrypted = true

shared_dirマスターノードとコンピューティングノードでの RAID アレイのマウントポイントを定義します。

85

Page 93: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドraid_type

RAID ドライブは、このパラメータが指定されている場合にのみ作成されます。

共有ディレクトリとして /NONE または NONE を使用しないでください。

次の例では、/raid のアレイをマウントします。

shared_dir = raid

raid_typeRAID アレイの RAID タイプを定義します。

RAID ドライブは、このパラメータが指定されている場合にのみ作成されます。

有効なオプションは次のとおりです。

• 0

• 1

RAID タイプの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「RAID 情報」を参照してください。

以下の例では、RAID 0 アレイが作成されます。

raid_type = 0

num_of_raid_volumesRAID アレイをアセンブルする Amazon EBS ボリュームの数を定義します。

ボリュームの最小数 = 2。

ボリュームの最大数 = 5。

デフォルト値は 2 です。

num_of_raid_volumes = 2

volume_type構築するボリュームのタイプを定義します。

有効なオプションは次のとおりです。

• gp2

• io1

• st1

• sc1

詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Amazon EBS ボリュームタイプ」を参照してください。

デフォルト値は gp2 です。

86

Page 94: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドvolume_size

volume_type = io1

volume_size作成するボリュームのサイズを定義します (GiB 単位)。

デフォルト値は 20 です。

volume_size = 20

volume_iopsio1 タイプボリュームの IOPS の数を定義します。

volume_iops = 500

encryptedファイルシステムを暗号化するかどうかを指定します。

デフォルト値は false です。

encrypted = false

ebs_kms_key_id暗号化に使用するカスタムの AWS KMS キーを指定します。

このパラメータは、encrypted = true とともに使用し、カスタムの ec2_iam_role が含まれている必要があります。

詳細については、「the section called “カスタム KMS キーを使用したディスク暗号化” (p. 113)」を参照してください。

ebs_kms_key_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

[scaling] セクショントピック

• scaledown_idletime (p. 88)

コンピューティングノードがスケールする方法を定義する設定を指定します。

形式は次のとおりです。[scaling <scalingname>]

[scaling custom]scaledown_idletime = 10

87

Page 95: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドscaledown_idletime

scaledown_idletimeジョブがない場合にコンピューティングノードが終了する時間 (単位: 分) を指定します。

このパラメータは、awsbatch がスケジューラの場合には使用されません。

デフォルト値は 10 です。

scaledown_idletime = 10

[vpc] セクショントピック

• additional_sg (p. 88)• compute_subnet_cidr (p. 88)• compute_subnet_id (p. 88)• master_subnet_id (p. 89)• ssh_from (p. 89)• use_public_ips (p. 89)• vpc_id (p. 89)• vpc_security_group_id (p. 89)

Amazon VPC 設定を指定します。

形式は次のとおりです。[vpc <vpcname>]

[vpc public]vpc_id = vpc-xxxxxxmaster_subnet_id = subnet-xxxxxx

additional_sgすべてのインスタンス用の追加の Amazon VPC セキュリティグループ ID を指定します。

デフォルト値は NONE です。

additional_sg = sg-xxxxxx

compute_subnet_cidrCIDR ブロックを指定します。このパラメータは、AWS ParallelCluster でコンピューティングサブネットを作成する場合に使用します。

compute_subnet_cidr = 10.0.100.0/24

compute_subnet_idコンピューティングノードをプロビジョンする既存のサブネットの ID を指定します。

88

Page 96: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドmaster_subnet_id

指定しない場合は、compute_subnet_id は master_subnet_id の値を使用します。

サブネットがプライベートの場合は、ウェブアクセスに NAT を設定する必要があります。

compute_subnet_id = subnet-xxxxxx

master_subnet_idマスターノードをプロビジョンする既存のサブネットの ID を指定します。

master_subnet_id = subnet-xxxxxx

ssh_fromSSH アクセスを許可する CIDR 形式の IP 範囲を指定します。

このパラメータは、AWS ParallelCluster でセキュリティグループを作成する場合にのみ使用されます。

デフォルト値は 0.0.0.0/0 です。

ssh_from = 0.0.0.0/0

use_public_ipsコンピューティングインスタンスにパブリック IP アドレスを割り当てるかどうかを定義します。

true に設定した場合、Elastic IP はマスターインスタンスに関連付けられます。

false に設定した場合、マスターインスタンスには、[自動割り当てパブリック IP] サブネット設定パラメータの値に応じてパブリック IP が設定されます (または設定されません)。

例については、「ネットワーク設定 (p. 29)」を参照してください。

デフォルト値は true です。

use_public_ips = true

Important

デフォルトでは、すべての AWS アカウントはリージョンあたり 5 つの Elastic IP アドレスに制限されています。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「ElasticIP アドレスの制限」を参照してください。

vpc_idクラスターをプロビジョンする Amazon VPC の ID を指定します。

vpc_id = vpc-xxxxxx

vpc_security_group_idすべてのインスタンスに既存のセキュリティグループを使用するよう指定します。

89

Page 97: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド例

デフォルト値は NONE です。

vpc_security_group_id = sg-xxxxxx

AWS ParallelCluster によって作成されたセキュリティグループでは、the section called“ssh_from” (p. 89) 設定で指定されたアドレスからポート 22 を使用するか、the section called“ssh_from” (p. 89) 設定が指定されていない場合はすべての IPv4 アドレス (0.0.0.0/0) を使用して、SSH アクセスが許可されます。NICE DCV が有効になっている場合、セキュリティグループでは、the section called “access_from” (p. 76) 設定で指定されたアドレスからポート 8443 (または the section called “port” (p. 76) 設定で指定されたもの) を使用するか、the section called“access_from” (p. 76) 設定が指定されていない場合はすべての IPv4 アドレス (0.0.0.0/0) を使用して、NICE DCV へのアクセスが許可されます。

例次の例では、awsbatch スケジューラでクラスターを起動します。ジョブリソースのニーズに基づき、最適なインスタンスタイプを選択するように設定されています。

サンプルの設定では、最大 40 の同時 vCPU が許可され、10 分間ジョブが実行されない場合、ゼロにスケールダウンします。

[global]update_check = truesanity_check = truecluster_template = awsbatch

[aws]aws_region_name = [your_aws_region]

[cluster awsbatch]scheduler = awsbatchcompute_instance_type = optimal # optional, defaults to optimalmin_vcpus = 0 # optional, defaults to 0desired_vcpus = 0 # optional, defaults to 4max_vcpus = 40 # optional, defaults to 20base_os = alinux # optional, defaults to alinux, controls the base_os of the master instance and the docker image for the compute fleetkey_name = [your_ec2_keypair]vpc_settings = public

[vpc public]master_subnet_id = [your_subnet]vpc_id = [your_vpc]

90

Page 98: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster プロセス

AWS ParallelCluster の詳細AWS ParallelClusterは、クラスターを管理する手段としてだけでなく、HPC 環境を構築するために AWSのサービスを使用する方法のリファレンスとしても構築されました。

トピック• AWS ParallelCluster プロセス (p. 91)• AWS ParallelCluster で使用される AWS のサービス (p. 98)• AWS ParallelCluster Auto Scaling (p. 101)

AWS ParallelCluster プロセスこのセクションは、サポートされている従来のジョブスケジューラ (SGE、Slurm、Torque) のいずれかを使用してデプロイされた HPC クラスターにのみ適用されます。このようなスケジューラで使用する場合、AWS ParallelCluster は、Auto Scaling グループ (ASG) と基盤となるジョブスケジューラの両方と対話することによって、コンピューティングノードのプロビジョニングと削除を管理します。

AWS Batch に基づく HPC クラスターの場合、AWS ParallelCluster はコンピューティングノード管理のために AWS Batch によって提供される機能に完全に依存しています。

トピック• 全般的な概要 (p. 91)• jobwatcher (p. 93)• sqswatcher (p. 95)• nodewatcher (p. 96)

全般的な概要クラスターのライフサイクルは、ユーザーによって作成された後に始まります。通常、クラスターはコマンドラインインターフェイス (CLI) から実行されます。作成後、クラスタは削除されるまで存在します。AWS ParallelCluster デーモンは、主に HPC クラスターの伸縮性を管理することを目的としたクラスターノード上で実行されます。次の図は、ユーザーのワークフローとクラスターのライフサイクルを示します。以下のセクションでは、クラスターの管理に使用される AWS ParallelCluster デーモンについて説明します。

91

Page 99: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド全般的な概要

92

Page 100: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドjobwatcher

jobwatcherクラスターが実行されている場合、root ユーザーが所有するプロセスで、設定されたスケジューラ(SGE、Slurm、または Torque) がモニタリングされ、スケールアップするタイミングを決定するために 1分ごとにキューを評価します。

93

Page 101: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドjobwatcher

94

Page 102: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドsqswatcher

sqswatchersqswatcher プロセスでは、Auto Scaling によって送信される Amazon SQS メッセージをモニタリングして、クラスター内のステータスの変化を通知します。インスタンスがオンラインになると、「instanceready」メッセージが Amazon SQS に送信されます。このメッセージは、マスターノード上で実行されている sqs_watcher に送信されます。これらのメッセージは、新しいインスタンスがオンラインになったときや終了したときにキューマネージャーに通知するために使用されるため、それらをキューに追加したり、キューから削除したりすることができます。

95

Page 103: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドnodewatcher

nodewatchernodewatcher プロセスは、コンピューティングシステムの各ノード上で実行されます。ユーザーが定義した scaledown_idletime 期間が過ぎると、インスタンスは終了します。

96

Page 104: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドnodewatcher

97

Page 105: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster で使用される AWS のサービス

AWS ParallelCluster で使用される AWS のサービス

AWS ParallelCluster では、次のアマゾンウェブサービス (AWS) のサービスが使用されます。

トピック• AWS Auto Scaling (p. 98)• AWS Batch (p. 98)• AWS CloudFormation (p. 98)• Amazon CloudWatch (p. 99)• Amazon CloudWatch Logs (p. 99)• AWS CodeBuild (p. 99)• Amazon DynamoDB (p. 99)• Amazon Elastic Block Store (p. 99)• Amazon Elastic Compute Cloud (p. 99)• Amazon Elastic Container Registry (p. 100)• AWS Identity and Access Management (p. 100)• AWS Lambda (p. 100)• Amazon Simple Notification Service (p. 100)• Amazon Simple Queue Service (p. 100)• Amazon Simple Storage Service (p. 101)

AWS Auto ScalingAWS Auto Scaling は、ComputeFleet インスタンスの管理に使用されます。これらのインスタンスは、Auto Scaling グループとして管理され、ワークロードで伸縮自在に操作するか、設定によって静的に操作することができます。

AWS Auto Scaling は、AWS Batch クラスターでは使用されません。

AWS Auto Scaling の詳細については、https://aws.amazon.com/autoscaling/ を参照してください

AWS BatchAWS Batch は、最適な量とタイプのコンピューティングリソース (CPU やメモリ最適化インスタンスなど) を動的にプロビジョンする AWS マネージド型ジョブスケジューラです。送信されるバッチジョブのボリュームと要件に基づき、リソースをプロビジョニングします。AWS Batch を使用すれば、ジョブを実行するためのバッチコンピューティングのソフトウェアやサーバークラスターをインストールおよび管理する必要はありません。

AWS Batch は、AWS Batch クラスターでのみ使用されます。

詳細については、https://aws.amazon.com/batch/ を参照してください。

AWS CloudFormationAWS CloudFormation は、AWS ParallelCluster によって使用されるコアサービスです。各クラスターはスタックとして表されます。クラスターに要求されるすべてのリソースは、AWS ParallelCluster AWSCloudFormation テンプレート内で定義されます。AWS ParallelCluster CLI コマンドは通常、作成、更新、

98

Page 106: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAmazon CloudWatch

削除などの AWS CloudFormation スタックコマンドにマッピングされています。クラスター内で起動されるインスタンスは、クラスターが起動されるリージョンの AWS CloudFormation エンドポイントに対してHTTPS を呼び出します。

AWS CloudFormation の詳細については、https://aws.amazon.com/cloudformation/ を参照してください

Amazon CloudWatchAmazon CloudWatch (CloudWatch) は、Docker イメージビルドステップおよび AWS Batch ジョブの標準出力とエラーのログを作成するために使用されます。

CloudWatch は、AWS Batch クラスターでのみ使用されます。

詳細については、https://aws.amazon.com/cloudwatch/ を参照してください。

Amazon CloudWatch LogsAmazon CloudWatch Logs (CloudWatch Logs) は、AWS ParallelCluster で使用される多くのコンポーネントのログファイルをモニタリング、保存、表示、検索するために使用されます。

詳細については、「the section called “Amazon CloudWatch Logs との統合” (p. 55)」を参照してください。

AWS CodeBuildAWS CodeBuild (CodeBuild) は、クラスター作成時に Docker イメージを自動的かつ透過的に構築するために使用されます。

CodeBuild は、AWS Batch クラスターでのみ使用されます。

詳細については、https://aws.amazon.com/codebuild/ を参照してください。

Amazon DynamoDBAmazon DynamoDB (DynamoDB) は、クラスターの最小状態を保存するために使用されます。MasterServer は、DynamoDB テーブルでプロビジョニングされたインスタンスを追跡します。

DynamoDB は、AWS Batch クラスターでは使用されません。

詳細については、https://aws.amazon.com/dynamodb/ を参照してください。

Amazon Elastic Block StoreAmazon Elastic Block Store (Amazon EBS) は、共有ボリュームに永続的ストレージを提供します。Amazon EBS 設定はすべて、構成を通じて渡すことができます。Amazon EBS ボリュームは、空の状態でまたは既存の Amazon EBS スナップショットから初期化できます。

Amazon EBS の詳細については、https://aws.amazon.com/ebs/ を参照してください。

Amazon Elastic Compute CloudAmazon Elastic Compute Cloud (Amazon EC2) は、AWS ParallelCluster のコンピューティングキャパシティーを提供します。MasterServer および ComputeFleet は Amazon EC2 インスタンスです。HVM をサポートする任意のインスタンスタイプを選択できます。MasterServer および ComputeFleet には異なるインスタンスタイプが使用でき、ComputeFleet はスポットインスタンスとして起動することもできます。イ

99

Page 107: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAmazon Elastic Container Registry

ンスタンスにあるインスタンスストアボリュームは、ストライピングされた LVM ボリュームとしてマウントされます。

Amazon EC2 の詳細については、https://aws.amazon.com/ec2/ を参照してください。

Amazon Elastic Container RegistryAmazon Elastic Container Registry (Amazon ECR) はクラスター作成時に作成された Docker イメージを保存します。その後で Docker イメージは、送信されたジョブにコンテナを実行するために AWS Batch に使用されます。

Amazon ECR は、AWS Batch クラスターでのみ使用されます。

詳細については、https://aws.amazon.com/ecr/ を参照してください。

AWS Identity and Access ManagementAWS Identity and Access Management (IAM) は、AWS ParallelCluster 内で使用されます。また、各クラスターに特化したインスタンスの Amazon EC2 の最小特権の IAM ロールです。AWS ParallelCluster インスタンスには、クラスターのデプロイと管理を行うために必要な特定の API 呼び出しにのみアクセスが許可されます。

AWS Batch クラスターでは、クラスター作成時に Docker イメージ構築プロセスに関係するコンポーネント用に IAM ロールも作成されます。これらのコンポーネントには、Amazon ECR リポジトリ間で Dockerイメージの追加と削除を行うことができ、クラスターと CodeBuild プロジェクト用に作成された AmazonS3 バケットを削除できる Lambda 関数が含まれます。AWS Batch リソース、インスタンス、およびジョブのロールもあります。

IAM の詳細については、https://aws.amazon.com/iam/ を参照してください。

AWS LambdaAWS Lambda (Lambda) は、Docker イメージの作成を調整する関数を実行します。また、Lambda はAmazon ECR リポジトリや Amazon S3 に保存された Docker イメージなど、カスタムクラスターソースのクリーンアップを管理します。

Lambda は、AWS Batch クラスターでのみ使用されます。

詳細については、https://aws.amazon.com/lambda/ を参照してください。

Amazon Simple Notification ServiceAmazon Simple Notification Service (Amazon SNS) は Auto Scaling から通知を受信するために使用されます。これらのイベントは、ライフサイクルイベントと呼ばれ、Auto Scaling グループでインスタンスが起動または終了したときに生成されます。AWS ParallelCluster 内では、Auto Scaling グループの AmazonSNS トピックが Amazon SQS キューにサブスクライブされています。

Amazon SNS は、AWS Batch クラスターでは使用されません。

Amazon SNS の詳細については、https://aws.amazon.com/sns/ を参照してください。

Amazon Simple Queue ServiceAmazon Simple Queue Service (Amazon SQS) は、Amazon SNS から送信された Auto Scaling からの通知および ComputeFleet インスタンスからの通知を保持するために使用されます。Amazon SQS を

100

Page 108: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAmazon Simple Storage Service

使用すると、通知の送信と受信が分離され、マスターがポーリングにより通知を処理できるようになります。MasterServer は Amazon SQSwatcher を実行し、キューをポーリングします。Auto Scaling とComputeFleet インスタンスは、キューにメッセージを投稿します。

Amazon SQS は、AWS Batch クラスターでは使用されません。

Amazon SQS の詳細については、https://aws.amazon.com/sqs/ を参照してください。

Amazon Simple Storage ServiceAmazon Simple Storage Service (Amazon S3) は、各リージョンで使用される AWS ParallelCluster テンプレートを保存するために使用されます。AWS ParallelCluster は、CLI/SDK ツールで Amazon S3 を使用できるように設定できます。

AWS Batch クラスターが使用されている場合、お客様のアカウントの Amazon S3 バケットは、ストレージ用に使用されます。たとえば、Docker イメージの作成で使用されるアーティファクト、および送信されたジョブのスクリプトを保管します。

詳細については、https://aws.amazon.com/s3/ を参照してください。

AWS ParallelCluster Auto Scaling次に示す Auto Scaling 戦略は、サポートされている従来のジョブスケジューラの 1 つ、Son of GridEngine (SGE)、Slurm Workload Manager (Slurm)、または Torque Resource Manager (Torque) を使用してデプロイされている HPC クラスターに適用されます。これらのスケジューラのいずれかを使用してデプロイすると、AWS ParallelCluster は、コンピューティングノードの Auto Scaling Group (ASG) を管理し、必要に応じてスケジューラ構成を変更することで、スケーリング機能を実装します。AWS Batch に基づく HPC クラスターの場合、AWS ParallelCluster は、AWS マネージド型ジョブスケジューラによって提供される伸縮自在なスケーリング機能に依存します。詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「Amazon EC2 Auto Scaling とは」を参照してください。

AWS ParallelCluster でデプロイされたクラスターは、さまざまな方法で伸縮自在です。initial_queue_size を設定すると、ComputeFleet ASG の最小サイズの値と、必要な容量の値が指定されます。max_queue_size を設定すると、ComputeFleet ASG の最大サイズの値が指定されます。

スケールアップjobwatcherと呼ばれるプロセスが、マスターインスタンスで毎分実行されます。キュー内の保留中のジョブに必要な現在のインスタンス数を評価します。ビジー状態のノードとリクエストされたノードの合

101

Page 109: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドスケールダウン

計数が、ASG で現在必要な値より大きい場合、さらにインスタンスを追加します。さらにジョブを送信した場合、キューが再評価され、ASG は、指定した max_queue_size まで更新されます。

SGE スケジューラでは、実行する多数のスロットがジョブごとに必要です (1 つのスロットが 1 つの処理ユニット (例: vCPU) に対応します)。現在保留中のジョブを処理するために必要なインスタンスの数を評価する場合、jobwatcher は 1 つのコンピューティングノードの容量でリクエストされたスロットの合計数を除算します。利用可能な vCPU の数に相当するコンピューティングノードの容量は、クラスター設定で指定されている Amazon EC2 インスタンスタイプによって異なります。

Slurm および Torque スケジューラで、各ジョブには状況に応じてノード数とノードごとのスロット数の両方が必要になる場合があります。jobwatcher では、新しい計算要件を満たすために必要なコンピューティングノードの数をリクエストごとに決定します。たとえば、あるクラスターのコンピューティングインスタンスタイプが c5.2xlarge (8 vCPU) であり、3 つの 保留中のキューに登録されたジョブの要件が以下であると仮定します。

• job1: 2 ノード/4 スロット• job2: 3 ノード/2 スロット• job3: 1 ノード/4 スロット

この例の jobwatcher では、3 つのジョブを処理するために、ASG に 3 つの新しいコンピューティングインスタンスが必要です。

現在の制限: 自動スケールアップロジックは、部分的にロードされたビジーノードを考慮しません。つまり、ジョブを実行しているノードは、空のスロットがある場合でも、ビジー状態と見なされます。

スケールダウン各コンピュートノードでnodewatcherと呼ばれるプロセスを実行し、ノードのアイドル時間を評価します。インスタンスは、次の条件のいずれも満たされた場合に終了します。

• インスタンスで scaledown_idletime より長い期間ジョブが実行されていない (デフォルト設定は 10分)

• クラスター内に保留中のジョブがない

インスタンスを終了するために、nodewatcher は、TerminateInstanceInAutoScalingGroup API コールを呼び出します。その結果、ASG のサイズが ASG の最小サイズを上回ると、インスタンスは削除されます。このプロセスでは、実行中のジョブに影響を及ぼすことなく、クラスターをスケールダウンすることができます。また、固定ベース数のインスタンスにより伸縮自在なクラスターを有効にします。

静的クラスターAuto Scaling の値は、HPC の場合も他のワークロードと同じです。ここでの唯一の違いは、AWSParallelCluster には、具体的にインテリジェントな方法で操作させるコードがあることです。たとえば、静的クラスターが必要な場合は、initial_queue_size パラメータおよび max_queue_size パラメータを必要なクラスターの正確なサイズに設定し、その後 maintain_initial_size パラメータを true に設定します。これにより、ComputeFleet ASG の最小容量、最大容量、および必要な容量に対して同じ値が設定されます。

102

Page 110: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster で最初のジョブを実行する

チュートリアル以下のチュートリアルでは、AWS ParallelCluster の開始方法について説明し、一般的なタスクのベストプラクティスのガイダンスを示します。

トピック• AWS ParallelCluster で最初のジョブを実行する (p. 103)• カスタム AWS ParallelCluster AMI の構築 (p. 105)• AWS ParallelCluster と awsbatch スケジューラを使用して MPI ジョブを実行する (p. 107)• カスタム KMS キーを使用したディスク暗号化 (p. 113)

AWS ParallelCluster で最初のジョブを実行するこのチュートリアルでは、AWS ParallelCluster で最初の「Hello World」ジョブを実行する方法について説明します。

AWS ParallelCluster はまだインストールしていないが、CLI が設定されている場合は、このチュートリアルに進む前に、「開始方法 (p. 2)」ガイドの手順に従います。

インストールを確認するまず、AWS ParallelCluster が正しくインストールされ、設定されていることを確認します。

$ pcluster version

これにより、AWS ParallelCluster の実行中のバージョンが返ります。設定に関するメッセージが出力に表示されたら、AWS ParallelCluster を設定するために次のコマンドを実行する必要があります。

$ pcluster configure

初めてクラスターを作成するでは、最初のクラスターを作成していきましょう。このチュートリアルのワークロードのパフォーマンス負荷は高くないため、デフォルトのインスタンスサイズ t2.micro を使います。(本稼働ワークロードの場合は、ニーズに最適なインスタンスサイズを選択します。)

hello-world クラスターを呼び出してみましょう。

$ pcluster create hello-world

クラスターが作成されると、次のような出力が表示されます。

Starting: hello-worldStatus: parallelcluster-hello-world - CREATE_COMPLETEMasterPublicIP = 54.148.x.xClusterUser: ec2-userMasterPrivateIP = 192.168.x.xGangliaPrivateURL = http://192.168.x.x/ganglia/GangliaPublicURL = http://54.148.x.x/ganglia/

103

Page 111: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドマスターインスタンスにログインする

メッセージ CREATE_COMPLETE は、クラスターが正しく作成されたことを示します。また、この出力には、マスターノードのパブリック IP アドレスとプライベート IP アドレスも表示されています。ログインするにはこの IP が必要です。

マスターインスタンスにログインするOpenSSH pem ファイルを使用してマスターインスタンスにログインします。

pcluster ssh hello-world -i /path/to/keyfile.pem

ログインしたら、qhost コマンドを実行して、コンピューティングノードがセットアップおよび設定されていることを確認します。

$ qhostHOSTNAME ARCH NCPU NSOC NCOR NTHR LOAD MEMTOT MEMUSE SWAPTO SWAPUS----------------------------------------------------------------------------------------------global - - - - - - - - - -ip-192-168-1-125 lx-amd64 2 1 2 2 0.15 3.7G 130.8M 1024.0M 0.0ip-192-168-1-126 lx-amd64 2 1 2 2 0.15 3.7G 130.8M 1024.0M 0.0

クラスターに 2 つのコンピューティングノードがあり、どちらも 2 つのスレッドを使用できることが出力に示されます。

SGE を使用して最初のジョブを実行する次に、しばらくの間スリープしてから、独自のホスト名を出力するジョブを作成します。

hellojob.sh というファイルを次の内容で作成します。

#!/bin/bashsleep 30echo "Hello World from $(hostname)"

次に、qsub を使用してジョブを送信し、実行されることを確認します。

$ qsub hellojob.shYour job 1 ("hellojob.sh") has been submitted

これで、キューを表示してジョブのステータスを確認できます。

$ qstatjob-ID prior name user state submit/start at queue slots ja-task-ID----------------------------------------------------------------------------------------------------------------- 1 0.55500 hellojob.s ec2-user r 03/24/2015 22:23:48 [email protected] 1

ジョブが現在実行ステータスであることが出力に示されます。ジョブが終了するまで 30 秒間待ってから、もう一度 qstat を実行します。

$ qstat$

104

Page 112: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドカスタム AWS ParallelCluster AMI の構築

キューにはジョブがないため、現在のディレクトリで出力を確認できます。

$ ls -ltotal 8-rw-rw-r-- 1 ec2-user ec2-user 48 Mar 24 22:34 hellojob.sh-rw-r--r-- 1 ec2-user ec2-user 0 Mar 24 22:34 hellojob.sh.e1-rw-r--r-- 1 ec2-user ec2-user 34 Mar 24 22:34 hellojob.sh.o1

ジョブスクリプトの e1 および o1 ファイルが出力で確認できます。e1 ファイルは空であるため、stderrへの出力はありません。o1 ファイルを表示すると、ジョブの出力が表示されます。

$ cat hellojob.sh.o1Hello World from ip-192-168-1-125

また、出力には、ジョブがインスタンス ip-192-168-1-125 上で正常に実行されていることも示されています。

カスタム AWS ParallelCluster AMI の構築Important

カスタム AMI を構築することは AWS ParallelCluster をカスタマイズするための推奨されるアプローチではありません。独自の AMI を構築すると、AWS ParallelCluster の今後のリリースでアップデートやバグ修正を適用できなくなります。また、新しい AWS ParallelCluster リリースがあるたびに、カスタム AMIの作成に使用した手順を繰り返す必要があります。

読み進める前に、カスタムブートストラップアクション (p. 33)のセクションを参照の上、今後の AWSParallelCluster リリースで変更をスクリプト化してサポートできるかどうかを確認してください。

カスタム AMI を構築するのは理想的ではありませんが、AWS ParallelCluster 用のカスタム AMI を構築する必要があるシナリオがあります。このチュートリアルでは、このプロセスについて説明します。

Note

AWS ParallelCluster 2.6.1 以降、起動時間を短縮するために、ほとんどのインストールレシピはノードの起動時にデフォルトでスキップされます。起動時間の短縮よりも下位互換性の向上を優先させるために、すべてのインストールレシピを実行するには、the section called“extra_json” (p. 67) 設定の cluster キーに "skip_install_recipes" : "no" を追加します。以下に例を示します。

extra_json = { "cluster" : { "skip_install_recipes" : "no" } }

AWS ParallelCluster AMI をカスタマイズする方法カスタムの AWS ParallelCluster AMI を使用するには 3 つの方法があります。2 つのメソッドでは、AWSアカウントで使用できる新しい AMI を構築する必要があります。3 つめの方法 (実行時にカスタム AMI を使用する) では、事前に何かを構築する必要はありません。必要に応じて、適切な方法を選択してください。

カスタマイズ方法• AWS ParallelCluster AMI を変更する (p. 106)• カスタム AWS ParallelCluster AMI を構築する (p. 106)• 実行時にカスタム AMI を使用する (p. 107)

105

Page 113: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster AMI をカスタマイズする方法

AWS ParallelCluster AMI を変更する基本 AWS ParallelCluster AMI は新しいリリースで頻繁に更新されるため、これが最も安全な方法です。この AMI には、インストールおよび設定されたとおりに機能するために AWS ParallelCluster に必要なコンポーネントがすべて揃っています。これは、ベースとして起動できます。

1. AMI リストで、使用しているリージョンに対応する AMI を見つけます。使用する AMI リストは、使用している AWS ParallelCluster のバージョンと一致する必要があります。pcluster version を実行して、バージョンを確認します。AWS ParallelCluster 2.6.1 については、https://github.com/aws/aws-parallelcluster/blob/v2.6.1/amis.txt を参照してください。別のバージョンを選択するには、同じリンクを使用して [タグ: 2.6.1] ボタンを選択し、[タグ] タブを選択して、適切なバージョンを選択します。

2. Amazon EC2 コンソール内で、[Launch Instance (インスタンスを起動)] を選択します。3. [コミュニティ AMI] に移動して、検索ボックスにリージョンの AMI ID を入力します。4. AMI を選択し、インスタンスタイプとプロパティを選択して、インスタンスを起動します。5. OS ユーザーと SSH キーを使用してインスタンスにログインします。6. 必要に応じてインスタンスをカスタマイズします。7. 次のコマンドを実行して、インスタンスを AMI 作成用に準備します。

sudo /usr/local/sbin/ami_cleanup.sh

8. インスタンスを停止します。9. インスタンスから 新しい AMI を作成します。10.クラスター設定内の custom_ami (p. 64) フィールドに AMI ID を入力します。

カスタム AWS ParallelCluster AMI を構築するカスタマイズされた AMI とソフトウェアがすでに導入されている場合は、AWS ParallelCluster で必要な変更を適用することができます。

1. ローカルシステムに AWS ParallelCluster CLI とともに次のツールをインストールします。• Packer: Packer ウェブサイトから OS の最新バージョンを探してインストールします。• ChefDK: ChefDK ウェブサイトから OS の最新バージョンを探してインストールします。

2. ステップ 1 でツールをインストールした後、packer および berks コマンドがパスで使用できることを確認します。

3. Packer がユーザーに代わって AWS API オペレーションを呼び出すことができるように、AWS アカウントの認証情報を設定します。Packer が機能するために最低限必要なアクセス許可のセットは、Packer のドキュメントの Amazon AMI Builder トピックの IAM Task or Instance Role セクションに記載されています。

4. ベースとして提供したものから始めて AWS ParallelCluster AMI を構築するために AWS ParallelClusterCLI の createami コマンドを使用できるようになります。

pcluster createami --ami-id <BASE AMI> --os <BASE OS AMI>

Important

createami コマンドに<BASE AMI> として AWS ParallelCluster AMI を使用することはできません。そうすると、コマンドは失敗します。

他のパラメータの詳細については、コマンドヘルプを参照してください。

pcluster createami -h

106

Page 114: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS ParallelCluster と awsbatch スケ

ジューラを使用して MPI ジョブを実行する

5. ステップ 4 のコマンドで Packer を実行します。これにより、以下のステップが実行されます。a. 提供されているベース AMI を使用してインスタンスを起動します。b. ソフトウェアをインストールし、他の必要な設定作業を実行するために、AWS ParallelCluster クッ

クブックをインスタンスに適用します。c. インスタンスを停止します。d. インスタンスから新しい AMI を作成します。e. AMI の作成後にインスタンスを終了します。f. クラスターの作成に使用する新しい AMI ID 文字列を出力します。

6. クラスターを作成するには、クラスター設定内の custom_ami (p. 64) フィールドに AMI ID を入力します。

Note

カスタムの AWS ParallelCluster AMI の構築に使用するインスタンスタイプは t2.xlarge です。これは、AWS 無料利用枠の対象外です。この AMI を構築するときに作成されたすべてのインスタンスに対して料金が発生します。

実行時にカスタム AMI を使用する事前に何も作成しない場合は、AMI を使用して、AWS ParallelCluster を作成します。

この方法では、クラスター作成時に AWS ParallelCluster で必要なソフトウェアをすべてインストールする必要があるため、AWS ParallelCluster の作成時間は長くなります。また、新しいノードごとにスケールアップする場合はさらに時間がかかります。

• クラスター設定内の custom_ami (p. 64) フィールドに AMI ID を入力します。

AWS ParallelCluster と awsbatch スケジューラを使用して MPI ジョブを実行する

このチュートリアルでは awsbatch をスケジューラとして使用して MPI ジョブを実行する方法を説明します。

AWS ParallelCluster はまだインストールしていないが、CLI が設定されている場合は、このチュートリアルに進む前に、「開始方法 (p. 2)」ガイドの手順に従います。また、次のステップに進む前に、awsbatchネットワークのセットアップ (p. 31)ドキュメントを必ず読んでください。

クラスターの作成まず、スケジューラとして awsbatch を使用するクラスター用の設定を作成しましょう。vpc セクションと key_name フィールドの不足しているデータを、設定時に作成したリソースに挿入してください。

[global]sanity_check = true

[aws]aws_region_name = us-east-1

[cluster awsbatch]base_os = alinux# Replace with the name of the key you intend to use.key_name = key-#######

107

Page 115: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドマスターインスタンスにログインする

vpc_settings = my-vpcscheduler = awsbatchcompute_instance_type = optimalmin_vcpus = 2desired_vcpus = 2max_vcpus = 24

[vpc my-vpc]# Replace with the id of the vpc you intend to use.vpc_id = vpc-######## Replace with id of the subnet for the Master node.master_subnet_id = subnet-######## Replace with id of the subnet for the Compute nodes.# A NAT Gateway is required for MNP.compute_subnet_id = subnet-#######

これでクラスターの作成を開始できます。AWS ではクラスターを awsbatch-tutorial と呼びます。

$ pcluster create -c /path/to/the/created/config/aws_batch.config -t awsbatch awsbatch-tutorial

クラスターが作成されると、次のような出力が表示されます。

Beginning cluster creation for cluster: awsbatch-tutorialCreating stack named: parallelcluster-awsbatchStatus: parallelcluster-awsbatch - CREATE_COMPLETEMasterPublicIP: 54.160.xxx.xxxClusterUser: ec2-userMasterPrivateIP: 10.0.0.15

マスターインスタンスにログインするAWS ParallelClusterバッチ CLI (p. 50) コマンドはすべて、AWS ParallelCluster がインストールされているクライアントマシンで使用することができます。ただし、マスターノードに SSH 接続し、そこからジョブを送信します。これにより、マスターインスタンスと、AWS Batch ジョブを実行するすべての Dockerインスタンス間で共有される NFS ボリュームを使用することができます。

SSH pem ファイルを使用して、マスターインスタンスにログインします。

$ pcluster ssh awsbatch-tutorial -i /path/to/keyfile.pem

ログインしたら、コマンド awsbqueues と awsbhosts を実行して、設定済みの AWS Batch キューと実行中の Amazon ECS インスタンスを表示します。

[ec2-user@ip-10-0-0-111 ~]$ awsbqueuesjobQueueName status--------------------------------- --------parallelcluster-awsbatch-tutorial VALID

[ec2-user@ip-10-0-0-111 ~]$ awsbhostsec2InstanceId instanceType privateIpAddress publicIpAddress runningJobs------------------- -------------- ------------------ ----------------- -------------i-0d6a0c8c560cd5bed m4.large 10.0.0.235 34.239.174.236 0

出力からわかるように、1 つの実行中のホストを選択します。これは、設定で the section called“min_vcpus” (p. 69) に選択した値が原因です。AWS Batch キューとホストに関する追加の詳細を表示する場合は、コマンドに -d フラグを追加します。

108

Page 116: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS Batch を使用して最初のジョブを実行する

AWS Batch を使用して最初のジョブを実行するMPI に移行する前に、しばらくの間スリープしてから独自のホスト名を出力し、パラメータとして渡された名前にあいさつをするダミージョブを作成しましょう。

以下の内容の「hellojob.sh」という名前のファイルを作成します。

#!/bin/bash

sleep 30echo "Hello $1 from $(hostname)"echo "Hello $1 from $(hostname)" > "/shared/secret_message_for_${1}_by_${AWS_BATCH_JOB_ID}"

次に、awsbsub を使用してジョブを送信し、実行されることを確認します。

$ awsbsub -jn hello -cf hellojob.sh LucaJob 6efe6c7c-4943-4c1a-baf5-edbfeccab5d2 (hello) has been submitted.

キューを表示してジョブのステータスを確認します。

$ awsbstatjobId jobName status startedAt stoppedAt exitCode------------------------------------ ----------- -------- ------------------- ----------- ----------6efe6c7c-4943-4c1a-baf5-edbfeccab5d2 hello RUNNING 2018-11-12 09:41:29 - -

ジョブの詳細情報が出力に示されます。

$ awsbstat 6efe6c7c-4943-4c1a-baf5-edbfeccab5d2jobId : 6efe6c7c-4943-4c1a-baf5-edbfeccab5d2jobName : hellocreatedAt : 2018-11-12 09:41:21startedAt : 2018-11-12 09:41:29stoppedAt : -status : RUNNINGstatusReason : -jobDefinition : parallelcluster-myBatch:1jobQueue : parallelcluster-myBatchcommand : /bin/bash -c 'aws s3 --region us-east-1 cp s3://parallelcluster-mybatch-lui1ftboklhpns95/batch/job-hellojob_sh-1542015680924.sh /tmp/batch/job-hellojob_sh-1542015680924.sh; bash /tmp/batch/job-hellojob_sh-1542015680924.sh Luca'exitCode : -reason : -vcpus : 1memory[MB] : 128nodes : 1logStream : parallelcluster-myBatch/default/c75dac4a-5aca-4238-a4dd-078037453554log : https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logEventViewer:group=/aws/batch/job;stream=parallelcluster-myBatch/default/c75dac4a-5aca-4238-a4dd-078037453554-------------------------

ジョブの現在の状態は、RUNNING です。ジョブが終了するまで 30 秒間待ってから、もう一度 awsbstatを実行します。

$ awsbstat

109

Page 117: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドマルチノード並列環境で MPI ジョブを実行する

jobId jobName status startedAt stoppedAt exitCode------------------------------------ ----------- -------- ------------------- ----------- ----------

これで、ジョブが SUCCEEDED ステータスになりました。

$ awsbstat -s SUCCEEDEDjobId jobName status startedAt stoppedAt exitCode------------------------------------ ----------- --------- ------------------- ------------------- ----------6efe6c7c-4943-4c1a-baf5-edbfeccab5d2 hello SUCCEEDED 2018-11-12 09:41:29 2018-11-12 09:42:00 0

現在キューにはジョブがないため、awsbout コマンドで出力を確認できます。

$ awsbout 6efe6c7c-4943-4c1a-baf5-edbfeccab5d22018-11-12 09:41:29: Starting Job 6efe6c7c-4943-4c1a-baf5-edbfeccab5d2download: s3://parallelcluster-mybatch-lui1ftboklhpns95/batch/job-hellojob_sh-1542015680924.sh to tmp/batch/job-hellojob_sh-1542015680924.sh2018-11-12 09:42:00: Hello Luca from ip-172-31-4-234

ジョブはインスタンス「ip-172-31-4-234」で正常に実行されたことがわかります。

/shared ディレクトリを調べると、秘密のメッセージが表示されます。

このチュートリアルに含まれない利用可能な機能をすべて確認するには、「AWS ParallelClusterバッチCLI のドキュメント (p. 50)」を参照してください。チュートリアルを進める準備ができたら、MPI ジョブを送信する方法を確認しましょう。

マルチノード並列環境で MPI ジョブを実行するマスターノードにログインしたまま、mpi_hello_world.c という名前のファイルを /shared ディレクトリに作成します。次の MPI プログラムをファイルに追加します。

// Copyright 2011 www.mpitutorial.com//// An intro MPI hello world program that uses MPI_Init, MPI_Comm_size,// MPI_Comm_rank, MPI_Finalize, and MPI_Get_processor_name.//#include <mpi.h>#include <stdio.h>#include <stddef.h>

int main(int argc, char** argv) { // Initialize the MPI environment. The two arguments to MPI Init are not // currently used by MPI implementations, but are there in case future // implementations might need the arguments. MPI_Init(NULL, NULL);

// Get the number of processes int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size);

// Get the rank of the process int world_rank; MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);

// Get the name of the processor char processor_name[MPI_MAX_PROCESSOR_NAME];

110

Page 118: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドマルチノード並列環境で MPI ジョブを実行する

int name_len; MPI_Get_processor_name(processor_name, &name_len);

// Print off a hello world message printf("Hello world from processor %s, rank %d out of %d processors\n", processor_name, world_rank, world_size);

// Finalize the MPI environment. No more MPI calls can be made after this MPI_Finalize();}

次のコードを submit_mpi.sh として保存します。

#!/bin/bashecho "ip container: $(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1)"echo "ip host: $(curl -s "http://169.254.169.254/latest/meta-data/local-ipv4")"

# get shared dirIFS=',' _shared_dirs=(${PCLUSTER_SHARED_DIRS})_shared_dir=${_shared_dirs[0]}_job_dir="${_shared_dir}/${AWS_BATCH_JOB_ID%#*}-${AWS_BATCH_JOB_ATTEMPT}"_exit_code_file="${_job_dir}/batch-exit-code"

if [[ "${AWS_BATCH_JOB_NODE_INDEX}" -eq "${AWS_BATCH_JOB_MAIN_NODE_INDEX}" ]]; then echo "Hello I'm the main node $(hostname)! I run the mpi job!"

mkdir -p "${_job_dir}"

echo "Compiling..." /usr/lib64/openmpi/bin/mpicc -o "${_job_dir}/mpi_hello_world" "${_shared_dir}/mpi_hello_world.c"

echo "Running..." /usr/lib64/openmpi/bin/mpirun --mca btl_tcp_if_include eth0 --allow-run-as-root --machinefile "${HOME}/hostfile" "${_job_dir}/mpi_hello_world"

# Write exit status code echo "0" > "${_exit_code_file}" # Waiting for compute nodes to terminate sleep 30else echo "Hello I'm the compute node $(hostname)! I let the main node orchestrate the mpi execution!" # Since mpi orchestration happens on the main node, we need to make sure the containers representing the compute # nodes are not terminated. A simple trick is to wait for a file containing the status code to be created. # All compute nodes are terminated by Batch if the main node exits abruptly. while [ ! -f "${_exit_code_file}" ]; do sleep 2 done exit $(cat "${_exit_code_file}")fi

これで、最初の MPI ジョブを送信して 3 つのノードで同時に実行する準備ができました。

$ awsbsub -n 3 -cf submit_mpi.sh

ジョブのステータスをモニタリングし、それが RUNNING ステータスになるまで待ちます。

$ watch awsbstat -d

111

Page 119: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドマルチノード並列環境で MPI ジョブを実行する

ジョブが RUNNING ステータスになったら、その出力を確認することができます。メインモードの出力を表示するには、#0 をジョブ ID に追加します。コンピューティングノードの出力を表示するには、#1 および #2 を使用します。

[ec2-user@ip-10-0-0-111 ~]$ awsbout -s 5b4d50f8-1060-4ebf-ba2d-1ae868bbd92d#02018-11-27 15:50:10: Job id: 5b4d50f8-1060-4ebf-ba2d-1ae868bbd92d#02018-11-27 15:50:10: Initializing the environment...2018-11-27 15:50:10: Starting ssh agents...2018-11-27 15:50:11: Agent pid 72018-11-27 15:50:11: Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)2018-11-27 15:50:11: Mounting shared file system...2018-11-27 15:50:11: Generating hostfile...2018-11-27 15:50:11: Detected 1/3 compute nodes. Waiting for all compute nodes to start.2018-11-27 15:50:26: Detected 1/3 compute nodes. Waiting for all compute nodes to start.2018-11-27 15:50:41: Detected 1/3 compute nodes. Waiting for all compute nodes to start.2018-11-27 15:50:56: Detected 3/3 compute nodes. Waiting for all compute nodes to start.2018-11-27 15:51:11: Starting the job...download: s3://parallelcluster-awsbatch-tutorial-iwyl4458saiwgwvg/batch/job-submit_mpi_sh-1543333713772.sh to tmp/batch/job-submit_mpi_sh-1543333713772.sh2018-11-27 15:51:12: ip container: 10.0.0.1802018-11-27 15:51:12: ip host: 10.0.0.2452018-11-27 15:51:12: Compiling...2018-11-27 15:51:12: Running...2018-11-27 15:51:12: Hello I'm the main node! I run the mpi job!2018-11-27 15:51:12: Warning: Permanently added '10.0.0.199' (RSA) to the list of known hosts.2018-11-27 15:51:12: Warning: Permanently added '10.0.0.147' (RSA) to the list of known hosts.2018-11-27 15:51:13: Hello world from processor ip-10-0-0-180.ec2.internal, rank 1 out of 6 processors2018-11-27 15:51:13: Hello world from processor ip-10-0-0-199.ec2.internal, rank 5 out of 6 processors2018-11-27 15:51:13: Hello world from processor ip-10-0-0-180.ec2.internal, rank 0 out of 6 processors2018-11-27 15:51:13: Hello world from processor ip-10-0-0-199.ec2.internal, rank 4 out of 6 processors2018-11-27 15:51:13: Hello world from processor ip-10-0-0-147.ec2.internal, rank 2 out of 6 processors2018-11-27 15:51:13: Hello world from processor ip-10-0-0-147.ec2.internal, rank 3 out of 6 processors

[ec2-user@ip-10-0-0-111 ~]$ awsbout -s 5b4d50f8-1060-4ebf-ba2d-1ae868bbd92d#12018-11-27 15:50:52: Job id: 5b4d50f8-1060-4ebf-ba2d-1ae868bbd92d#12018-11-27 15:50:52: Initializing the environment...2018-11-27 15:50:52: Starting ssh agents...2018-11-27 15:50:52: Agent pid 72018-11-27 15:50:52: Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)2018-11-27 15:50:52: Mounting shared file system...2018-11-27 15:50:52: Generating hostfile...2018-11-27 15:50:52: Starting the job...download: s3://parallelcluster-awsbatch-tutorial-iwyl4458saiwgwvg/batch/job-submit_mpi_sh-1543333713772.sh to tmp/batch/job-submit_mpi_sh-1543333713772.sh2018-11-27 15:50:53: ip container: 10.0.0.1992018-11-27 15:50:53: ip host: 10.0.0.2272018-11-27 15:50:53: Compiling...2018-11-27 15:50:53: Running...2018-11-27 15:50:53: Hello I'm a compute note! I let the main node orchestrate the mpi execution!

これでジョブが正常に完了したことを確認できるようになりました。

[ec2-user@ip-10-0-0-111 ~]$ awsbstat -s ALLjobId jobName status startedAt stoppedAt exitCode

112

Page 120: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドカスタム KMS キーを使用したディスク暗号化

------------------------------------ ------------- --------- ------------------- ------------------- ----------5b4d50f8-1060-4ebf-ba2d-1ae868bbd92d submit_mpi_sh SUCCEEDED 2018-11-27 15:50:10 2018-11-27 15:51:26 -

注: ジョブを終了する場合は、終了前に awsbkill コマンドを使用します。

カスタム KMS キーを使用したディスク暗号化AWS ParallelCluster では、設定オプション (ebs_kms_key_id および fsx_kms_key_id) をサポートしています。これらのオプションでは、Amazon EBS ディスク暗号化または Amazon FSx for Lustre 用のカスタム AWS KMS キーを指定できます。これらを使用するには、ec2_iam_role を指定します。

クラスターを作成するには、AWS KMS キーでクラスターのロールの名前を把握している必要があります。これにより、カスタムの ec2_iam_role が必要になるため、クラスターの作成で作成されたロールを使用できなくなります。

ロールの作成まず、次のようにポリシーを作成します。

1. IAM コンソール (https://console.aws.amazon.com/iam/home) に移動します。2. [ポリシー] の [ポリシーの作成] で、[JSON] タブをクリックします。3. ポリシーの本文として、[インスタンスポリシー (p. 37)] に貼り付けます。<AWS ACCOUNT ID> と

<REGION> をすべて置き換えます。4. ポリシー ParallelClusterInstancePolicy に名前を付け、[ポリシーの作成] をクリックします。

次にロールを作成します。

1. [ロール] で、ロールを作成します。2. 信頼されたエンティティとして [EC2] をクリックします3. [アクセス許可] で、先ほど作成した ParallelClusterInstancePolicy ロールを検索してアタッチ

します。4. ロール ParallelClusterInstanceRole に名前を付け、[ロールの作成] をクリックします。

キーのアクセス許可を付与するIAM コンソールで、[暗号化キー] を選択し、キーをクリックします。

[ユーザーの追加] をクリックし、先ほど作成した ParallelClusterInstanceRole を検索します。アタッチします。

クラスターの作成これで、クラスターが作成されます。以下は、暗号化された Raid 0 ドライブを含むクラスターの例です。

[cluster default]...raid_settings = rsec2_iam_role = ParallelClusterInstanceRole

113

Page 121: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドクラスターの作成

[raid rs]shared_dir = raidraid_type = 0num_of_raid_volumes = 2volume_size = 100encrypted = trueebs_kms_key_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

以下は、Amazon FSx for Lustre ファイルシステムの例です。

[cluster default]...fsx_settings = fsec2_iam_role = ParallelClusterInstanceRole

[fsx fs]shared_dir = /fsxstorage_capacity = 3600imported_file_chunk_size = 1024export_path = s3://bucket/folderimport_path = s3://bucketweekly_maintenance_start_time = 1:00:00fsx_kms_key_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

ファイルシステムに基づき、同様の設定が Amazon EBS および Amazon FSx に適用されます。

114

Page 122: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドカスタム AWS ParallelCluster クッ

クブックをセットアップする

開発次のセクションを使用して、AWS ParallelCluster の開発を開始します。

Important

以下のセクションでは、クックブックのレシピのカスタムバージョンと、カスタムの AWSParallelCluster ノードパッケージを使用する手順を示しています。この情報には AWSParallelCluster をカスタマイズする高度な方法が含まれますが、デバッグが困難な問題が発生する可能性があります。AWS ParallelCluster チームでは、インストール後フックの方が一般的にデバッグが容易で、AWS ParallelCluster のリリース間での移植性が高いため、カスタマイズにはカスタムブートストラップアクション (p. 33)スクリプトを使用することを強くお勧めしています。

トピック• カスタム AWS ParallelCluster クックブックをセットアップする (p. 115)• カスタム AWS ParallelCluster ノードパッケージをセットアップする (p. 116)

カスタム AWS ParallelCluster クックブックをセットアップする

Important

カスタムバージョンの AWS ParallelCluster クックブックレシピの使用手順を以下に示します。これは AWS ParallelCluster をカスタマイズする高度な方法ですが、デバッグが困難な問題が発生する可能性があります。AWS ParallelCluster チームでは、インストール後フックの方が一般的にデバッグが容易で、AWS ParallelCluster のリリース間での移植性が高いため、カスタマイズにはカスタムブートストラップアクション (p. 33)スクリプトを使用することを強くお勧めしています。

ステップ1. AWS ParallelCluster クックブックコードをクローンした AWS ParallelCluster クックブック作業ディレ

クトリを特定します

_cookbookDir=<path to cookbook>

2. AWS ParallelCluster クックブックの最新バージョンを検出します。

_version=$(grep version ${_cookbookDir}/metadata.rb|awk '{print $2}'| tr -d \')

3. AWS ParallelCluster クックブックのアーカイブを作成し、md5 を計算します。

cd "${_cookbookDir}"_stashName=$(git stash create)git archive --format tar --prefix="aws-parallelcluster-cookbook-${_version}/" "${_stashName:-HEAD}" | gzip > "aws-parallelcluster-cookbook-${_version}.tgz"md5sum "aws-parallelcluster-cookbook-${_version}.tgz" > "aws-parallelcluster-cookbook-${_version}.md5"

4. Amazon S3 バケットを作成し、アーカイブ、その md5、およびその最終更新日をバケットにアップロードします。パブリック読み取り ACL を使用して、パブリック読み取り可能なアクセス許可を付与します。

115

Page 123: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドカスタム AWS ParallelCluster ノードパッケージをセットアップする

_bucket=<the bucket name>aws s3 cp --acl public-read aws-parallelcluster-cookbook-${_version}.tgz s3://${_bucket}/cookbooks/aws-parallelcluster-cookbook-${_version}.tgzaws s3 cp --acl public-read aws-parallelcluster-cookbook-${_version}.md5 s3://${_bucket}/cookbooks/aws-parallelcluster-cookbook-${_version}.md5aws s3api head-object --bucket ${_bucket} --key cookbooks/aws-parallelcluster-cookbook-${_version}.tgz --output text --query LastModified > aws-parallelcluster-cookbook-${_version}.tgz.dateaws s3 cp --acl public-read aws-parallelcluster-cookbook-${_version}.tgz.date s3://${_bucket}/cookbooks/aws-parallelcluster-cookbook-${_version}.tgz.date

5. 以下の変数を AWS ParallelCluster 設定ファイル ([クラスター] セクション (p. 61)) に追加します。

custom_chef_cookbook = https://${_bucket}.s3.<the bucket region>.amazonaws.com/cookbooks/aws-parallelcluster-cookbook-${_version}.tgzextra_json = { "cluster" : { "skip_install_recipes" : "no" } }

Note

AWS ParallelCluster 2.6.1 以降、起動時間を短縮するために、ほとんどのインストールレシピはノードの起動時にデフォルトでスキップされます。下位互換性の向上よりも起動時間の短縮を優先させるために、ほとんどのインストールレシピをスキップするには、the section called“extra_json” (p. 67) 設定の cluster キーから "skip_install_recipes" : "no" を削除します。

カスタム AWS ParallelCluster ノードパッケージをセットアップする

Warning

カスタムバージョンの AWS ParallelCluster ノードパッケージの使用手順を以下に示します。これは AWS ParallelCluster をカスタマイズする高度な方法ですが、デバッグが困難な問題が発生する可能性があります。AWS ParallelCluster チームでは、インストール後フックの方が一般的にデバッグが容易で、AWS ParallelCluster のリリース間での移植性が高いため、カスタマイズには カスタムブートストラップアクション (p. 33)スクリプトを使用することを強くお勧めします。

ステップ1. AWS ParallelCluster ノードコードをクローンした AWS ParallelCluster ノード作業ディレクトリを特定

します。

_nodeDir=<path to node package>

2. AWS ParallelCluster ノードの最新バージョンを検出します。

_version=$(grep "version = \"" ${_nodeDir}/setup.py |awk '{print $3}' | tr -d \")

3. AWS ParallelCluster ノードのアーカイブを作成します。

cd "${_nodeDir}"_stashName=$(git stash create)git archive --format tar --prefix="aws-parallelcluster-node-${_version}/" "${_stashName:-HEAD}" | gzip > "aws-parallelcluster-node-${_version}.tgz"

116

Page 124: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドステップ

4. Amazon S3 バケットを作成して、アーカイブをそのバケットにアップロードします。パブリック読み取り ACL を使用して、パブリック読み取り可能なアクセス許可を付与します。

_bucket=<the bucket name>aws s3 cp --acl public-read aws-parallelcluster-node-${_version}.tgz s3://${_bucket}/node/aws-parallelcluster-node-${_version}.tgz

5. 以下の変数を AWS ParallelCluster 設定ファイル ([クラスター] セクション (p. 61)) に追加します。

extra_json = { "cluster" : { "custom_node_package" : "https://${_bucket}.s3.<the bucket region>.amazonaws.com/node/aws-parallelcluster-node-${_version}.tgz", "skip_install_recipes" : "no" } }

Note

AWS ParallelCluster 2.6.1 以降、起動時間を短縮するために、ほとんどのインストールレシピはノードの起動時にデフォルトでスキップされます。下位互換性の向上よりも起動時間の短縮を優先させるために、ほとんどのインストールレシピをスキップするには、the section called“extra_json” (p. 67) 設定の cluster キーから "skip_install_recipes" : "no" を削除します。

117

Page 125: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイドAWS Batch マルチノードの並列ジョブの送信に失敗しました

AWS ParallelCluster トラブルシューティング

AWS ParallelCluster コミュニティは、Wiki (aws-parallelcluster wiki) で多くのトラブルシューティングのヒントを公開しています。

AWS Batch マルチノードの並列ジョブの送信に失敗しました

ジョブスケジューラとして AWS Batch を使用するときにマルチノード並列ジョブの送信に問題がある場合は、AWS ParallelCluster 2.5.0 にアップグレードすることをお勧めします。それが実現できない場合は、回避策を使用できます。詳細については、「AWS Batch からマルチノード並列ジョブの送信に使用されるクラスターのセルフパッチ」を参照してください。

プレイスメントグループとインスタンスの起動に関する問題

ノード間のレイテンシーを最小限に抑えるには、プレイスメントグループを使用することをお勧めします。プレイスメントグループにより、確実にインスタンスが同じネットワーキングバックボーンに配置されます。リクエストの実行時に十分なインスタンスが使用できない場合、InsufficientInstanceCapacity エラーが返されます。クラスタープレイスメントグループの使用時に InsufficientInstanceCapacity エラーが発生する可能性を減らすには、the sectioncalled “placement_group” (p. 70) パラメータを DYNAMIC に設定し、the section called“placement” (p. 70) パラメータを compute に設定します。

高パフォーマンスの共有ファイルシステムが必要な場合は、Amazon FSx for Lustre の使用を検討してください。

マスターノードがプレイスメントグループに属する必要がある場合は、マスターノードとコンピュートノードの両方で同じインスタンスタイプとサブネットを使用します。つまり、thesection called “compute_instance_type” (p. 64) パラメータは the sectioncalled “master_instance_type” (p. 69) パラメータと同じ値を受け取り、the sectioncalled “placement” (p. 70) パラメータは cluster に設定され、the section called“compute_subnet_id” (p. 88) パラメータは指定されません。つまり、the section called“master_subnet_id” (p. 89) パラメータの値は計算ノートに使用されます。

詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「インスタンス起動に関する問題のトラブルシューティング」および「プレイスメントグループのロールと制限」を参照してください。

置き換えられないディレクトリ以下のディレクトリはノード間で共有され、置き換えることはできません。

118

Page 126: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド置き換えられないディレクトリ

/home

これには、デフォルトのユーザーホームフォルダ (Amazon Linux では /home/ec2_user、CentOSでは /home/centos、Ubuntu では /home/ubuntu) が含まれます。

/opt/intel

これには、Intel MPI、Intel Parallel Studio、および関連ファイルが含まれます。/opt/sge

これには、Son of Grid Engine および関連ファイルが含まれます。(条件付き、the sectioncalled “scheduler” (p. 72) = sge の場合のみ)

/opt/slurm

これには、Slurm Workload Manager および関連ファイルが含まれます。(条件付き、the sectioncalled “scheduler” (p. 72) = slurm の場合のみ)

/opt/torque

これには、Torque Resource Manager および関連ファイルが含まれます。(条件付き、the sectioncalled “scheduler” (p. 72) = torque の場合のみ)

119

Page 127: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド

ドキュメント履歴次の表は、「AWS ParallelCluster ユーザーガイド」の主な更新や新機能の一覧です。また、お客様からいただいたフィードバックに対応するために、ドキュメントを頻繁に更新しています。

変更 説明 日付

AWS ParallelCluster 2.6.1がリリースされました。

AWS ParallelCluster 2.6.1 がリリースされました。変更には次が含まれます。

• Amazon CloudWatch Logs に保存されているログから cfn-init-cmd および cfn-wire を削除しました。詳細については、「the section called “AmazonCloudWatch Logs との統合” (p. 55)」を参照してください。

2020 年 4 月17 日

AWS ParallelCluster 2.6.0がリリースされました。

AWS ParallelCluster 2.6.0 がリリースされました。新機能は以下のとおりです。

• Amazon Linux 2 のサポートが追加されました。• クラスターとスケジューラのログの収集に Amazon

CloudWatch Logs が使用されるようになりました。詳細については、「the section called “Amazon CloudWatchLogs との統合” (p. 55)」を参照してください。

• 新しい Amazon FSx for Lustre デプロイタイプSCRATCH_2 および PERSISTENT_1 のサポートが追加されました。Ubuntu 18.04 および Ubuntu 16.04 でのAmazon FSx for Lustre のサポート。詳細については、「fsx (p. 81)」を参照してください。

• Ubuntu 18.04 での NICE DCV のサポートが追加されました。詳細については、「the section called “NICE DCVを介してマスターインスタンスに接続する” (p. 57)」を参照してください。

2020 年 2 月27 日

AWS ParallelCluster 2.5.1のリリース

AWS ParallelCluster 2.5.1 では、いくつかのドライバが更新され、いくつかの問題が修正されます。詳細については、「AWS ParallelCluster 2.5.1」を参照してください。

2019 年 12月 13 日

AWS ParallelCluster 2.5.0のリリース

AWS ParallelCluster 2.5.0 は、Ubuntu 18.04 のサポートを導入し、Slurm で GPU オプションとスケジューリング、CentOS 7 上の NICE DCV をサポートしています。AWS ParallelCluster 2.5.0 に対するその他の変更の詳細については、「AWS ParallelCluster 2.5.0」を参照してください。

2019 年 11月 18 日

AWS ParallelCluster ではIntel MPI のサポートが導入されています。

AWS ParallelCluster 2.4.1 では Intel MPI のサポートが導入されています。詳細については、「the sectioncalled “Intel MPI を有効にする” (p. 56)」を参照してください。AWS ParallelCluster 2.4.1 で行われたその他の変更の詳細については、「AWS ParallelCluster 2.4.1」を参照してください。

2019 年 7 月29 日

120

Page 128: AWS ParallelCluster - AWS ParallelCluster ユーザー …...最新の CLI のバージョン番号は、GitHub のリリースページで確認できます。 このガイドのコマンド例では、Python

AWS ParallelCluster AWS ParallelCluster ユーザーガイド

変更 説明 日付

AWS ParallelCluster ではEFA のサポートが導入されています。

AWS ParallelCluster 2.4.0 では EFA のサポートが導入されています。詳細については、「the section called “ElasticFabric Adapter” (p. 56)」を参照してください。AWSParallelCluster 2.4.0 で行われたその他の変更の詳細については、AWS ParallelCluster 2.4.0を参照してください。

2019 年 6 月11 日

AWS ドキュメントウェブサイトでの AWSParallelCluster ドキュメントの初期リリース。

AWS ParallelCluster ドキュメントは、10 の言語で、HTML 形式と PDF 形式の両方で入手できるようになりました。

2019 年 6 月11 日

121