AWSでNATインスタンスをHA Clusterにしてみた
仕事でホットスタンバイHA Clusterを作らなければならなくなったのでほとんど下記の記事を参考に作業してみました。ネットの情報に感謝です。
AWS - Corosync と Pacemaker で作る HA 環境 - Qiita
記事にもある通り、、、
- Amazon Linux(現行3.14.23-22.44.amzn1.x86_64)のリポジトリには...
- heartbeatがあるけど入れて起動してみたらエラーだったので除外
- 新しいpacemakerはリポジトリにないのでLinux-HAから落とそうにも結局perlの依存関係conflictで断念
- corosyncだけ何故かある
な状況のため、
- 別の試験用のインスタンスあたりでpacemakerについてSRPMからRPMをつくり
- 依存関係のlm_sensors関連をダウンロードアンドrpmでインストールし
- pacemaker関連の依存関係ファイル(corosync本体など)をyumでインストールし
- さっき作ったpacemakerのRPMをインストール
すれば完了です。
で、設定アンドスクリプトなのですが、これまた以下の記事を参考にしました。
suz-lab - blog: "High Availability NAT"の作成(CentOS6)
参考にしたスクリプトで
AZ_NAME=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone) REGION_NAME=$(echo $AZ_NAME | cut -c 1-$((${#AZ_NAME} - 1)))
しているところで、"ap-northeast-1a"期待のところが"ap-northeast-1a ”と、最後にスペースが入っていたのでtrimしました。
(まあ、スペース単純削除でもよかったんだけどなんとなく。)
AZ_NAME=$(echo ${AZ_NAME}|sed 's/^ +//'|sed 's/ +$//')
あとは、corosyncの初期設定後に変更しようとしてハマりました。
corosyncは起動中でresourceを停止しなきゃいけないので
crm resource stop [...]
してから
crm configure load replace [configure file]
とする必要がありました。configure fileはcrm configure saveからとったファイルでやるとよいです。