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

0から始める、AWS環境におけるHAクラスター構築手順解説~Windows編~

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

はじめに

本ブログ(クラブロ)では、これまで多くのAmazon Web Services(以降、AWS)環境におけるHAクラスターの構築方法をご紹介してきました。

これらのHAクラスターを構築するためには、AWSの各種リソース、インスタンス、OS等を適切に設定する必要がありますが、紹介してきた記事では詳細な手順を省略している場合もありました。そのため、今回は入門用記事として詳細な手順を含めた解説をします。初めてCLUSTERPROによるAWS環境でのHAクラスター構築を行う方でもわかりやすいよう丁寧に解説しておりますので、ぜひ参考にしてください。
本記事は、AWS上でHAクラスターを構築する際に必要なAWSリソースの作成方法について紹介する「AWS設定編」と、EC2インスタンス上でのOSとCLUSTERPROの設定方法についてOS別に紹介する「Windows編」、「Linux編」に分かれており、今回は「Windows編」になります。AWSリソースの作成方法については「popupAWS設定編」の記事を、Linux環境の設定方法については「popupLinux編」を参照してください。

この記事の内容

1. システム構成

popupAWS設定編で作成したEC2インスタンスを用いて、2ノードのミラーディスク型で、AWS仮想IPリソースを用いたVIP制御によるHAクラスターを構築します。

EC2インスタンスの構成を以下に示します。本記事ではAWS設定編の記事とあわせて参照できるよう、IPアドレスやIDは構築した際の値をそのまま掲載しています。今後の設定においては各自の環境の値と置き換えて設定してください。

項目 AZ-A上インスタンス AZ-C上インスタンス
ホスト名 clp-server01 clp-server02
OS Windows Server 2022
プライベートIPv4 10.0.110.168 10.0.120.75
VPC ID vpc-0dee5adc4ed51af6a
インスタンスID i-06975d24962f50b75 i-052fa78fcbfc435c2
ENI ID eni-09e7761d49ce8aead eni-04c0bcaaf4bd09efc

CLUSTERPROの構成は以下の通りです。

・ CLUSTERPRO
  - フェールオーバーグループ(failover)
    ■ ミラーディスクリソース
      ・ データパーティション:E:\ (4GiB)
      ・ クラスタパーティション:D:\ (1GiB)
    ■ AWS仮想IPリソース
      ・IPアドレス:10.1.0.20
  - NP解決リソース
    ■ タイプ:HTTP
      ・ ターゲット:aws.amazon.com

フェールオーバーグループには「ミラーディスクリソース」と「AWS仮想IPリソース」を追加しています。

ミラーディスクリソースはミラーディスクを制御するためのリソースです。ミラーディスク構成では、現用系と待機系のサーバーの間でデータをミラーリングし、フェールオーバー後も同一のデータにアクセスできるようにします。ミラーディスクの制御はパーティション単位で行われます。ミラーリングされる業務データが配置される「データパーティション」とCLUSTERPROがミラーリング制御のために利用する「クラスタパーティション」の2つを用意する必要があります。
AWS仮想IP(VIP)リソースは、AWS上のインスタンスにVIPアドレス経由でアクセスできるようにするためのリソースです。VIPアドレスを利用することで、クライアントはフェールオーバーが発生しても接続先を意識する必要がありません。VIPアドレスの切り替えは、CLUSTERPROがルートテーブルのルートを書き換えることで実現されます。
ネットワークパーティション(以降、NP)とは、クラスタサーバー間の全ての通信経路に障害が発生しネットワーク的に分断された状態を指します。この場合、複数のサーバーにおいてフェイルオーバーグループが起動する可能性があります。このような事態を避けるために、NP発生時に通信経路上のあるターゲットに対して通信確認を行い自身がネットワーク的に孤立したかどうかを確かめることができます。このような処理を行うリソースをNP解決リソースといいます。今回ターゲットにはAWSのWebサーバーを設定します。

2. Windows OSの設定

HAクラスター用インスタンス上のWindows OSで必要な設定を行います。clp-server01、clp-server02にリモートデスクトップ接続し、それぞれのサーバーで以下の設定を行います。

2.1 ホスト名変更

ホスト名を初期設定から変更します。設定から[システム]→[詳細情報]→[このPCの名前を変更]を選択します。

接続しているサーバーに合わせたホスト名を入力し、[次へ]を押します。

