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

Oracle Cloud DNSリソースを使用したマルチリージョンHAクラスターを構築してみました(Windows/Linux)

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

はじめに

Oracle Cloud Infrastructure(以降、OCI)環境上で、Oracle Cloud DNSリソースを使用したマルチリージョンHAクラスターを構築してみました。Oracle Cloud DNSリソースは、CLUSTERPRO X 5.2で追加された機能の1つで、OCI DNSサービスのDNSゾーンのAレコードを書き換えて接続先を切り替えます。
本記事では、マルチリージョン環境でのOCI DNSサービス、および、Oracle Cloud DNSリソースの基本的な設定方法をご紹介します。

なお、CLUSTERPRO X 5.2では、様々なクラウド対応強化やユーザビリティ強化、IaC関連機能強化を行っておりますので、気になった方は以下を参照ください。

【参考】
popupCLUSTERPRO X - 特長/機能
  • → 機能強化ポイント
     → CLUSTERPRO X 5.2

この記事の内容

1. Oracle Cloud DNSリソースとは

Oracle Cloud DNSリソースは、OCI DNSサービスで管理しているゾーンのAレコードを書き換えることで、仮想ホスト名(DNS名)による接続先の切り替え機能を提供するリソースです。
本リソースは、CLUSTERPRO X 5.2 for Windows/Linuxそれぞれで利用可能です。

OCI DNSサービスには、パブリックDNSゾーンとプライベートDNSゾーンがあります。
パブリックDNSゾーンはインターネットを経由した名前解決、プライベートDNSゾーンは単一のVirtual Cloud Network(以降、VCN)内からの名前解決に利用することができます。

Oracle Cloud DNSリソースでは、パブリックDNSゾーンとプライベートDNSゾーンの両方に対応しており、OCI CLIを利用して、それぞれのゾーンの任意の仮想ホスト名が登録されているAレコードを書き換えることで、接続先の切り替えを実現します。

また、Oracle Cloud DNSリソースに対応する形でOracle Cloud DNS監視リソースも追加されており、定期的にOCI CLIやクエリを実行してAレコードが正常に書き換えられているかを監視することができます。

2. Oracle Cloud DNSリソースのメリット

CLUSTERPRO X 5.2で追加されたOracle Cloud DNSリソースを使用することで、シングルリージョンに加え、マルチリージョンでも仮想ホスト名を使用してHAクラスターの接続先を簡単に切り替えることが可能になりました。

本ブログでは過去に、OCI環境上でダイナミックDNSリソースを使用したマルチリージョンでのHAクラスターの構築方法も紹介していますが、DNSサーバーの構築および、DNSサーバーの可用性を考慮する必要がありました。

Oracle Cloud DNSリソースでは、マネージドサービスであるOCI DNSサービスを利用するため、より簡単にマルチリージョンHAクラスターが構築が可能になりました。

OCI環境専用の接続先切り替えリソースには、接続先に仮想IPアドレスを使用するOracle Cloud仮想IPリソースもありますが、利用にはOracle Cloudロード・バランサが必要となります。2024年10月現在、Oracle Cloudロード・バランサは、複数のVCNにまたがって作成はできず、バックエンド・サーバーにはVCN内のインスタンスを指定する必要があります。そのため、マルチリージョンでのHAクラスターの構築には、Oracle Cloud DNSリソースの利用をご検討ください。

3. HAクラスター構成

今回はOCI環境上の東京リージョンと大阪リージョンを使用して、「マルチリージョンでのDNS名制御によるミラーディスク型HAクラスター」を構築します。

構成は以下の通りです。

先述の通り、Oracle Cloud DNSリソースではOCI CLIを使用してOCI DNSサービスのAレコードの書き換えを行います。そのため、OCI CLIを実行するHAクラスターを構成するインスタンスから、OCI DNSサービスのAPIエンドポイントと通信できるようにする必要があります。今回はNAT Gatewayを追加して、HAクラスターを構成するインスタンスがインターネット経由でOCI DNSサービスのAPIエンドポイントと通信できるようにしています。また、よりセキュアに構築したい場合は、OCI DNSサービス用のサービス・ゲートウェイを利用することで、OCI内に閉じたHAクラスターを構築することも可能です。

3.1 OCI環境の設定

3.1.1 VCNの設定

VCNおよびサブネット、動的ルーティング・ゲートウェイの設定は以下の通りです。

