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

AWS VPCエンドポイントを利用したDNS名制御によるHAクラスターの構築を試してみました (Windows/Linux)

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

 

はじめに

今回はAmazon Web Services(以降、AWS)で、Amazon Route 53(以降、Route 53)用のAWS VPCエンドポイント(以降、VPCエンドポイント)を使用して、AWS DNSリソースを利用したDNS名制御によるHAクラスターの構築を試してみました。

従来は、Route 53を使用したDNS名制御によるHAクラスターを構築するためには、HAクラスターを構成するEC2インスタンスからインターネットへ接続できる必要がありました。これは、AWS DNSリソースがRoute 53のサービスエンドポイント「route53.amazonaws.com」を使用するために、通信先としてインターネット経由のアクセスが必要だったためです。

2025年11月より、Route 53のサービスエンドポイントはAWS PrivateLink(以降、PrivateLink)に対応しました。これにより、VPC上にRoute 53用のVPCエンドポイントを作成することで、EC2インスタンスはインターネットを経由せずにRoute 53へアクセスできるようになりました。
その結果、AWS DNSリソースを利用するHAクラスターでもEC2インスタンスからインターネットへの接続が不要となり、よりセキュアな環境を構築できるようになりました。

【参考】
Amazon Route 53 DNS サービスが AWS PrivateLink をサポート - AWS

この記事の内容

1. VPCエンドポイントとは

VPCエンドポイントは、VPC内に作成することで、インターネットゲートウェイやNATゲートウェイを経由せずに、VPCとVPC外のAWSサービスをPrivateLinkでプライベート接続できるサービスです。

PrivateLinkおよびVPCエンドポイントの詳細は以下を参照ください。

【参考】
AWS PrivateLink の概念 - Amazon Virtual Private Cloud

PrivateLinkに対応しているAWSのサービスの詳細は以下を参照ください。

【参考】
AWS のサービス と統合する AWS PrivateLink - Amazon Virtual Private Cloud

なお、Route 53はレコード書き換え等を実施するコントロールプレーンがバージニア北部リージョンにのみ存在するため、Route 53用のVPCエンドポイントを作成する場合は、クロスリージョンエンドポイントを有効にし、バージニア北部リージョンを選択する必要があります。

2. HAクラスター構成

今回は、東京リージョンにDNS名制御によるHAクラスターを構築します。
Route 53用のVPCエンドポイントは可用性を考慮し、マルチAZの構成で作成します。

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

3.1 HAクラスター構築の事前準備

3.1.1 VPCの設定

事前にVPCを作成します。VPCの構成は以下の通りです。なお、HAクラスターを構築するVPCの「DNS解決」と「DNSホスト名」の設定は、どちらも有効にしてください。設定が無効の場合、Route 53のサービスエンドポイント「route53.amazonaws.com」がVPCエンドポイントのプライベートIPアドレスに名前解決されません。

  • VPC (VPC ID:vpc-1234abcd)
  • CIDR:10.0.0.0/16
  • DNS解決:有効
  • DNSホスト名:有効
  • Subnets
  • Subnet-A1 (サブネットID:sub-1111aaaa):10.0.10.0/24
  • Subnet-A2 (サブネットID:sub-2222aaaa):10.0.110.0/24
  • Subnet-C1 (サブネットID:sub-1111cccc):10.0.20.0/24
  • Subnet-C2 (サブネットID:sub-2222cccc):10.0.120.0/24
  • Route Tables
  • Main (ルートテーブルID:rtb-00000001)
  • 10.0.0.0/16   → local
  • Route-A (ルートテーブルID:rtb-0000000a)
  • 10.0.0.0/16   → local
  • Route-C (ルートテーブルID:rtb-0000000c)
  • 10.0.0.0/16   → local

VPC

3.1.2 VPCエンドポイント用のセキュリティグループの作成

VPCエンドポイントに関連付けるセキュリティグループを作成します。
Route 53のAPIの実行時には、HAクラスターを構成する各EC2インスタンスで、Route 53のサービスエンドポイント「route53.amazonaws.com」に対してHTTPS通信をします。
そのため、VPCエンドポイントを作成する場合は、VPCエンドポイントに関連付けるセキュリティグループのインバウンドルールに、HAクラスターを構成するEC2インスタンスからのHTTPS通信を許可する必要があります。