[今すぐ再起動する]を選択し、任意のシャットダウンする理由を入力して[続行]をクリックし再起動します。

2.2 ミラーディスクの準備

インスタンスの作成時にアタッチしたEBSボリュームにミラー用パーティションを作成します。

CLUSTERPROでミラーディスクを利用するには、クラスタパーティションとデータパーティションの作成が必要です。
クラスタパーティションは1024MiB以上のサイズとし、フォーマットはせずにRAWパーティションで作成します。データパーティションは任意のサイズでNTFSによるフォーマットが必要です。
[スタート]を右クリックし、[ディスクの管理]を起動します。

2-2_1

[ディスクの初期化]メニューが表示されます。パーティションスタイルはGPTを選択します。

ディスクの一覧が表示されます。システムドライブと別に、未割り当てのディスクがあることを確認します。
まずはクラスタパーティションを作成します。ディスクを右クリックし、[新しいシンプルボリューム]を選択します。

新しいシンプルボリュームウィザードを開きます。[次へ]をクリックします。

ボリュームサイズを指定します。クラスタパーティションは1024MB以上確保します。

ドライブ文字を割り当てます。今回はD:を選択します。

クラスタパーティションは[このボリュームをフォーマットしない]を選択します。

設定内容を確認し、[完了]を選択します。

同様にデータパーティションを作成します。ディスクの未割り当ての領域を右クリックし、[新しいシンプルボリューム]を選択します。

ボリュームサイズを選択します。残りサイズすべてを指定します。

ドライブ文字はE:を指定します。

データパーティションはNTFSでフォーマットします。

設定を確認して、[完了]を選択します。

ミラーパーティションの設定が完了しました。

2.3 AWS CLIのインストールと設定

CLUSTERPROからAWSサービスを制御するために、AWS CLIをインストールします。以下のリンクからAWS CLIのインストーラーをダウンロードします。

インストーラーを起動します。画面に従ってライセンス規約に同意し、今回はその他の設定は既定値のままインストールします。

AWS CLIが正常にインストールできていることを確認します。管理者権限でPowerShellまたはコマンドプロンプトを立ち上げ、以下のコマンドを実行します。バージョン情報が表示されることを確認します。

aws --version

AWS CLIのインストール手順の詳細については、以下のリンクを参照してください。

インストールが完了したら、以下のコマンドを実行してAWS CLIの設定を行います。

aws configure

AWS Access Key ID [None]: (Enterのみ)
AWS Secret Access Key [None]: (Enterのみ)
Default region name [None]: ap-northeast-1
Default output format [None]: text

今回はIAMロールを割り当てているので、アクセスキーに関する設定は不要です。そのため、AWS Access Key ID/AWS Secret Access Keyは値を未設定(Enter入力のみ)とし、Default region name/Default output formatに設定を割り当てます。今回は東京リージョン上にVPCを作成したのでDefault region nameはap-northeast-1を指定し、Default output formatはtext形式を指定しました。

3. CLUSTERPROの設定

CLUSTERPROのインストール、ライセンス登録、インストール後の設定を行います。clp-server01、clp-server02にリモートデスクトップ接続します。

CLUSTERPROのインストーラーとライセンスファイルを各インスタンス上に用意します。クライアント用インスタンス、HAクラスター用インスタンス共にリモートデスクトッププロトコルで接続しているので、接続元でコピーしたファイルを接続先でペーストすることでファイル転送が簡単にできます。今回はCLUSTERPRO X 5.2のpopup試用版を利用しました。ミラーディスクを利用する場合は本体ライセンスとは別にReplicatorライセンスが必要です。

3.1 CLUSTERPROのインストール

[menu.exe]を選択し、インストーラーを起動します。

セットアップメニューから「CLUSTERPRO(R) for Windows」「CLUSTERPRO(R) X 5.2 for Windows」の順に選択します。

CLUSTERPRO ServerのInstallShield Wizardが起動します。

インストール先のフォルダを選択することができます。今回は既定値とします。

[インストール]を選択してインストールを開始します。

使用する通信ポート番号を選択することができます。今回は既定値とします。

ディスク保護のためフィルタリング設定を行うことができます。今回はミラーディスク方式のためフィルタリング設定は行いません。共有ディスク方式の場合は共有ディスクが接続されたAdapterに「フィルタリング」設定を行ってください。