■東京リージョン

  • Virtual Cloud Network
  • 名前:vcn-tokyo
  • CIDR:10.1.0.0/16
  • サブネット
  • Subent A (Public):10.1.10.0/24
  • Subent B (Private):10.1.110.0/24
  • Internet Gateway
  • NAT Gateway
  • 動的ルーティング・ゲートウェイ
  • drg-tokyo:drg-osakaとリモート・ピアリングで接続
  • ルート表
  • 宛先:10.2.0.0/16
  • ターゲット:drg-tokyo

■大阪リージョン

  • Virtual Cloud Network
  • 名前:vcn-osaka
  • CIDR:10.2.0.0/16
  • サブネット
  • Subent C (Private):10.2.120.0/24
  • NAT Gateway
  • 動的ルーティング・ゲートウェイ
  • drg-osaka:drg-tokyoとリモート・ピアリングで接続
  • ルート表
  • 宛先:10.1.0.0/16
  • ターゲット:drg-osaka

動的ルーティング・ゲートウェイおよび、リモート・ピアリングの設定方法は以下を参照ください。

【参考】

3.1.2 OCI DNSサービスの設定

OCI DNSサービスの設定は以下の通りです。

■東京リージョン

  • OCI DNSサービス (Tokyo)
  • プライベート・ゾーン
  • ゾーン名:exapmle.com
  • DNSプライベート・ビュー:vcn-tokyo
     (VCN作成時に自動で作成されるもの)
  • プライベート・リゾルバ
  • リスニングエンドポイント
  • 名前:listening-endpoint-tokyo
  • IPアドレス:10.1.110.201
  • 転送エンドポイント
  • 名前:transfer-endpoint-tokyo
  • IPアドレス:10.1.110.202
  • ルール
  • ルール条件:ドメイン
  • ドメイン:vcn-osaka.oraclevcn.com
  • ソース・エンドポイント:transfer-endpoint-tokyo
  • 宛先IPアドレス:10.2.120.201
     (listening-endpoint-osakaのIPアドレス)

■大阪リージョン

  • OCI DNSサービス (Osaka)
  • プライベート・ゾーン
  • ゾーン名:exapmle.com
  • DNSプライベート・ビュー:vcn-osaka
     (VCN作成時に自動で作成されるもの)
  • プライベート・リゾルバ
  • リスニングエンドポイント
  • 名前:listening-endpoint-osaka
  • IPアドレス:10.2.120.201
  • 転送エンドポイント
  • 名前:transfer-endpoint-osaka
  • IPアドレス:110.2.120.202
  • ルール
  • ルール条件:ドメイン
  • ドメイン:vcn-tokyo.oraclevcn.com
  • ソース・エンドポイント:transfer-endpoint-osaka
  • 宛先IPアドレス:10.1.110.201
     (listening-endpoint-tokyoのIPアドレス)

3.1.3 HAクラスターを構成するインスタンスの作成

インスタンスの構成は以下の通りです。

■東京リージョン

  • インスタンス
  • server01 (現用系サーバー):10.1.110.100

■大阪リージョン

  • インスタンス
  • server02 (待機系サーバー):10.2.120.100

OCI DNSサービスのレコードの書き換えを実施するために、以下を参考にHAクラスターを構成するインスタンスからOCI CLIを実行できるようにします。

また、OCI CLIを実行するために必要なポリシーは以下になります。詳細はスタートアップガイドを参照ください。

Allow <subject> to use dns in <location>

【参考】
  • CLUSTERPRO X 5.2 > Windows > スタートアップガイド
    → 第 6 章 注意制限事項
     → 6.2 CLUSTERPRO インストール前
      → 6.2.24 OCI 環境におけるポリシーの設定について
  • CLUSTERPRO X 5.2 > Linux > スタートアップガイド
    → 第 6 章 注意制限事項
     → 6.3 OS インストール後、CLUSTERPRO インストール前
      → 6.3.29 OCI 環境におけるポリシーの設定について

3.2 CLUSTERPROの設定

