Compute > Image Builder > インストールコンポーネントガイド

PostgreSQL

[参考] このガイドはPostgreSQL 13バージョンを基準に作成されました。 異なるバージョンを使用する場合は該当バージョンに合わせて変更してください。

PostgreSQL開始/停止方法

#postgresqlサービス開始
shell> systemctl start postgresql-13

#postgresqlサービス中止
shell> systemctl stop postgresql-13

#postgresqlサービス再起動
shell> systemctl restart postgresql-13

PostgreSQL接続

インスタンスを作成した後、初めに以下のように接続します。

#postgresにアカウント切り替え後に接続
shell> su - postgres
shell> psql

PostgreSQLインスタンス作成後、初期設定

1. ポート(port)変更

提供されるイメージポートはPostgreSQL基本ポートの5432です。セキュリティ上、ポートの変更を推奨します。

shell> vi /var/lib/pgsql/13/data/postgresql.conf


#postgresql.confファイルに使用するポートを入力します。

port =使用するポート名


#viエディタ保存


#postgresqlサービス再起動

shell> systemctl restart postgresql-13


#変更されたポートで以下のように接続

shell> psql -p[変更されたポート番号]

2. サーバーログタイムゾーン変更

サーバーログに記録される基本時間帯がUTCに設定されています。 SYSTEMローカル時間と同じに変更することを推奨します。

shell> vi /var/lib/pgsql/13/data/postgresql.conf


#postgresql.confファイルに使用するタイムゾーンを入力します。

log_timezone =使用するタイムゾーン


#viエディタ保存


#postgresqlサービス再起動

shell> systemctl restart postgresql-13


#postgresql接続

shell> psql


#変更した設定の確認

postgres=# SHOW log_timezone;

3. publicスキーマ権限キャンセル

基本的にすべてのユーザーにpublicスキーマのCREATEおよびUSAGE権限を付与しているため、データベースに接続することができるユーザーはpublicスキーマからオブジェクトを作成できます。すべてのユーザーがpublicスキーマからオブジェクトを作成できないように権限の取り消しを推奨します。

#postgresql接続

shell> psql


#権限取り消しコマンド実行

postgres=# REVOKE CREATE ON SCHEMA public FROM PUBLIC;

4. 遠隔接続許可

ローカルホスト以外の接続を許可するにはlisten_addresses変数とクライアント認証設定ファイルを変更する必要があります。

shell> vi /var/lib/pgsql/13/data/postgresql.conf


#postgresql.confファイルに許可するアドレスを指定してください。
#IPv4アドレスを全て許可する場合0.0.0.0
#IPv6アドレスを全て許可する場合::
#すべてのアドレスを許可する場合 *

listen_addresses =許可するアドレス


#viエディタ保存


shell> vi /var/lib/pgsql/13/data/pg_hba.conf


#IPアドレス形式ごとにクライアント認証制御
#古いクライアントライブラリはscram-sha-256方式をサポートしていないため、md5に変更必要

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host  許可DB        許可ユーザー    許可アドレス               scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
host  許可DB        許可ユーザー    許可アドレス               scram-sha-256


#postgresqlサービス再起動

shell> systemctl restart postgresql-13

PostgreSQLディレクトリの説明

PostgreSQLディレクトリおよびファイルの説明は以下の通りです。