3.2 ライセンス登録

ライセンスマネージャーが起動します。[登録]を選択します。

今回は[ライセンスファイルから登録]を選択します。

ライセンスファイルを選択し、登録します。本体ライセンス(BASE)とミラーディスク用のライセンス(REPL)を登録します。

ライセンス登録が完了したら[終了]を選択し、インストールを終了します。その後、インスタンスを再起動します。

3.3 インストール後の設定

再起動したらCLUSTERPROが利用するファイアウォールのルールを追加します。

CLUSTERPROはモジュール間の通信にいくつかのポート番号を使用します。それらを手動で設定することも可能ですが、clpfwctrlコマンドを用いることで簡単にルールを設定することができます。管理者権限でPowerShellまたはコマンドプロンプトを立ち上げ、以下のコマンドを実行します。

clpfwctrl --add
Command succeeded.

【参考】
popupCLUSTERPRO X システム構築ガイド

  • CLUSTERPRO X 5.2 > Windows > インストール&設定ガイド
      → 第 2 章 システム構成を決定する
        → 2.6. ハードウェア構成後の設定
          → 2.6.5. ファイアウォールの設定を確認する (必須)
  • CLUSTERPRO X 5.2 > Windows > リファレンスガイド
      → 第 9 章 CLUSTERPRO コマンドリファレンス
        → 9.30. ファイアウォールの規則を追加する (clpfwctrl コマンド)

4. クラスター構成情報の作成

Cluster WebUIに接続し、クラスター構成情報の作成を行います。

クライアント用インスタンスでWebブラウザを起動します。WebブラウザのアドレスバーにHAクラスターのマスタサーバーに設定するサーバーのIPアドレスとポート番号(既定値:29003)を入力します。

http://<プライベートIPアドレス>:<ポート番号>/

clp-server01をマスタサーバーとする場合、以下のように入力します。

http://10.0.110.168:29003/

Cluster WebUIのダッシュボードが開きます。上部タブから設定モードを開きます。

クラスタ生成ウィザードを開きます。

クラスタ名と言語は既定値のまま[次へ]を押します。

HAクラスターを構成するサーバーを追加します。[追加]をクリックします。

HAクラスターを構成する相手サーバー(clp-server02)のIPアドレスを追加し、[OK]を選択します。

サーバーが追加されたら[次へ]を選択します。

インタコネクトの設定をします。[追加]をクリックして通信経路を追加し、各インスタンスのIPアドレスを設定します。このインタコネクトはミラーディスクコネクト(データミラーリング通信に利用する経路)としても利用するので、[MDC]列をmdc1に割り当てます。これはミラーディスクリソースの設定時に使用します。

ネットワークパーティション解決(NP解決)リソースを設定します。[追加]を選択し、HTTP方式のNP解決を選択します。ターゲットに「aws.amazon.com」、clp-server01/clp-server02で「使用する」を選択し、[次へ]を選択します。

フェールオーバーグループを追加します。[追加]をクリックします。

名前は既定値のまま[次へ]を選択します。

起動可能サーバを選択します。今回は既定値とします。

グループ属性を設定します。今回はすべて既定値とします。

グループリソースを追加します。[追加]をクリックします。

■ ミラーディスクリソース

まずはミラーディスクリソースを追加します。[タイプ]から[ミラーディスクリソース]を選択し、[次へ]をクリックします。

依存関係設定のページ、復旧動作設定のページは既定値のまま[次へ]をクリックし、詳細設定のページを表示します。ミラーディスクコネクトは[選択]からミラーディスクコネクトの選択画面を開き、「mdc1」が追加されていることを確認します。次に起動可能サーバーからclp-server01を選択して、[追加]をクリックします。

クラスタパーティションとデータパーティションを指定します。今回はクラスタパーティションを1024MB、データパーティションを4078MBとして確保しているため、それぞれリストから指定します。

clp-server02に関しても同様に設定して、[OK]をクリックします。データパーティションのドライブ文字に「E:」、クラスタパーティションのドライブ文字に「D:」が入力されていることを確認し、[完了]をクリックして選択を完了します。

ミラーディスクリソースが追加されました。[追加]を選択して新しくリソースを追加します。

■ AWS仮想IPリソース

次にAWS仮想IPリソースを設定します。[タイプ]から[AWS仮想IPリソース]を選択します。

