サイト内の現在位置を表示しています。

CLUSTERPRO X 5.0のご紹介~AWSセカンダリIPリソース~

CLUSTERPRO オフィシャルブログ ~クラブロ~

はじめに

CLUSTERPRO Xの最新バージョンであるCLUSTERPRO X 5.0を2022年4月8日にリリースしました。CLUSTERPRO X 5.0では各種クラウドへの対応のさらなる強化や、より簡単にクラスターシステムを構築できる機能を追加しております。そのほかにも多くの機能強化が行われていますので是非popupこちらを参照ください。

今回は、CLUSTERPRO X 5.0の新機能の「AWSセカンダリIPリソース」の紹介と、Amazon Web Services(以降、AWS)上におけるHAクラスターの構築手順をご紹介します。

この記事の内容

1. AWSセカンダリIPリソースとは

AWSセカンダリIPリソースは、AWS環境のクラスターサーバーのセカンダリIPアドレスを付け替えることでIPアドレスによる接続先の切り替え機能を提供するリソースです。

本リソースにより、AWSでSingle Availability Zone(以下、AZ)構成のHAクラスターを従来よりシンプルに構築することが可能となります。 本リソースは、CLUSTERPRO X 5.0 for Windows/Linuxそれぞれで利用可能です。

1.1 機能概要

Amazon EC2インスタンス(以下、インスタンス)には、ひとつの仮想ネットワークインターフェース(以下、ENI)に対して複数のプライベートIPアドレス(プライマリIPアドレスとセカンダリIPアドレス)を付与することが可能です。
AWSセカンダリIPリソースは、AWS CLIを使用してセカンダリIPアドレスをクラスターサーバー間で付け替えることで、接続先の切り替えを実現します。

また、セカンダリIPアドレスの付与状態を監視するAWSセカンダリIP監視リソースも追加されており、Cluster WebUIから併せて設定することが可能となっています。

  • ※同じサブネット上でセカンダリIPアドレスを付け替えるため、クラスターサーバーを同じVirtual Private Cloud(以下、VPC)、同じAZ、同じサブネットに配置する必要があります。

1.2 利用シーン

AWS Transit Gatewayを利用せずに、VPC外からIPアドレスでアクセス可能なHAクラスターを構築する場合に、AWSセカンダリIPリソースはおすすめです。
popup以前の記事で紹介したように、AWS Transit GatewayはAWS仮想IPリソースによるHAクラスターにAWS Direct Connect経由でVPC外からアクセスする場合に必要となります。しかし、“共有型”のAWS Direct Connectなど、提供される環境によってはAWS Transit Gatewayを直接使うことが出来ない場合があります

AWSセカンダリIPリソースは、クラスターサーバーが属するサブネットのIPアドレスをクラスターに接続するための仮想IPアドレスとして使用するため、仮想IPアドレスの設定にルートテーブルやAWS Transit Gatewayとの連携を必要としません。
そのため、“共有型"のAWS Direct Connectを使わざるを得ない等の理由でAWS Transit Gatewayを利用できない環境においても、IPアドレスの切り替えによるHAクラスター環境を構築することができます。

また、AWSセカンダリIPリソースはSingle-AZ構成が前提となるため、popup以前の記事で紹介した、同じくSingle-AZが前提となる共有ディスク構成とも組み合わせることが可能です。

  • Single-AZ構成のクラスターはAZ単位での障害に対応できないため、Multi-AZ構成のクラスターと比較して可用性が低下します。
  •  

2. HAクラスター構成

本記事では、東京リージョンに「セカンダリIPアドレスを接続先切り替えに利用したミラーディスク型のHAクラスター」を構築します。

構成は以下の通りです。

構成図

HAクラスターを構築するインスタンス(server01、server02)は、同じサブネット(同じAZ)に配置します。

接続先切り替えには、AWSセカンダリIPリソースを利用して、セカンダリIPアドレスをクラスターサーバー間で付け替えることでIPアドレスによる接続先切り替えを実現します。

