AWS上に構築したHinemosをHA構成にする
投稿日: / 更新日:
この記事は2年以上前に書かれたものです。情報が古い可能性があります。
今回はAWS上構築したHinemosマネージャサーバーにミッションクリティカル機能を導入してみたいと思います!
1.ミッションクリティカル機能(HA)とは??
Hinemosが動作する2台のサーバ機にミッションクリティカル機能を適用することで、障害耐性を高めたHinemosのHAクラスタを構築できます。 HAクラスタ環境では、片方のサーバ機で障害が発生しても、もう片方のサーバ機でHinemosの機能が継続されます。 このため、監視が停止してしまったり、ジョブが実行されなかったりする心配はありません。 また、HinemosのHAクラスタは、Hinemosが動作しているサーバの障害、ネットワークの障害、ストレージの障害、OSの障害、 Hinemosのプロセスのダウンなど、多様な障害が発生した場合でも運用管理業務を継続できます。 運用管理オペレータは、HinemosがHAクラスタであることを意識せず、通常のHinemosと同様に操作できます。
詳しくはこちら → https://atomitech.jp/document/missioncritical/
今回はAWS上でHinemos6.1のHA環境を構築したいと思います。
AWS上にHinemosを構築方法についてはこちら → http://atomitech.co.jp/study/entry-4031/
[準備するもの]
〇Hinemosマネージャ(ver.6.1.1)環境 ×2
〇HinemosWebクライアント(ver.6.1.1)
〇HinemosHA (ver.6.1.b) パケージ
2.AWS上にHinemosHAを構築してみる
①hinemos-haをインストールするにあたり、以下のパッケージをインストールしておきました。
● wget
● python
● python-devel
● awsclient
→ awsclientは以下の手順でインストールしました。
1 2 3 4 |
# curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" # python get-pip.py # pip -V # pip install awscli |
② aws configureを実施しておきます。
1 2 3 4 5 |
# aws configure AWS Access Key ID [None]:(AWSへの指定のアクセスキーIDをセット) AWS Secret Access Key [None]:(AWSへの指定のシークレットアクセスキーをセット) Default region name [None]:(指定のリージョンをセット) Default output format [None]:(指定の出力フォーマットをセット) |
→awsコマンド、aws configureコマンドにつきましては、AWSのマニュアルをご確認ください。
リージョンについては下記サイトを参考にしました。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
③rootパスワードを1号機・2号機共通のものを設定しておきます。
1 |
# passwd root |
④hinemosマネージャの受付アドレスとして、FIPを設定します。1号機・2号機、両マシンで実施してください。
hinemos_mangerを停止させ、hinemos_pgのみ起動させます。
1 |
# systemctl start hinemos_pg |
1 2 3 4 |
# /opt/hinemos/sbin/mng/hinemos_change_listen_address.sh 10.2.2.100 input a password of Hinemos RDBM Server (default 'hinemos') :hinemos changing listen addresses... successful in changing listen addresses. |
⑤同じ内容のHinemosマネージャサーバインスタンスをもう一つ用意します。
※用意するインスタンスは、同一リージョン内の異なる アベイラビリティゾーンに配置してください。
例えば、今回は『ap-northeast-1』のアベイラビリティゾーンに1号機を作成したので、2号機は『ap-northeast-2』に作成します。
この時、1号機にインストールされている、クラウド管理機能やミッションクリティカルオプションもインストールし、awsconfigureも完了させたものをご用意ください。
⑥クラスタリングを行います。
1号機・および2号機にて以下のシェルスクリプトを実行してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# /opt/hinemos/bin/hinemos_ha_configure_aws_vip_routetable.sh ----------------------------------------------------------------------------- Instance ID of This Instance : i-XXXX IP Address of This Instance : 172.XX.XX.XX Interface ID of This Instance : eni-XXXX Root Password of This Instance : passward IP Addresses of Cluster Members : 172.XX.XX.XX,172.YY.YY.YY External IP Addresses used by Health Check : 8.8.8.8 Virtual IP Address of Cluster : 10.1.1.100 Network Device Name to which Virtual IP Address is assigned : eth0 Route Table ID : rtb-XXX ----------------------------------------------------------------------------- |
※ネットワークインターフェスIDは サービス >EC2 >ネットワークインターフェース eth0 に遷移して確認できます。
※ルートテーブルIDは サービス > VPC > サブネット より、関連付けられているルートテーブルIDを確認できます。
⑦上記設定が完了したら、正常にフェイルオーバーおよびフェイルバックが可能か確認します。
1号機→2号機の順でHAを起動します。
1 |
# /opt/hinemos/bin/hinemos_ha_start.sh |
HAの状態確認を行います。1号機および2号機が起動していることを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# /opt/hinemos/bin/hinemos_ha_status.sh [Instances] 172.XX.XX.XXX : MASTER (*) 172.YY.YY.YY : STANDBY [Plugins] DiskMonitor : STARTED LoggingReloadPlugin : STARTED InternalNetworkMonitor : STARTED CustomMonitor : STARTED ExternalNetworkMonitor : STARTED InstanceManager : STARTED [Resources] VirtualIPAddress : MASTER HinemosDB : MASTER ClusterEventNotifier : MASTER SyslogForwarder : MASTER SnmpTrapForwarder : MASTER HinemosJavaVM : MASTER HinemosStatusManager : MASTER |
両系の起動を確認出来たら1号機を停止し、2号機がSTANDBY→MASTERへ状態変化することを確認してください。
無事確認できればHA構成の完了です!