依存関係設定のページ、復旧動作設定のページは既定値のまま[次へ]をクリックし、詳細設定のページを表示します。共通タブでは利用するVIPをIPアドレス欄に入力します。VPC IDおよびENI IDはドロップダウンリストから選択できますので、EC2インスタンスが属するVPC IDとclp-server01のENI IDを設定します。

各サーバーの個別設定を行います。まずはclp-server01タブを開き、「個別に設定する」にチェックを入れます。VPC IDとclp-server01のENI IDを設定します。

同様にclp-server02タブを開き、「個別に設定する」にチェックを入れます。VPC IDとclp-server02のENI IDを設定し、[完了]をクリックします。

グループリソースの追加が完了したら[完了]を選択します。

フェールオーバーグループの設定が完了したら[次へ]を選択します。

追加したグループリソースに応じてモニタリソースが追加されています。[完了]を選択して設定を完了します。

自動起動や復旧・回復動作の設定ポップアップが表示されます。[はい]をクリックします。

構成したクラスターリソースの一覧が表示されます。クラスターの設定を開きます。

タイムアウトタブからサービス起動時間の設定を行います。サービス起動遅延時間をハートビートタイムアウト時間 + ハートビートインターバル時間より長くなるように設定します。今回はハートビートタイムアウトが30秒、ハートビートインターバルが3秒のため、35秒を設定します。

利用するリソースに応じて設定する時間は異なります。サービス起動遅延時間の設定に関する詳しい解説は以下の記事をご参照ください。

クラスター構成情報のチェックを行います。

構成情報の設定が正しくできているかを確認することができます。エラーが出た場合はその箇所の設定を確認してください。

構成情報に問題がなければクラスタ構成情報チェック結果のウィンドウを閉じ、[設定の反映]を選択します。

ポップアップが出たら[はい]を選択します。設定が各サーバーに反映されます。
設定の反映完了後、ミラー通信用のポートを開放するためにclpfwctrlコマンドを再び実行します。clp-server01、clp-server02にログインし、以下のコマンドを実行します。

clpfwctrl --add
Command succeeded.

5. HAクラスターの動作確認

Cluster WebUIに戻り、モードを操作モードに切り替えます。

ダッシュボードが開くので、ステータスタブに切り替えます。[クラスタ開始]のボタンを選択して、クラスターを開始します。

ポップアップが出たら[開始]を選択します。クラスターの起動に成功した場合、以下のような画面になります。

VIPアドレスでアクセスできることを確認するため、Cluster WebUIにVIPで接続します。

http://10.1.0.20:29003/

HAクラスターにVIP経由でアクセスできることが確認できました。
グループをフェールオーバーし、待機系でもフェールオーバーグループが起動することを確認します。clp-server02の[グループ移動]ボタンを選択し、フェールオーバーさせます。

clp-server02でフェールオーバーグループが正常に起動したことを確認します。

これにより、両系でフェールオーバーグループが起動できることが確認できました。

さいごに

今回は「0から始める」と題して、AWS上でWindowsインスタンスを用いてHAクラスターを構築するためのOS設定、CLUSTERPROのインストールからCluster WebUI上でのHAクラスター構築手順についてキャプチャ画像も交えながら具体的な手順について解説しました。前記事のAWS設定編とあわせて、HAクラスター構築までの全体像が把握できる解説記事として参考になれば幸いです。

また本記事の構成を応用することで、さまざまなアプリケーションと組み合わせたHAクラスターシステムをAWS上で構築することが可能です。クラブロではこれまでに多様なHAクラスター構築の例をご紹介していますので、ぜひそれらもあわせてご参照ください。

利用製品

本記事の構成を構築する際に必要となる製品は以下です。

■ OS共通
   – CLUSTERPRO X Media 5.2
   – CLUSTERPRO X Startup Kit 5.2
■ Windows
   – CLUSTERPRO X 5.2 for Windows VM (1ノードライセンス)
   – CLUSTERPRO X Replicator 5.2 for Windows (1ノードライセンス)

参考

CLUSTERPRO導入支援サービス(クラウドHAコンサル)ではオンプレミスやクラウド向けのクラスター構築支援サービスを行っております。クラスターの構築支援に関するご要望がありましたら、popup関連サービスの導入支援サービスの窓口までお問い合わせください。

お問い合わせ

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