また、先述の通りAWSセカンダリIPリソースはAWS CLIを利用してセカンダリIPアドレスを制御するため、リージョンエンドポイントとの通信を行う必要があります。そのため今回の構成にはインターネットゲートウェイとNATインスタンスを追加していますが、VPCエンドポイントを利用することでAWS内に閉じたHAクラスターを構築することも可能です。

3. HAクラスター構築手順

3.1 AWS環境の設定

以降の手順を実施して、HAクラスター構築に必要なリソースをAWS上に作成します。

3.1.1 VPCおよびサブネットの作成

最初にVPCとサブネットを作成します。今回作成したVPCとサブネットの構成は下記の通りです。

  • VPCネットワーク(Name:VPC-1):10.0.0.0/16
  • Subnets
  • Subnet-A1(Public):10.0.10.0/24
  • Subnet-A2(Private):10.0.110.0/24
インターネット接続のため、インターネットゲートウェイを作成し、セキュリティグループを設定します。
セキュリティグループは、システムのポリシーに応じて適切に設定してください。

VPCとサブネット図

3.1.2 HAクラスターサーバー用インスタンスの作成

HAクラスターサーバー用のインスタンスをプライベートサブネット上に作成します。
今回作成したインスタンスは次の通りです。
※本記事内のENI IDは架空の値です。

  • server01
  • IPアドレス:10.0.110.110
  • ENI ID:eni-xxxxxxxxxxxxxxxxx
  • server02
  • IPアドレス:10.0.110.120
  • ENI ID: eni-yyyyyyyyyyyyyyyyy
この時、AWSセカンダリIPリソースの動作に必要な設定を行います。

AWSセカンダリIPリソースの実行に必要なIAMポリシーの適用

作成したインスタンスに対して、下記のアクションに対するアクセス許可を記述したIAMポリシーを指定してください。これらはAWSセカンダリIPリソースの実行に必要となります。

アクション 説明
ec2:DescribeNetworkInterfaces ec2:DescribeSubnets ENI、サブネットの情報を取得する時に必要です。
ec2:AssignPrivateIpAddresses セカンダリ IP アドレスの割り当てをする時に必要です。
ec2:UnassignPrivateIpAddresses セカンダリ IP アドレスの割り当て解除をする時に必要です。
プライマリIPアドレスの静的設定(Windowsのみ)

AWSセカンダリIPリソースでは、CLUSTERPROからコマンドを実行することで、クラスターサーバーにセカンダリIPアドレスを割り当てます。そのため、ユーザーがクラスターサーバーにセカンダリIPアドレスを割り当てる必要はありません。

ただし、Windowsの場合、事前にクラスターサーバーでプライマリIPアドレスの静的な割り当てを実施しておく必要があります。

詳細は下記AWS公式ドキュメントのステップ1を参照してください。


クラスターサーバーのOSがLinux
の場合は、プライマリIPアドレスの静的設定は不要です。

3.2 CLUSTERPROによるHAクラスターの構築

クラスターサーバーにCLUSTERPRO X 5.0をインストールし、HAクラスターをAWS環境に構築します。
今回はCLUSTERPRO X 5.0(内部バージョン Windows:13.00、Linux:5.0.0-1)に以下のリソースを追加して動作確認を行いました。CLUSTERPROの構成は以下の通りです。

  • CLUSTERPRO
  • フェールオーバーグループ(failover)
  • AWSセカンダリIPリソース
  • IPアドレス:10.0.110.200
  •  
  • ミラーディスクリソース(Windows版)
  • データパーティション:F:\
  • クラスタパーティション:E:\
  •  
  • ミラーディスクリソース(Linux版)
  • データパーティション:/dev/nvme1n1p2
  • クラスタパーティション:/dev/nvme1n1p1

以下、AWSセカンダリIPリソースを作成した際の設定例です。

グループのリソース定義の[情報]画面で、以下のように設定し[次へ]をクリックします。

[情報]画面

[依存関係]および[復旧動作]画面は、既定値のまま変更せず[次へ]をクリックします。