今回作成したセキュリティグループの設定は以下のとおりです。

  • セキュリティグループの詳細
  • グループ名:SG-HTTPS
  • インバウンドのルール
  • タイプ    :HTTPS
  • プロトコル:TCP
  • ポート範囲:443
  • ソース    :HAクラスターを構成するEC2インスタンスのIPアドレス

3.1.3 VPCエンドポイントの作成

Route 53用のVPCエンドポイントを作成します。

  • VPCエンドポイント
  • タイプ:AWSのサービス
  • クロスリージョンエンドポイントを有効にする:有効
  • 米国 (バージニア北部) (us-east-1)
  • com.amazonaws.route53
  • VPC:vpc-1234abcd
  • プライベート DNS 名を有効化:有効
  • サブネット
  • ap-northeast-1a
  • サブネット  :subnet-2222aaaa
  • IPv4アドレス:10.0.110.200
  • ap-northeast-1c
  • サブネット  :subnet-2222cccc
  • IPv4アドレス:10.0.120.200
  • セキュリティグループ:SG-HTTPS

「プライベート DNS 名を有効化」が有効の場合、VPCのデフォルトDNSであるRoute 53 VPC Resolverに、Route 53のサービスエンドポイント「route53.amazonaws.com」と対応するVPCエンドポイントのプライベートIPアドレスが、Aレコードとして登録されます。
無効の場合、Route 53のサービスエンドポイント「route53.amazonaws.com」はパブリックIPアドレスに名前解決されます。

なお、独自のDNSサーバーを構築している場合は、Route 53のサービスエンドポイント「route53.amazonaws.com」がVPCエンドポイントのプライベートIPアドレスに名前解決できるように手動でレコードを設定する必要があります。

3.1.4 Route 53プライベートホストゾーンの作成

HAクラスターで使用する仮想ホスト名を登録する、Route 53プライベートホストゾーンを作成します。

  • Route 53プライベートホストゾーン(ホストゾーンID:Z12345abcde)
  • ドメイン名:example.com
  • タイプ:プライベートホストゾーン
  • 関連付けるVPC:vpc-1234abcd

  • 今回の検証では、Route 53プライベートホストゾーンを使用していますが、Route 53パブリックホストゾーンでも同様に構築可能です。

3.1.5 EC2インスタンス用IAMロール・IAMポリシーの作成

HAクラスターを構成するEC2インスタンス用のIAMロールおよびIAMポリシーを作成します。
AWS DNSリソースおよびAWS DNSモニタリソースを使用するために、EC2インスタンスに与える権限は、VPCエンドポイントを使用する場合と使用しない場合で差異はありません。
必要な権限の詳細はスタートアップガイドを参照ください。

  • CLUSTERPRO X 5.3 > Windows > スタートアップガイド
    → 第6章注意制限事項
         → 6.2 CLUSTERPRO インストール前
             → 6.2.17 AWS 環境における IAM の設定について
  • CLUSTERPRO X 5.3 > Linux > スタートアップガイド
    → 第6章注意制限事項
         → 6.3 OS インストール後、CLUSTERPROインストール前
             → 6.3.20 AWS 環境におけるIAMの設定について

3.1.6 EC2インスタンスの作成

HAクラスターを構成するEC2インスタンスを作成します。

■Windows

  • server1
  • VPC:vpc-1234abcd
  • サブネット:subnet-2222aaaa
  • IPアドレス:10.0.110.100
  • -IAMロール:<前節で作成したもの>
  • server2
  • VPC:vpc-1234abcd
  • サブネット:subnet-2222cccc
  • IPアドレス:10.0.120.100
  • -IAMロール:<前節で作成したもの>

■Linux

  • server1
  • VPC:vpc-1234abcd
  • サブネット:subnet-2222aaaa
  • IPアドレス:10.0.110.101
  • -IAMロール:<前節で作成したもの>
  • server2
  • VPC:vpc-1234abcd
  • サブネット:subnet-2222cccc
  • IPアドレス:10.0.120.101
  • -IAMロール:<前節で作成したもの>

