ビジネスアプリケーションが複数のリージョンに分散しており、異なるリージョンの PolarDB クラスターに接続する必要がある場合、複数のクラスターエンドポイントの管理は複雑で、エラーが発生しやすくなります。グローバルデータベースネットワーク (GDN) のグローバルドメイン名機能は、複数のリージョンにまたがる単一のエンドポイントを提供します。アプリケーションは、デプロイされている場所に関係なく、このドメイン名を使用して最寄りのローカルクラスターにアクセスできます。プライマリ/セカンダリ スイッチオーバー後、アプリケーションは自動的に新しいプライマリクラスターに接続するため、アプリケーション透過型のディザスタリカバリが可能になり、マルチリージョン展開のアーキテクチャが簡素化されます。
仕組み
グローバルドメイン名機能は、Private Hosted Zone サービスを基盤として構築されており、Virtual Private Cloud (VPC) 内でインテリジェントな DNS 名前解決を提供します。
-
メカニズム:グローバルドメイン名を有効にすると、システムは自動的に
[gdnid].gdn.rds.aliyuncs.comという形式のドメイン名を作成し、GDN 内のすべてのクラスターの VPC に関連付けます。 -
プライマリ/セカンダリ スイッチオーバー:
-
通常のプライマリ/セカンダリ スイッチオーバー:中国 (北京) リージョンのプライマリクラスターがセカンダリクラスターになり、中国 (上海) リージョンのセカンダリクラスターがプライマリクラスターに昇格します。中国 (北京) リージョンのアプリケーションがグローバルドメイン名経由で接続する場合、最寄りアクセスのために引き続きローカルクラスターのエンドポイントにルーティングされます。北京のクラスターはセカンダリクラスターになったため、読み取りリクエストはローカルで処理されますが、書き込みリクエストは自動的に上海の新しいプライマリクラスターに転送されます。
-
強制的なプライマリ/セカンダリ スイッチオーバー:グローバルドメイン名の構成は同期的に更新され、新しいプライマリクラスターに引き続きアクセスできるようになります。たとえば、元のプライマリクラスターが GDN から削除され、新しいプライマリクラスターが中国 (上海) リージョンにある場合、中国 (北京) リージョンのアプリケーションがグローバルドメイン名経由で接続すると、VPC 間アクセスを通じて自動的に上海クラスターのエンドポイントにルーティングされます。この場合、すべての読み取りおよび書き込みリクエストは、上海の新しいプライマリクラスターに送信されます。
-
注意事項
-
グローバルドメイン名を有効にした後でクラスターの Virtual Private Cloud (VPC) と vSwitch を変更した場合、新しい VPC と GDN 内の他のクラスターの VPC との間にネットワーク接続を再確立する必要があります。
-
グローバルドメイン名は、リージョンレベルでのみトラフィックディストリビューションを提供します。同一リージョン内に複数のクラスターが存在する場合、リクエストはいずれかのクラスターにランダムにルーティングされます。
課金
グローバルドメイン名機能を有効にして使用すると、以下の料金が発生します。
-
プライベート DNS 名前解決料金:グローバルドメイン名は Private Hosted Zone を使用します。詳細な課金ルールについては、「Private Hosted Zone の価格」をご参照ください。
-
クロスリージョン トラフィック料金:強制的なプライマリ/セカンダリ スイッチオーバー後、元のプライマリクラスターと新しいプライマリクラスターが異なるリージョンにある場合、クロスリージョンのデータ転送料金が適用されます。これらの料金は VPC Peering Connection によって請求されます。詳細な課金ルールについては、「VPC Peering Connection の課金」をご参照ください。
前提条件
グローバルドメイン名を作成する前に、GDN 内のすべてのクラスター間でネットワーク接続とアクセス権限が正しく構成されていることを確認してください。
GDN 内のクラスターをホストする VPC の CIDR ブロックが重複しないようにすることを推奨します。重複する場合は、vSwitch の CIDR ブロックが重複しないようにしてください。
-
Private DNS サービスの有効化:Alibaba Cloud DNS PrivateZone コンソールにログインし、今すぐ利用を開始 をクリックします。
-
VPC 間のネットワーク接続の確立:GDN 内のクラスターをホストする VPC の各ペア間に VPC Peering Connection を作成します。たとえば、中国 (北京)、中国 (上海)、中国 (深セン) リージョンにクラスターがある場合、中国 (北京) – 中国 (上海)、中国 (北京) – 中国 (深セン)、中国 (上海) – 中国 (深セン) の 3 つのピアリング接続を作成する必要があります。
-
クラスターのホワイトリストの設定:GDN 内の各クラスターについて、他のすべてのクラスターをホストする VPC の CIDR ブロックを、そのクラスターの ホワイトリスト に追加します。
グローバルドメイン名の有効化
GDN の作成時、または既存の GDN に対してグローバルドメイン名を有効にすることができます。
-
GDN の作成時:
-
PolarDB コンソールにログインします。左側のナビゲーションウィンドウで、Global Database Network をクリックします。
-
Global Database Network ページで、GDN の作成 をクリックします。
-
GDN の作成 ダイアログボックスで、グローバルドメイン名 スイッチをオンにします。
-
-
既存の GDN の場合:
-
PolarDB コンソールにログインします。左側のナビゲーションウィンドウで、グローバルデータベースネットワーク (GDN) をクリックします。
-
グローバルデータベースネットワーク (GDN) ページで、目的の GDN を見つけ、その GDN ID をクリックして詳細ページに移動します。
-
グローバルドメイン名 の右側にある 有効 をクリックします。
-
グローバルドメイン名を有効にすると、システムは自動的に AliyunServiceRoleForPolarDB という名前のサービスにリンクされたロールを作成し、PolarDB に Private Hosted Zone などのクラウドリソースへのアクセス権限を付与します。
グローバルドメイン名の検証
構成が完了したら、異なるリージョンの VPC 内でドメイン名の名前解決と接続性を検証する必要があります。
-
(任意) VPC Peering Connection の検証:
プライマリクラスターが中国 (北京) リージョンに、セカンダリクラスターが中国 (上海) リージョンにあると仮定します。中国 (北京) リージョンの ECS インスタンス上で、MySQL クライアントを使用して中国 (上海) クラスターの内部エンドポイントに接続します。接続が成功した場合、中国 (北京) の VPC と中国 (上海) の VPC 間の接続は期待どおりに機能しています。同様に、中国 (上海) から中国 (北京) への接続も検証します。
mysql -hpc-xxxxxxxx.rwlb.rds.aliyuncs.com -P3306 -uxxxx -pxxxx -
最寄りアクセスの検証:各リージョンの VPC 内で、グローバルドメイン名がローカルクラスターのエンドポイントに解決されることを確認します。
-
プライマリクラスターがデプロイされている VPC (例:中国 (北京)) 内の ECS インスタンスにログインします。
-
ping <global_domain_name>とping <primary_cluster_internal_endpoint>を実行します。 -
期待される結果:両方のコマンドで返される IP アドレスが同一であること。これにより、グローバルドメイン名がローカルクラスターに解決されることが確認できます。
-
セカンダリクラスターについても同様の検証を繰り返します。
-
-
フェールオーバーの検証:プライマリ/セカンダリ スイッチオーバー後、アプリケーションがグローバルドメイン名を通じて新しいプライマリクラスターに自動的に接続できるかをテストします。
-
対象の GDN の詳細ページに移動します。クラスターリスト セクションで、対象のセカンダリクラスターを見つけ、Operation 列の プライマリクラスターに切り替え をクリックします。詳細については、「プライマリクラスターの切り替え」をご参照ください。
-
スイッチオーバー後、グローバルドメイン名経由で再接続を試み、回復時間を確認します。
-
グローバルドメイン名の管理
必要に応じて、いつでもグローバルドメイン名を有効または無効にすることができます。
-
PolarDB コンソールにログオンします。左側のナビゲーションウィンドウで、グローバルデータベースネットワーク (GDN) をクリックします。
-
グローバルデータベースネットワーク (GDN) ページで、目的の GDN を見つけ、その GDN ID をクリックして詳細ページに移動します。
-
グローバルドメイン名 を見つけ、右側の シャットダウン をクリックします。
-
ダイアログボックスの注意書きをよく読み、OK をクリックして確定します。
GDN のグローバルドメイン名を無効にした後でも、必要に応じていつでも再有効化できます。