[詳細]画面では次の通り設定します。

[共通]

[共通]画面

[server01]

[server01]画面

[server02]

[server02]画面

上記設定後、[完了]をクリックし、AWSセカンダリIPリソースを作成します。
AWSセカンダリIPリソース設定の詳細は、以下のシステム構築ガイドを参照ください。

【参考】
popupCLUSTERPRO X システム構築ガイド
  • CLUSTERPRO X 5.0 > Windows > リファレンスガイド > 3.20 AWSセカンダリIPリソースを理解する
  • CLUSTERPRO X 5.0 > Linux > リファレンスガイド > 3.17 AWSセカンダリIPリソースを理解する

4. 動作確認

※以下、掲載している画像はWindowsでの例になります。

server01でフェールオーバーグループを起動します。

Client上でWebブラウザを起動し、以下のURLにアクセスしてCluster WebUIを表示します。
http://<server01のIPアドレス>:29003

Cluster WebUIのステータス画面から、server01側でフェールオーバーグループが起動していること、[サーバ]、[グループ]、[モニタ]が正常に起動していることを確認します。

Cluster WebUIの画面

また、server01のOS上でセカンダリIPアドレスが付与されているか確認します。
Windowsの場合、コマンドプロンプトよりipconfigコマンドを実行して、セカンダリIPアドレスが付与されていることを確認します。

server01のコマンドプロンプト画面

最後に、AWSマネジメントコンソールにてserver01のステータスを確認します。AWSセカンダリIPリソースが正常に動作していれば、セカンダリIPアドレスが表示されます。

AWSマネジメントコンソール上でのserver01のステータス画面

上記ステータスをすべて確認したら、ClientからセカンダリIPアドレス(10.0.110.200)にアクセスし、server01に接続できることを確認します。

フェールオーバーグループを手動で移動させ、セカンダリIPアドレスが付け変わることを確認します。

Cluster WebUIから、フェールオーバーグループをserver01からserver02に、手動で移動します。

フェールオーバーグループがserver02側に移動していること、[サーバ]、[グループ]、[モニタ]が正常に起動していることをCluster WebUIで確認します。

フェールオーバーグループがserver02側に移動した後のCluster WebUI画面

フェールオーバーの完了後、server02のOS上でセカンダリIPアドレスが付与されているか確認します。
コマンドプロンプトよりipconfigコマンドを実行して、セカンダリIPアドレスが付与されていることを確認します。

server02のコマンドプロンプト画面

次に、AWSマネジメントコンソールを開いて、server02のステータスを表示します。IPアドレス欄にセカンダリIPアドレスが表示されます。

AWSマネジメントコンソール上でのserver02のステータス画面

最後に、ClientからセカンダリIPアドレス(10.0.110.200)に再度アクセスし、server02に接続できることを確認します。

上記の動作確認により、フェールオーバーの前後で、セカンダリIPアドレスへアクセスできることを確認できました。

まとめ

今回はCLUSTERPRO X 5.0の新機能であるAWSセカンダリIPリソースを利用したHAクラスターを構築してみました。本記事の構成をご検討の際は、CLUSTERPROのpopup試用版を用いて検証した後、ご提案・構築ください。


また、記事冒頭で紹介しました通り、CLUSTERPRO X 5.0にはAWSセカンダリIPリソース以外にもさまざまな新機能が実装されています。新規クラスターの導入や既存クラスターのアップグレードを予定されている方は、この機会にぜひCLUSTERPRO X 5.0の導入をご検討ください。CLUSTERPRO X 5.0 新機能の詳細につきましては下記リンク先に掲載しておりますので、ご参照ください。

【参考】
  • 機能強化ポイント > CLUSTERPRO X 5.0
  • ご紹介資料/カタログ > CLUSTERPRO X 5.0 > 製品紹介資料 > CLUSTERPRO X 5.0 新機能

お問い合わせ

本記事に関するお問い合わせは、popupお問い合わせ窓口までお問い合わせください。