3.2 DNS名制御によるHAクラスターの構築

今回の検証ではCLUSTERPRO X 5.3(Windows:内部Ver. 13.31、Linux:内部Ver. 5.3.1-1)を利用しています。
「DNS名制御によるHAクラスター」を作成します。CLUSTERPROの構成は以下の通りです。CLUSTERPROのフェールオーバーグループには「AWS DNSリソース」と「ミラーディスクリソース」の2つを登録します。

■Windows

  • CLUSTERPRO
  • フェールオーバーグループ (failover)
  • AWS DNSリソース
  • 共通
  • ホストゾーンID:Z12345abcde
  • リソースレコードセット名:vhost-win.example.com.
  • IPアドレス:10.0.110.100
  • TTL:300秒
  • server1
  • 個別に設定する:有効
  • IPアドレス:10.0.110.100
  • server2
  • 個別に設定する:有効
  • IPアドレス:10.0.120.100
  • ミラーディスクリソース
  • データパーティション:M:\
  • クラスタパーティション:R:\

■Linux

  • CLUSTERPRO
  • フェールオーバーグループ (failover)
  • AWS DNSリソース
  • 共通
  • ホストゾーンID:Z12345abcde
  • リソースレコードセット名:vhost-lin.example.com.
  • IPアドレス:10.0.110.101
  • TTL:300秒
  • server1
  • 個別に設定する:有効
  • IPアドレス:10.0.110.101
  • server2
  • 個別に設定する:有効
  • IPアドレス:10.0.120.101
  • ミラーディスクリソース
  • データパーティション:/dev/lvg/lvm-data
  • クラスタパーティション:/dev/lvg/lvm-cluster

AWS DNSリソースを使用したHAクラスター構築手順の詳細は、AWS構築ガイドを参照ください。

  • Windows > クラウド > Amazon Web Services CLUSTERPRO X 5.3 向け HA クラスタ 構築ガイド
    → 第7章 DNS名制御によるHAクラスタの設定
  • Linux > クラウド > Amazon Web Services CLUSTERPRO X 5.3 向け HA クラスタ 構築ガイド
    → 第7章 DNS名制御によるHAクラスタの設定

AWS DNSリソースに設定するTTLは、フェールオーバー等によってレコードを書き換えた後、仮想ホスト名の名前解決が正しく実施できるようになるまでの時間に影響します。詳細は以下を参照ください。

4. 動作確認

HAクラスターを構成する各EC2インスタンスで、Route 53のエンドポイントの名前解決ができること、および、フェールオーバーグループが起動できることを確認します。
併せて、nslookup 等を使用し、フェールオーバー前後で仮想ホスト名での接続先が切り替わることを確認します。

  • 1. HAクラスターを構成する各EC2インスタンスから、nslookup等を使用して「route53.amazonaws.com」がRoute 53用のVPCエンドポイントのプライベートIPアドレスに名前解決されることを確認します。
■Windows

動作確認1

■Linux

動作確認2

  • 2. server1でフェールオーバーグループを起動し、正常に起動することを確認します。
■Windows

■Linux

  • 3. nslookup等で仮想ホスト名がserver1に名前解決できることを確認します。
■Windows

■Linux

  • 4. フェールオーバーグループをserver1からserver2に手動で移動し、正常に起動することを確認します。
  • 5. nslookup等で仮想ホスト名がserver2に名前解決できることを確認します。

まとめ

今回はRoute 53用のVPCエンドポイントを使用して、AWS DNSリソースを利用したDNS名制御によるHAクラスターの構築を試してみました。
Route 53用のVPCエンドポイントを使用することで、AWS DNSリソースによるRoute 53のレコード書き換えをインターネットを経由せずに実行することができます。よりセキュアに構築したい場合は、本手順を参考にHAクラスターを構築してください。

利用製品

本記事の環境を構築する際に利用した製品です。

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

参考

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

お問い合わせ

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