クロスリージョンでの高可用性 (HA) やディザスタリカバリとバックアップなど、クロスリージョン負荷分散が必要な場合は、Server Load Balancer (SLB) が提供するクラシックロードバランサー (CLB) と Global Traffic Manager (GTM) を組み合わせて使用します。あるリージョンのサービスで障害が発生した場合、GTM はヘルスチェックを通じて障害を検出し、トラフィックを別のリージョンの正常なサービスにルーティングして、サービスの継続性を確保します。
Global Traffic Manager の概要
GTM は、DNS レイヤーで動作するグローバルなトラフィック管理および負荷分散サービスです。GTM は、各リージョンのアドレスプールに対してヘルスチェックを実行します。あるリージョンのサービスで障害が発生した場合、GTM はトラフィックを別のリージョンの正常なサービスにルーティングします。
GTM は、同一都市内でのアクティブ/アクティブアーキテクチャや、リージョンをまたいだ地理的ディザスタリカバリをサポートします。GTM は、Alibaba Cloud と Alibaba Cloud 以外のプロバイダー両方の IP アドレスを管理できるため、ハイブリッドクラウドのデプロイメントが可能です。
GTM の詳細については、「Global Traffic Manager とは」をご参照ください。
シナリオ例
ある企業が、Elastic Compute Service (ECS) インスタンスとともに CLB を使用して、サービストラフィックの分散と負荷分散を行っています。この企業は、中国 (杭州) リージョンと中国 (北京) リージョンでクロスリージョンのディザスタリカバリとバックアップを必要としています。あるリージョンのサービスが利用できなくなった場合、トラフィックは自動的にもう一方のリージョンの正常なバックエンドサービスに切り替わる必要があります。次の図は、このチュートリアルで使用するアーキテクチャを示しています。
ECS インスタンスは、各リージョンの CLB インスタンスの背後で動作します。各 CLB インスタンスのパブリック IP アドレスは別々のアドレスプールに配置され、両方のアドレスプールが正常な状態でトラフィックを処理します。あるリージョンのサービスで障害が発生した場合、GTM はトラフィックを正常に稼働しているリージョンにルーティングします。
前提条件
開始する前に、以下が準備できていることを確認してください。
各リージョンにインターネット向けの CLB インスタンス。手順については、「CLB インスタンスの作成と管理」をご参照ください。
各 CLB インスタンスに vServer グループがあり、対応する ECS インスタンスが追加され、すべてのサーバーに同じアプリケーションサービスがデプロイされていること。手順については、「vServer グループの作成と管理」をご参照ください。
各 CLB インスタンスにリスナーがあり、対応する vServer グループにトラフィックを転送していること。(推奨) 両方のリージョンで同じリスナーポートを使用してください。手順については、「TCP リスナーの追加」、「UDP リスナーの追加」、「HTTP リスナーの追加」、または「HTTPS リスナーの追加」をご参照ください。
各 CLB インスタンスのパブリック IP アドレスエンドポイントを介してサービスにアクセスできること。
ICP 登録が完了した登録済みドメイン名。ドメイン名の登録に関する詳細については、「Alibaba Cloud でのドメイン名の登録」をご参照ください。ICP 登録に関する詳細については、「ICP 登録プロセス」をご参照ください。
例外発生時に通知を受け取る CloudMonitor アラートグループ。GTM はこの設定を CloudMonitor から読み取ります。
ステップ1:GTM インスタンスの購入
Alibaba Cloud DNS コンソールにログインします。
ナビゲーションペインで、グローバルトラフィック管理 をクリックします。
インスタンスの購入 をクリックして、GTM 購入ページを開きます。
必要に応じて設定値を変更し、購入を完了します。このチュートリアルでは、すべての設定にデフォルト値を使用します。
ステップ2:GTM の設定
GTM インスタンスの設定
グローバルトラフィック管理 ページで、対象のインスタンスを見つけ、そのインスタンス ID をクリックするか、Actions 列の 設定 をクリックします。
インスタンスを初めて設定する場合は、[設定方法の選択] ダイアログボックスで 詳細設定 を選択します。
[基本設定] タブで Edit をクリックし、以下の設定を行います。他のパラメーターはデフォルト値のままにするか、必要に応じて変更します。完了したら、OK をクリックします。
設定 | 値 |
CNAME (インターネット) | カスタムアクセスドメイン名 を選択し、現在のアカウント配下にあるドメイン名のプレフィックスとサフィックスを入力します。設定を保存すると、システムは自動的に GTM DNS アドレスを指す CNAME レコードをドメインの DNS レコードに追加します。手動での設定は不要です。 |
グローバル TTL 期間 | 名前解決によって返された IP アドレスの有効期間。 |
[アラート通知グループ] | 例外発生時に通知を受け取るアラートグループ。この設定は CloudMonitor のアラートグループ設定を読み取ります。詳細については、「アラート連絡先またはアラート連絡先グループの作成」をご参照ください。 |
アドレスプールの設定
2 つのアドレスプールを追加し、2 つの CLB インスタンスのパブリック IP アドレスをそれぞれ異なるアドレスプールに配置します。
各 CLB のパブリック IP アドレスは、別々のアドレスプールに配置する必要があります。両方の CLB インスタンスを同じアドレスプールに追加しないでください。
アドレスプール設定 タブで、アドレスプールの作成 をクリックします。
アドレスプールの作成 パネルで、アドレスリスト セクションの アドレス フィールドに、あるリージョン内の CLB インスタンスのパブリック IP アドレスを設定します。アドレスリストには 1 つのアドレスのみを設定します。他のパラメーターはデフォルト値のままにするか、必要に応じて変更します。完了したら、OK をクリックします。
上記の手順を繰り返し、すべてのアドレスプールに IP アドレスを追加します。2 つの CLB インスタンスのパブリック IP アドレスが、2 つの別々のアドレスプールにあることを確認します。
ヘルスチェックの設定
2 つのアドレスプールのそれぞれにヘルスチェック設定を作成します。
アドレスプール タブで、対象のアドレスプールを見つけ、その前にある
アイコンをクリックして設定を展開します。ヘルスチェック の右側にある Add をクリックし、ヘルスチェックパラメーターを設定します。[ヘルスチェックプロトコル] と [ヘルスチェックポート] を、バックエンドサービスが使用するプロトコルとポートに合わせて設定します。他のパラメーターはデフォルト値のままにするか、必要に応じて変更します。完了したら、OK をクリックします。
上記の手順を繰り返し、すべてのアドレスプールにヘルスチェックを設定します。両方のアドレスプールにヘルスチェックが設定されていることを確認します。
アクセスポリシーの設定
GTM が DNS クエリに対して両方のリージョンのアドレスプールを返すように、アクセスポリシーを設定します。両方のアドレスプールがプライマリプールであるため、GTM はヘルスチェックに依存して、サービスに障害が発生したリージョンからトラフィックをルーティングします。
[基本設定] タブで、[アクセスポリシータイプ] セクションを見つけ、[地理的位置ベースのアクセスポリシー] の下にある 設定 をクリックします。
[地理的位置ベースのアクセスポリシー] ページで、[アクセスポリシーの作成] をクリックします。
[アクセスポリシーの作成] パネルで、以下の設定を行います。他のパラメーターはデフォルト値のままにするか、必要に応じて変更します。完了したら、OK をクリックします。
設定 | 値 |
[DNS リクエストソース] | [グローバル] を選択します。この設定により、異なるリージョンや異なるインターネットサービスプロバイダー (ISP) からのユーザー トラフィックが、指定されたアプリケーションサービスの IP アドレスにルーティングされます。 |
プライマリアドレスプールセット | すべてのリージョンのアドレスプールを選択します。プライマリアドレスプールセットは、ユーザーが正常な状態でアクセスするアドレスプールのセットです。 |
ステップ3:結果の検証
GTM を設定した後、サービスがアクセス可能であり、フェールオーバーが機能することを確認します。
正常なアクセスのテスト:
ブラウザーで、設定した CNAME アクセスドメインを入力します。
サービスにアクセスできることを確認します。
フェールオーバーのテスト:
障害をシミュレートするために、1 つのリージョンのバックエンドサービスを停止します。
ヘルスチェックが障害を検出し、[グローバル TTL 期間] の値に基づいて名前解決の結果が期限切れになるのを待ってから、ブラウザーを更新します。
サービスが引き続きアクセス可能であることを確認します。トラフィックは正常なリージョンにルーティングされます。
詳細なフェールオーバーログを表示するには、Global Traffic Manager インスタンスに移動し、アラートログ タブをクリックします。
関連ドキュメント
次世代のロードバランシングサービスである Application Load Balancer (ALB) と Network Load Balancer (NLB) も、クロスリージョン負荷分散をサポートしています。ビジネス要件に合った ALB または NLB ソリューションを選択してください:
よくある質問
QPS 上限を増やすにはどうすればよいですか?
従量課金制の CLB インスタンスの理論的な QPS 上限は 50,000 です。ビジネスでより高い QPS 上限が必要な場合は、以下のいずれかの方法を使用してください:
複数の CLB インスタンスを作成し、GTM を使用してトラフィックを分散させることで、QPS 上限を線形的にスケールさせます。加重ポリシーを使用して、インスタンス間でトラフィックを比例的に分散させます。リクエストが複数のクライアントに分散されると、トラフィックは重みに基づいて負荷分散されます。詳細については、「GTM を使用したアクティブ/アクティブな負荷分散とディザスタリカバリの実装」をご参照ください。
ALB に切り替えます。ALB は、単一の仮想 IP アドレス (VIP) に対して最大 500,000 QPS まで自動的にスケーラブルなパフォーマンスを提供します。