この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、涼しくなってきたので少し動きがよくなってきた城内です。
前回に引き続き、今回もCLUSTERPRO Dを触っていきたいと思います。
今回はAWSを絡めて、AWS上のLinuxサーバで、CLUSTERPRO Dのインストールから簡単なセットアップまでを行っていきたいと思います。
はじめに
まずは、いままでの記事の紹介です。
また、前回も書きましたが、インストーラは以下のサイトからダウンロードできます。
マニュアルもダウンロードページから取得できますので、一緒にダウンロードし、参照しながら作業を進めましょう。
インストール
では、さっそく製品のインストールから始めていきます。
EC2作成
EC2インスタンスを作成する際のポイントは以下になります。
- OSは「Red Hat Enterprise Linux 7.2」を選択しています
- インスタンスタイプは、システム要件的に「t2.small」以上にしています
- Advanced WebConsoleへアクセスするために、セキュリティグループで自端末からの20000ポートを開放しています
インスタンスの作成が終わったら、SSHでログインします。
SELinuxの無効化
まずは、SELinuxを無効化します。
# getenforce
Enforcing
# setenforce 0
# getenforce
Permissive
#
# cp -p /etc/selinux/config /etc/selinux/config.org
# vi /etc/selinux/config
...
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
...
CLUSTERPROのインストール
次に、CLUSTERPROのインストーラをEC2にアップロードし、ZIPを解凍します。
インストールは、setup.shスクリプトを実行するだけです。
# ll
total 111084
-rw-rw-r--. 1 ec2-user ec2-user 113749686 Sep 7 05:22 d10l_x64.zip
# yum install -y unzip
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Resolving Dependencies
--> Running transaction check
---> Package unzip.x86_64 0:6.0-15.el7 will be installed
--> Finished Dependency Resolution
...
# unzip d10l_x64.zip
Archive: d10l_x64.zip
creating: d10l_x64/
inflating: d10l_x64/readme.pdf
creating: d10l_x64/rpm/
inflating: d10l_x64/rpm/clznode-1.0.5-1.20340.el6.x86_64.rpm
inflating: d10l_x64/rpm/clznode-1.0.5-1.20340.el7.x86_64.rpm
inflating: d10l_x64/setup.sh
# ll
total 111088
drwxr-xr-x. 3 root root 48 Apr 5 19:43 d10l_x64
-rw-rw-r--. 1 ec2-user ec2-user 113749686 Sep 7 05:22 d10l_x64.zip
# cd d10l_x64
# ll
total 236
-rw-r--r--. 1 root root 233046 Jan 15 2016 readme.pdf
drwxr-xr-x. 2 root root 92 Apr 5 19:41 rpm
-rw-r--r--. 1 root root 4829 Apr 5 09:05 setup.sh
# chmod u+x setup.sh
# ./setup.sh
<< start clznode installation >>
[ check dependencies ]
-> SELinux mode: WARNING(Permissive)
[ install packages ]
-> clznode: OK
[ installation result ]
=> clznode installation is complete!
これでインストールは完了です。
サービスの起動
最後に、CLUSTERPROのサービスを起動してみましょう。
# systemctl start clznode.service
# systemctl status clznode.service
● clznode.service - CLUSTERPRO D 1.0 for Linux
Loaded: loaded (/usr/lib/systemd/system/clznode.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2016-09-07 05:43:05 EDT; 11s ago
Main PID: 16437 (clznode)
...
ここまで問題なく実施できたら、クラスタを組むために同じものをもう1台作成してください。
セットアップ
簡単なセットアップとして、クラスタの構築からAWS特有の「AWSドメインネームリソース」の設定までを行いたいと思います。
クラスタの構築
CLUSTERPROの操作を行うために、Advanced WebConsoleにアクセスします。
Top画面から「クラスターを構築する」を選択し、画面に従って必要項目を入力していきます。
クラスタ名を入力します。
先に作成したEC2インスタンスを追加します。
ライセンスを登録します。
ハートビート用のIPアドレスを入力します。
設定情報の確認画面で、「完了」ボタンをクリックします。
設定に問題がなければ、設定反映のメッセージが表示され、クラスタが作成されます。
AWSドメインネームリソースの設定
AWSドメインネームリソースは、Top画面の「リソースグループを作成する」から設定していきます。
「リソースを追加」から「AWSドメインネームリソース」をクリックします。
特に設定項目はなく、リソースグループ名を入力して完了です。
あとは、仮想ホスト名とそれに紐づくIPアドレスですが、これらはクラスタ内の各サーバ上にJSONファイルとして情報を保存しておきます。
(リソースグループが起動した際に、そのJSONファイルを読み込んで、Route 53にレコード登録するような挙動のようです)
cl-create-aws-route53-record-sets.shスクリプトを実行し、cluawsdn.jsonファイルを作成します。
# /opt/clznode/utility/cl-create-aws-route53-record-sets.sh clserver.clp-sample.local 172.31.xx.xx
# cat /opt/clznode/etc/cluawsdn.json
{"Comment": "Modifying A record", "Changes": [{"ResourceRecordSet": {"Name": "clserver.clp-sample.local", "TTL": 30, "Type": "A", "ResourceRecords": [{"Value": "172.31.xx.xx"}]}, "Action": "UPSERT"}]}
また、AWS CLIやRoute 53の環境情報も設定しておく必要があります。
(CLI実行のために、APIキーを発行し、aws configureにてキー情報を登録しておいてください)
cl-setup-aws-environment.shスクリプトを実行し、各種環境情報を設定します。
# /opt/clznode/utility/cl-setup-aws-environment.sh
aws_config_file [None]: /root/.aws/config
aws_credential_file [None]: /root/.aws/credentials
route53_hosted_zone_id [None]: ZXXXXXXXXXXXXX
# cat /opt/clznode/etc/cluaws.conf
[cluaws]
aws_config_file = /root/.aws/config
aws_credential_file = /root/.aws/credentials
route53_hosted_zone_id = ZXXXXXXXXXXXXX
詳細は『Amazon Web Services向けHAクラスター構築ガイド』の第3章に記載されていますので、そちらを参考にしてください。
以上で仮想ホスト名を持ったクラスタサーバの完成です。
さいごに
CLUSTERPROのセットアップは、GUIベースで本当に簡単です。
AWSドメインネームリソースについては、AWS特有の機能のため、少し仕組みの理解が必要でしたが、分かってしまえばそれほど複雑ではないと思います。
次は、クラスタ上で何かのサービスを稼働させてみたいと思います。
ではまたー。