今回はCLUSTERPRO X 5.2 (内部バージョン Windows:13.21、Linux:5.2.1-1)を使用した以下の構成で動作確認を行いました。

  • CLUSTERPRO X
  • フェールオーバーグループ (failover)
  • Oracle Cloud DNSリソース (ocdns)
  • 共通
  • リージョン:ap-tokyo-1
  • ドメイン (FQDN):vhost.example.com
  • ゾーンOCID:ocid1.dns-zone.oc1.ap-tokyo-1.aaaaaaaabbbbbbbbbbbbbbbb
  • IPアドレス:10.1.110.100
  • server01
  • リージョン:ap-tokyo-1
  • ゾーンOCID:ocid1.dns-zone.oc1.ap-tokyo-1.aaaaaaaabbbbbbbbbbbbbbbb
  • IPアドレス:10.1.110.100
  • server02
  • リージョン:ap-osaka-1
  • ゾーンOCID:ocid1.dns-zone.oc1.ap-osaka-1.aaaaaaaacccccccccccccccc
  • IPアドレス:10.2.120.100
  • ミラーディスクリソース (Windows版)
  • データパーティション:F:\
  • クラスタパーティション:E:\
  • ミラーディスクリソース (Linux版)
  • データパーティション:/dev/oracleoci/oraclevdb2
  • クラスタパーティション:/dev/oracleoci/oraclevdb1

OCIでは、インスタンスにアタッチされたブロック・ボリュームに対して、一貫性のあるデバイス・パスがサポートされています。ブロック・ボリュームをインスタンスにアタッチするときには、インスタンスの再起動後も一貫性を保てるように、デバイス・パスを選択します。

3.2.1 Oracle Cloud DNSリソースの設定例

Oracle Cloud DNSリソースの設定例は以下の通りです。
グループのリソース定義の[情報]画面で、[Oracle Cloud DNSリソース]を選択し[次へ]をクリックします。

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

次に[詳細]画面で設定をしますが、[詳細]画面の入力項目の一つに[TTL]があり、TTLの設定値によりOCI DNSサービスのキャッシュの生存期間が決定します。短時間でフェールオーバーが行われる環境では、TTLキャッシュの残存により、フェールオーバー先でリソースが起動する際に正常に名前解決が出来ない可能性があります。そのため、TTLの値はフェールオーバー時間に合わせて短くする等の検討を行ってください。今回は既定値である300秒を設定します。
[詳細]画面では次の通り設定します。

■共通

■server01

■server02

上記設定後、[完了]をクリックし、Oracle Cloud DNSリソースを作成します。

Oracle Cloud DNSリソース設定の詳細は、以下のリファレンスガイドを参照ください。

【参考】
  • CLUSTERPRO X 5.2 > Windows > リファレンスガイド
    → 第 3 章 グループリソースの詳細
     → 3.27 Oracle Cloud DNS リソースを理解する
  • CLUSTERPRO X 5.2 > Linux > リファレンスガイド
    → 第 3 章 グループリソースの詳細
     → 3.23 Oracle Cloud DNS リソースを理解する

4. 動作確認

以下の手順でHAクラスターの動作確認をします。

  • 1.Client上でWebブラウザを起動し、以下のURLにアクセスしてCluster WebUIを表示します。
    http://<server01のIPアドレス>:29003
  • 2.server01でフェールオーバーグループ(failover)が起動していること、[サーバ]、[グループ]、[モニタ]が正常に起動していることをCluster WebUIで確認します。
  • 3.Client上で以下のコマンドを実行し、設定した仮想ホスト名がserver01のIPアドレスに名前解決されることを確認します。
    (例) nslookup vhost.example.com
  • 4.Cluster WebUIから、フェールオーバーグループ(failover)をserver01からserver02に手動で移動します。
  • 5.server02でフェールオーバーグループ(failover)が起動していること、[サーバ]、[グループ]、[モニタ]が正常に起動していることをCluster WebUIで確認します。
  • 6.Client上で以下のコマンドを実行し、設定した仮想ホスト名がserver02のIPアドレスに名前解決されることを確認します。
    (例) nslookup vhost.example.com

上記の動作確認により、フェールオーバー前後で仮想ホスト名での接続先が切り替わることを確認できました。

まとめ

今回は、OCI環境上で、Oracle Cloud DNSリソースを使用したマルチリージョンHAクラスターの構築方法をご紹介しました。Oracle Cloud DNSリソースを利用することで、DNSサーバーを用意する必要が無くなり、簡単にマルチリージョンHAクラスターを構築できるようになりました。

本記事の構成をご検討の際は、CLUSTERPROのpopup試用版を用いて検証した後、ご提案・構築ください。

お問い合わせ

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