こんにちは。8月からジョインしている技術2課の紅林です。現在、東京オフィスで日々AWSの学習中です。
さて、以前、こちらの記事でCLUSTERPROでEC2インスタンスを2台立ててHAクラスタを構築する手順を紹介しました。
CLUSTERPROではAWS上で構築されるクラスタとして、「Elastic IP(以下、EIP)によるHAクラスタ」と「Virtula IP制御によるHAクラスタ」の2種類のHAクラスタが想定されており、それらを構築するためのグループリソース(フェイルオーバーグループで共有されるリソース)があらかじめ定義されています。
今回は、EIPをグループリソースにした、HAクラスタを構築する手順を紹介します。これにより、クラスタがフェイルオーバーした際にも、クライアントは同一のEIPでサーバにアクセスできます。
イメージ
構築する環境のイメージを以下に示します。
環境要件
・こちらの記事同様のHAクラスタが組まれていること(CLUSTERPROのVersionは3.3を想定)
・EC2インスタンスに以下のソフトウェアがインストールされていること
ソフトウェア | Version | 備考 |
AWS CLI | 1.6.0~ | |
Python | 2.7.5~ | 3.*系は不可 |
手順
手順としては以下のとおりです。
- Elastic Network Interface(以下、ENI)、EIPの追加
- グループリソースの追加
- 動作確認
それでは始めていきます。
1.ENI、EIPの追加
各インスタンスにENIを追加します。このENIにフェイルオーバー時のEIPが関連付けられることになります。
デフォルトのENIを用いて動作させることも可能ですが、今回はデフォルトのENIはリモートからのメンテナンス用に用いることにして、新たにENIを追加します。
また、新たにEIPの割り当てを行い、EIPを確保します。このEIPをクラスタのグループリソースとして用います(ENIへの関連付けはひとまず不要です)。
上記で追加したENI、EIPのIDをメモしておきます。
2.グループリソースの追加
以下の手順により、CLUSTERPROのWebマネージャ上からEIPのグループリソースを追加します。
Webマネージャを「操作モード」にした上で、フェイルオーバーグループを右クリックし、「リソースの追加」を押下します。
グループリソース定義のタイプから「AWS Elastic IPリソース」を選択し、「次へ」を押下します。
また、次に出てくる「依存関係」や「復旧動作」の画面に関しても、そのまま「次へ」を押下します。
詳細設定画面で、「EIP ALLOCATION ID」や「ENI ID」を記述する画面になるので、先ほどメモしておいたENIとEIDのIDを記載します。
サーバ共通の設定画面では、任意のサーバのENI IDを記載します。
以上の手順を行うと、リソース一覧に「AWS Elastic IPリソース」をタイプに持ったリソースが追加されます。
最後に設定の反映を行います。図の赤枠のボタンを押下し、設定を反映してください。正常に反映されると図のように、反映された旨のメッセージが表示されます。
3.動作確認
以上で設定は完了です。Webマネージャを「操作モード」にした上でクラスタを起動すると、フェイルオーバーグループの中にElastic IPのリソースが動作していることが確認できます。
試しに手動でフェイルオーバーを実施し、EIPが切り替わるか確認してみましょう。
「操作モード」のままフェイルオーバーグループを右クリックし、「移動」を押下します。
先ほど、スタンバイ側だったサーバがアクティブになり、EIPが付け変わっているのが確認できると思います。
まとめ
今回の記事ではEIPをグループリソースにしたHAクラスタを構築してみました。
今回紹介した機能により、CLUSTERPRO上の操作だけでEIPの付け替え等実施できます。
次回(あるはず!?)は、もう少し検証を重ねて、細かい機能やチューニングについても言及できればと思います。