名前 説明
postgresql.cnf /var/lib/pgsql/{version}/data/postgresql.cnf
initdb.log PostgreSQLデータベースクラスタ作成log - /var/lib/pgsql/{version}/initdb.log
DATADIR PostgreSQLデータファイルパス - /var/lib/pgsql/{version}/data/
LOG PostgreSQL logファイルパス - /var/lib/pgsql/{version}/data/log/*.log

MySQL

MySQL起動/停止方法

# MySQLサービスの起動
shell> sudo systemctl start mysqld
# MySQLサービスの終了
shell> sudo systemctl stop mysqld
# MySQLサービスの再起動
shell> sudo systemctl restart mysqld

MySQL接続

イメージ作成後、最初は以下のように接続します。

shell> mysql -u root

パスワード変更後は以下のように接続します。

shell> mysql -u root -p
Enter password:

MySQLインスタンス作成後の初期設定

1. パスワード設定

初期インストール後、MySQL rootアカウントパスワードは指定されていません。そのため、インストール後に必ずパスワードを設定する必要があります。

SET PASSWORD [FOR user] = password_option
mysql> SET PASSWORD = PASSWORD('パスワード');

2. ポート(port)変更

初期インストール後、ポートはMySQLの基本ポートである3306です。セキュリティ上、ポートを変更することを推奨します。

1) /etc/my.cnfファイルの修正

/etc/my.cnfファイルに使用するポートを指定します。

shell> sudo vi /etc/my.cnf
port=[変更するportアドレス]
2)インスタンスの再起動

ポートの変更が適用されるようにインスタンスを再起動します。

sudo systemctl restart mysqld

MariaDB

MariaDB起動/停止方法

# MariaDBサービス開始
shell> sudo systemctl start mariadb.service

# MariaDBサービス終了
shell> sudo systemctl stop mariadb.service

# MariaDBサービス再起動
shell> sudo systemctl restart mariadb.service

MariaDB接続

イメージ作成後、最初は以下のように接続します。

shell> mysql -u root

パスワード変更後は以下のように接続します。

shell> mysql -u root -p
Enter password:

MariaDBインスタンス作成後の初期設定

1. パスワード設定

最初のインストール後、MariaDB rootアカウントパスワードは指定されていません。そのためインストール後に必ずパスワードを設定する必要があります。

SET PASSWORD [FOR user] = password_option

MariaDB> SET PASSWORD = PASSWORD('パスワード');

2. ポート(port)変更

最初のインストール後のポートはMariaDBの基本ポート3306です。セキュリティ上、ポートの変更を推奨します。

1) /etc/my.cnf.d/servfer.cnfファイル修正

/etc/my.cnf.d/server.cnfファイルを開いて[mariadb]の下に以下のように変更するポートアドレスを入力します。

shell> sudo vi /etc/my.cnf.d/server.cnf
[mariadb]
port=[変更するportアドレス]
2)インスタンス再起動

ポートの変更を適用するためにインスタンスを再起動します。

sudo systemctl restart mariadb.service

CUBRID

CUBRIDサービスの開始/停止方法

“cubrid” LinuxアカウントでログインしてCUBRIDサービスを次のように開始/終了できます。

# CUBRIDサービス/サーバー起動
shell> sudo su - cubrid
shell> cubrid service start
shell> cubrid server start demodb

# CUBRIDサービス/サーバー終了
shell> sudo su - cubrid
shell> cubrid server stop demodb
shell> cubrid service stop

# CUBRIDサービス/サーバー再起動
shell> sudo su - cubrid
shell> cubrid server restart demodb
shell> cubrid service restart

# CUBRIDブローカー開始/終了/再起動
shell> sudo su - cubrid
shell> cubrid broker start
shell> cubrid broker stop
shell> cubrid broker restart

CUBRID接続

イメージ作成後、次のように接続します。

shell> sudo su - cubrid
shell> csql -u dba demodb@localhost

CUBRIDインスタンス作成後の初期設定

1. パスワード設定

最初のインストール後、CUBRID dbaアカウントパスワードは指定されていません。そのためインストール後に必ずパスワードを設定する必要があります。

shell> csql -u dba -c "ALTER USER dba PASSWORD 'new_password'" demodb@localhost

2. brokerポート(port)変更

query_editorのブローカーポートはデフォルト値が30000に設定されていて、broker1のブローカーポートはデフォルト値が33000に設定されます。 セキュリティ上、ポートの変更を推奨します。

1) brokerファイル修正

/opt/cubrid/conf/cubrid\_broker.confファイルを開いて以下のように変更するポートアドレスを入力します。

shell> vi /opt/cubrid/conf/cubrid_broker.conf
[%query_editor]
BROKER_PORT             =[変更するportアドレス]

[%BROKER1]
BROKER_PORT             =[変更するportアドレス]
2) broker再起動

ポートの変更を適用するためにbrokerを再起動します。

shell> cubrid broker restart

Apache Kafka

[参考] このガイドはKafka 3.3.1バージョンを基準に作成されました。 他のバージョンを使用する場合は、該当のバージョンに合わせて変更してください。 インスタンスタイプはc1m2(CPU 1core、Memory 2GB)以上の仕様で作成してください。

Zookeeper、Kafka broker起動/停止

# Zookeeper、Kafka broker起動(Zookeeperを先に起動)
shell> sudo systemctl start zookeeper.service
shell> sudo systemctl start kafka.service
# Zookeeper、Kafka broker終了(Kafka brokerを先に終了)
shell> sudo systemctl stop kafka.service
shell> sudo systemctl stop zookeeper.service
# Zookeeper, Kafka broker再起動
shell> sudo systemctl restart zookeeper.service
shell> sudo systemctl restart kafka.service

Kafka Clusterインストール

'- 必ず新規インスタンスにインストールします。 - インスタンスは3台以上、奇数で必要です。インスタンス1台でインストールスクリプトを実行します。 - インスタンス1台にkafka broker、zookeeper nodeが各1つずつ構成されます。 - インストールスクリプトを実行するインスタンスの /home/centos/ パスに他のインスタンスに接続する時に必要なキーペア(PEMファイル)が必要です。クラスタインスタンスのキーペアはすべて同じでなければなりません。 '- デフォルトポートのインストールのみサポートします。ポートの変更が必要な場合はクラスタインストールを完了してから初期設定ガイドのポート変更を参考にして変更します。 '- インスタンス間のKafka関連ポート通信のために、以下のセキュリティグループ設定を追加します。

セキュリティグループ設定

方向:受信
IPプロトコル: TCP
ポート: 22, 9092, 2181, 2888, 3888

Hostname、IPの確認方法

# Hostname確認
shell> hostname
# IP確認
コンソール画面
またはshell> hostname -i

Clusterインストールスクリプト実行例(上で確認したhostname、IPを入力)

shell> sh /home/centos/.kafka_make_cluster.sh
Enter Cluster Node Count: 3
### 3 is odd number.
Enter Cluster's IP ( Cluster 1 ) : 10.0.0.1
Enter Cluster's HOST_NAME ( Cluster 1 ) : kafka1.novalocal
Enter Cluster's IP ( Cluster 2 ) : 10.0.0.2
Enter Cluster's HOST_NAME ( Cluster 2 ) : kafka2.novalocal
Enter Cluster's IP ( Cluster 3 ) : 10.0.0.3
Enter Cluster's HOST_NAME ( Cluster 3 ) : kafka3.novalocal
10.0.0.1 kafka1.novalocal
10.0.0.2 kafka2.novalocal
10.0.0.3 kafka3.novalocal
Check Cluster Node Info (y/n) y
Enter Pemkey's name: kafka.pem
ls: cannot access /tmp/kafka-logs: No such file or directory
ls: cannot access /tmp/zookeeper: No such file or directory
### kafka1.novalocal ( 10.0.0.1 ), Check if kafka is being used
### kafka1.novalocal ( 10.0.0.1 ), Store node information in the /etc/hosts directory.
### kafka1.novalocal ( 10.0.0.1 ), Modify zookeeper.properties.
### kafka1.novalocal ( 10.0.0.1 ), Modify server.properties.
ls: cannot access /tmp/kafka-logs: No such file or directory
ls: cannot access /tmp/zookeeper: No such file or directory
### kafka2.novalocal ( 10.0.0.2 ), Check if kafka is being used
### kafka2.novalocal ( 10.0.0.2 ), Store node information in the /etc/hosts directory.
### kafka2.novalocal ( 10.0.0.2 ), Modify zookeeper.properties.
### kafka2.novalocal ( 10.0.0.2 ), Modify server.properties.
ls: cannot access /tmp/kafka-logs: No such file or directory
ls: cannot access /tmp/zookeeper: No such file or directory
### kafka3.novalocal ( 10.0.0.3 ), Check if kafka is being used
### kafka3.novalocal ( 10.0.0.3 ), Store node information in the /etc/hosts directory.
### kafka3.novalocal ( 10.0.0.3 ), Modify zookeeper.properties.
### kafka3.novalocal ( 10.0.0.3 ), Modify server.properties.
### kafka1.novalocal ( 10.0.0.1 ), Start Zookeeper, Kafka.
### Zookeeper, Kafka process is running.
### kafka2.novalocal ( 10.0.0.2 ), Start Zookeeper, Kafka.
### Zookeeper, Kafka process is running.
### kafka3.novalocal ( 10.0.0.3 ), Start Zookeeper, Kafka.
### Zookeeper, Kafka process is running.
##### Cluster Installation Complete #####

Apache Kafkaインスタンス作成後の初期設定

ポート(port)変更

最初のインストール後、ポートはKafkaデフォルトポート9092、Zookeeperデフォルトポート2181です。セキュリティのためにポートを変更することを推奨します。

1) /home/centos/kafka/config/zookeeper.propertiesファイル修正

/home/centos/kafka/config/zookeeper.propertiesファイルを開いてclientPortに変更するZookeeper portを入力します。

shell> vi /home/centos/kafka/config/zookeeper.properties
clientPort=変更するzookeeper port
2) /home/centos/kafka/config/server.propertiesファイル修正

/home/centos/kafka/config/server.propertiesファイルを開いてlistenersに変更するKafka portを入力します。

インスタンスIPの確認方法

コンソール画面のPrivate IP
またはshell> hostname -i
shell> vi /home/centos/kafka/config/server.properties

# コメント解除
listeners=PLAINTEXT://インスタンスIP:変更するkafka port

# Zookeeperポート変更
zookeeper.connect=インスタンスIP:変更するzookeeper port
---> クラスタの場合、各インスタンスIPのZookeeper portを変更
3) Zookeeper、Kafka brokerの再起動
shell> sudo systemctl stop kafka.service
shell> sudo systemctl stop zookeeper.service
shell> sudo systemctl start zookeeper.service
shell> sudo systemctl start kafka.service
4) Zookeeper、Kafka port変更確認

変更されたポートが使用されていることを確認します。

shell> netstat -ntl | grep [Kafka port]
shell> netstat -ntl | grep [Zookeeper port]

Apache Kafkaトピックおよびデータ作成/使用

トピックの作成/照会

# インスタンスIP = Private IP / Kafka基本port = 9092
# トピック作成
shell> /home/centos/kafka/bin/kafka-topics.sh --create --bootstrap-server [インスタンスIP]:[Kafka PORT] --topic kafka
# トピックリスト照会
shell> /home/centos/kafka/bin/kafka-topics.sh --list --bootstrap-server [インスタンスIP]:[Kafka PORT]
# トピック詳細情報確認
shell> /home/centos/kafka/bin/kafka-topics.sh --describe --bootstrap-server [インスタンスIP]:[Kafka PORT] --topic kafka
# トピック削除
shell> /home/centos/kafka/bin/kafka-topics.sh --delete --bootstrap-server [インスタンスIP]:[Kafka PORT] --topic kafka

データ作成/使用

# producer起動
shell> /home/centos/kafka/bin/kafka-console-producer.sh --broker-list [インスタンスIP]:[Kafka PORT] --topic kafka
# consumer起動
shell> /home/centos/kafka/bin/kafka-console-consumer.sh --bootstrap-server [インスタンスIP]:[Kafka PORT] --from-beginning --topic kafka

Redis

Redis起動/停止

# Redisサービスの起動
shell> sudo systemctl start redis

# Redisサービスの停止
shell> sudo systemctl stop redis

# Redisサービスの再起動
shell> sudo systemctl restart redis

Redis接続

redis-cliコマンドを利用してRedisインスタンスに接続できます。

shell> redis-cli

Redisインスタンス作成後の初期設定

Redisインスタンスの基本設定ファイルは/home/centos/redis/redis.confです。変更が必要なパラメータの説明は次のとおりです。

bind

  • 基本値:127.0.0.1 -::1
  • 変更値:<private ip> 127.0.0.1 -::1

Redisが使用するipの値です。サーバー外部からRedisインスタンスへのアクセスを許可するには該当パラメータにprivate ipを追加する必要があります。 private ipはhostname -Iコマンドで確認できます。

port

  • 基本値:6379

ポートはRedisデフォルト値である6379です。セキュリティ上、ポートを変更することを推奨します。ポートを変更した後は、以下のコマンドでRedisに接続できます。

shell> redis-cli -p <新しいポート>

requirepass/masterauth

  • 基本値:nhncloud

基本パスワードはnhncloudです。セキュリティ上、パスワードを変更することを推奨します。複製接続を使用する場合、requirepassmasterauth値を同時に変更する必要があります。

自動HA構成スクリプト

NHN CloudのRedisインスタンスは自動的にHA環境を構成するスクリプトを提供します。スクリプトは必ずインストール直後の新規インスタンスでのみ使用することができ、redis.confで設定値を変更した場合には使用できません。

スクリプトを使用するには次の設定が必ず必要です。

キーペアコピー

インストールスクリプトを実行するインスタンスに他のインスタンス接続に必要なキーペア(PEMファイル)が必要です。キーペアは次のようにコピーできます。

local> scp -i <キーペア>.pem <キーペア>.pem centos@<floating ip>:/home/centos/

作成したインスタンスのキーペアは、すべて同じである必要があります。

セキュリティグループ設定

Redisインスタンス間の通信のためにセキュリティグループ(Network > Security Groups)設定が必要です。以下のルールでセキュリティグループを作成し、Redisインスタンスに適用してください。

方向 IPプロトコル ポート範囲 Ether 遠隔
受信 TCP 6379 IPv4 インスタンスIP(CIDR)
受信 TCP 16379 IPv4 インスタンスIP(CIDR)
受信 TCP 26379 IPv4 インスタンスIP(CIDR)

Sentinel自動構成

Sentinel構成のために3つのRedisインスタンスが必要です。マスターとして使用するインスタンスにキーペアをコピーし、以下のようにスクリプトを実行してください。

shell> sh .redis_make_sentinel.sh

その後、マスターとレプリカのprivate IPを順番に入力します。各インスタンスのprivate IPはhostname -Iコマンドで確認できます。

shell> sh .redis_make_sentinel.sh
Enter Master's IP: 192.168.0.33
Enter Replica-1's IP: 192.168.0.27
Enter Replica-2's IP: 192.168.0.97

コピーしたキーペアのファイル名を入力します。

shell> Enter Pemkey's name: <キーペア>.pem

Cluster自動構成

Cluster構成のために6つのRedisインスタンスが必要です。マスターとして使用するインスタンスにキーペアをコピーし、以下のようにスクリプトを実行してください。

shell> sh .redis_make_cluster.sh

その後、クラスタに使用するRedisインスタンスのprivate IPを順番に入力します。各インスタンスのprivate IPはhostname -Iコマンドで確認できます。

shell> sh .redis_make_cluster.sh
Enter cluster-1'IP:  192.168.0.79
Enter cluster-2'IP: 192.168.0.10
Enter cluster-3'IP: 192.168.0.33
Enter cluster-4'IP:  192.168.0.116
Enter cluster-5'IP:  192.168.0.91
Enter cluster-6'IP:  192.168.0.32

コピーしたキーペアのファイル名を入力します。

shell> Enter Pemkey's name: <キーペア>.pem

yesを入力し、クラスタ構成を完了します。

>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.0.91:6379 to 192.168.0.79:6379
Adding replica 192.168.0.32:6379 to 192.168.0.10:6379
Adding replica 192.168.0.116:6379 to 192.168.0.33:6379
M: 0a6ee5bf24141f0058c403d8cc42b349cdc09752 192.168.0.79:6379
   slots:[0-5460] (5461 slots) master
M: b5d078bd7b30ddef650d9a7fa9735e7648efc86f 192.168.0.10:6379
   slots:[5461-10922] (5462 slots) master
M: 0da9b78108b6581bdb90002cbdde3506e9173dd8 192.168.0.33:6379
   slots:[10923-16383] (5461 slots) master
S: 078b4ce014a52588e23577b3fc2dabf408723d68 192.168.0.116:6379
   replicates 0da9b78108b6581bdb90002cbdde3506e9173dd8
S: caaae4ebd3584c0481205e472d6bd0f9dc5c574e 192.168.0.91:6379
   replicates 0a6ee5bf24141f0058c403d8cc42b349cdc09752
S: ab2aa9e37cee48ef8e4237fd63e8301d81193818 192.168.0.32:6379
   replicates b5d078bd7b30ddef650d9a7fa9735e7648efc86f
Can I set the above configuration? (type 'yes' to accept):
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

JEUS, WebtoB

[参考] このガイドはJEUS 8 Fxi#1, WebtoB 5 Fix4バージョンを基準に作成されました。 他のバージョンを使用する場合はそのバージョンに合わせて変更してください。

各イメージスクリプトは、JDKのインストール後にDAS、MS、WebtoBをインストールします。 インストール後の設定や制御方法はTmaxSoftのガイド文書(JEUS, WebtoB)を参照してください。

イメージのインストール

JDKは~/apps/jdk8u292にインストールされ、そのディレクトリで~/apps/jdk8にリンクが作成されます。 JDKのインストール中に.bash_profilePATH~/apps/jdk8/binパスが追加されます。 すでに~/apps/jdk8ディレクトリがある場合はJDKがインストールされません。

JEUS DAS, MS

JEUSは~/apps/jeus8にインストールされます。 (スクリプトなどで内部的に決められたディレクトリにインストールする場合)

インストールする時、以下のプロパティに設定されます。

区分 デフォルト値
ドメイン名 jeus_domain
WebAdminポート 9736
Adminサーバー名 adminServer
AdminユーザーID administrator
Adminユーザーパスワード jeusadmin
ノードマネージャ java

WebtoB

WebtoBは~/apps/webtobにインストールされます。

JEUS、WebtoB起動確認

JEUS

JEUSを設定または制御するにはノードマネージャーを起動した後、WebAdminまたはjeusadminを通して制御する必要があります。

ノードマネージャの起動

シェルに接続してstartNodeManagerコマンドでノードマネージャを実行します。 ノードマネージャ同士で通信が必要なため、セキュリティグループに基本ポートである7730の許可ルールを追加する必要があります。

JEUS起動

DASはstartDomainAdminServerコマンドで実行します。

startDomainAdminServer -uadministrator -pjeusadmin
JEUS WebAdmin

次のようにWebAdminを実行します。

  1. DASがインストールされたインスタンスにFloating IPを設定します。
  2. 該当インスタンスのセキュリティグループに9736ポートの許可ルールを追加します。
  3. Webブラウザでhttp://{Floating IP}:9736/webadminに接続するとWebAdmin画面を見ることができます。

WebtoB

wscflコマンドを利用して設定ファイルをコンパイルします。

wscfl -i http.m

wsbootを利用してWebtoBを起動します。

wsboot

wsadminを利用して状態の確認と制御を行うことができます。

Apache Tomcat

デフォルトの場所

Tomcatのインストールパスは以下の通りです。

~/apps/apache-tomcat-{バージョン}/

Tomcatの起動/停止方法

Tomcatは初期インストール中にデフォルトでサービスとして登録され、インスタンス起動時に自動的に実行されます。 Tomcatを手動で起動または停止するには、以下のコマンドを使用できます。

#tomcatサービスの開始
shell> sudo systemctl start tomcat

#tomcatサービスの停止
shell> sudo systemctl stop tomcat

#tomcatサービスの再起動
shell> sudo systemctl restart tomcat

Tomcat基本ページ接続

Tomcatは最初のインストール時にデフォルトのポート8080で実行されます。次のコマンドを実行するとTomcat基本ページにアクセスできます。

shell> curl -i http://127.0.0.1:8080
HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
...

Tomcatインスタンス作成後の初期設定

1. ポート(port)変更

最初のインストール時にデフォルト設定で実行されます。セキュリティ上、ポートの変更を推奨します。

1) server.xmlファイルの修正

~/apps/apache-tomcat-{バージョン}/conf/server.xmlファイルを開き\<Connector> 部分に以下のように変更するポートアドレスを入力します。

shell> vi ~/apps/apache-tomcat-{バージョン}/conf/server.xml
...
<Connector port="{変更するポートアドレス}" protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443" />
...
2)サービス再起動

ポートの変更が適用されるようにTomcatサービスを再起動します。

shell> sudo systemctl restart tomcat

Node.js

デフォルトの場所

Node.jsのインストールパスは以下の通りです。

~/apps/node-{バージョン}/

Node実行方法

# app.jsサンプルコードの作成
shell> echo "console.log('Hello World')" > app.js

# node実行
shell> node app.js
Hello World

Deep Learning Framework

Deep Learning Frameworkイメージテンプレートの作成

Deep Learning Frameworkを使用するには、まずイメージテンプレートを作成する必要があります。

サービス選択画面でCompute > Image Builder > イメージテンプレートの作成に移動します。

イメージテンプレート名を入力し、OSはlinux - Ubuntu - Server 18.04 LTSを選択して最小ブロックストレージは70GB以上を指定します。

このように選択すると、下の画面にDeep Learning Frameworkが表示されます。

該当スクリプトを選択した後、 確認ボタンをクリックします。ポップアップが表示されたら作成ボタンをクリックします。

Deep Learning Framework Instance作成

イメージビルドが完了した後、実際にGPU Instanceを作成するためにGPU InstanceボタンをクリックするとCompute > GPU Instance > GPU Instanceの作成に移動します。

インスタンスの作成時、ビルドして作成したイメージを選択してインスタンスを作成します。

Deep Learning Framework Instanceでは次のバージョンのソフトウェアが提供されます。

ソフトウェア バージョン インストール方式
TensorFlow 2.4.1 pip, 参照
PyTorch 1.7.1 conda, 参照
Python 3.8.11 conda
OS Ubuntu 18.04 LTS n/a
NVIDIA Driver 450.102.04 apt
NVIDIA CUDA 11.0 apt
NVIDIA cuDNN 8.0.4 apt
NVIDIA NCCL 2.7.8 apt
NVIDIA TensorRT 7.1.3 apt
Intel oneAPI MKL 2021.4.0 apt

設定を完了した後、インスタンスを作成します。インスタンス作成の詳しい内容はInstance概要を参照してください。

インストールされた開発環境の確認

condaコマンドを使用してMinicondaにインストールされた開発環境を確認します。

$ conda info --envs
# conda environments:
#
                         /opt/intel/oneapi/intelpython/latest
                         /opt/intel/oneapi/intelpython/latest/envs/2021.4.0
base                  *  /root/miniconda3
pt_py38                  /root/miniconda3/envs/pt_py38
tf2_py38                 /root/miniconda3/envs/tf2_py38

[参考]

より詳しい使用方法はMiniconda文書を参照してください。

TensorFlowの使用方法

TensorFlow環境を有効にします。

(base) root@b64e6a035884:~# conda activate tf2_py38
(tf2_py38) root@b64e6a035884:~#

次のようにTensorFlowトレーニングをテストします。

$ cd ~/
$ git clone https://github.com/tensorflow/models.git
$ cd models
$ git checkout tags/v2.4.0
$ git status
HEAD detached at v2.4.0
nothing to commit, working tree clean
$ mkdir $HOME/models/model
$ mkdir $HOME/models/dataset
$ vim train.sh
#!/bin/bash
export PYTHONPATH=$HOME/models
export NCCL_DEBUG=INFO
MODEL_DIR=$HOME/models/model
DATA_DIR=$HOME/models/dataset
# 1個以上のGPUを使用する時に設定
NUM_GPUS=1 # 例) NUM_GPUS=2
python $HOME/models/official/vision/image_classification/mnist_main.py \
  --model_dir=$MODEL_DIR \
  --data_dir=$DATA_DIR \
  --train_epochs=2 \
  --distribution_strategy=mirrored \ # 1個以上のGPUを使用する時に設定
  --num_gpus=$NUM_GPUS \ # 1個以上のGPUを使用する時に設定
  --download
$ chmod +x train.sh
$ python ./train.sh

[参考]

より詳しい使用方法はTensorFlowチュートリアルを参考してください。

PyTorch使用方法

PyTorch環境を有効にします。

(tf2_py38) root@b64e6a035884:~# conda deactivate
(base) root@b64e6a035884:~# conda activate pt_py38
(pt_py38) root@b64e6a035884:~#

次のようにPyTorchトレーニングをテストします。

$ cd ~/
$ git clone https://github.com/pytorch/examples.git
$ cd examples/mnist
$ python manin.py --epochs 1

[参考]

より詳しい使用方法はPyTorchチュートリアルを参照してください。

Slurm

Slurmインストールコンポーネントは、Mungeパッケージのインストールと設定、そしてSlurmパッケージのインストールまで行います。実行方法の詳細についてはSlurm Installation Guideを参照してください。

[参考]

Slurmガイドにあるコマンドはすべてroot権限で実行する必要があります。

準備

1. hostsファイルの修正

/etc/hostsファイルを開き、クラスタ環境に構成するnodeのIPとエイリアスを入力します。

# vi /etc/hosts

2. hostnameファイルの修正

/etc/hostnameファイルを開き、現在nodeのエイリアスをhostsファイルと一致させます。

# vi /etc/hostname

クラスタの構成とSlurm設定

初期に適用された基本設定がないため、直接設定ファイルを作成する必要があります。 Slurm Configuration GuideSlurm Configuration Toolを参考にして作成した後、 /etc/slurm/slurm.confファイルに保存します。

ログファイルのパスは/var/log/slurm/パスの下に指定する必要があります。他のパスを指定したい場合は、 configurationファイルにパスを明記し、そのdirectoryの所有者をSlurmUser設定値と一致させる必要があります。

Slurm実行

すべてのクラスタを構成し、構成情報を設定すると実行できます。 Slurm Installation GuideSlurm Quick Start Guideを参照してください。

TOP