アプリケーションが異なるリージョンに展開されている場合、リージョンのネットワーク障害により、リージョンのサービスが利用できなくなることがあります。 Global Accelerator (GA) を使用して、リージョン間でデプロイされているアプリケーションを高速化できます。 GAは、アプリケーションがデプロイされているリージョンにリクエストを転送し、高可用性のためにディザスタリカバリを実装します。
背景情報
金融会社は米国 (シリコンバレー) リージョンに本社を置き、米国 (バージニア) リージョンに支店を持っています。 ECS01は米国 (シリコンバレー) リージョンで作成され、ECS02は米国 (バージニア) リージョンで作成されます。 アプリケーションがElastic Compute Service (ECS) インスタンスにデプロイされています。 ほとんどのクライアントは中国 (香港) と日本にいます。 ビジネスクリティカルなアプリケーションを期待どおりに実行し、エラー発生時の損失を減らすには、アプリケーションが次の要件を満たす必要があります。
米国 (シリコンバレー) リージョンの本社でエラーが発生した場合、会社は米国 (バージニア) リージョンの支店にフェールオーバーできます。
ネットワーク遅延、ネットワークジッタ、パケット損失など、不安定なクロスリージョンインターネット接続によるネットワークの問題を減らす必要があります。
GAインスタンスを作成し、日本 (東京) と中国 (香港) のリージョンをアクセラレーションリージョンとして指定できます。 次に、Endpoint Group 1を米国 (シリコンバレー) リージョンに、Endpoint Group 2を米国 (バージニア) リージョンに作成できます。 GAは、各エンドポイントグループの優先度とトラフィック分配率に基づいてリクエストをインテリジェントに分配します。 このようにして、トラフィックを複数のリージョンに分散できます。
複数のエンドポイントグループに対してヘルスチェック機能を有効にできます。 本社にデプロイされたエンドポイントグループがヘルスチェックに失敗した場合、GAはブランチにデプロイされた正常なエンドポイントグループに新しいリクエストを配信します。 異常なエンドポイントグループが回復した後、GAはエンドポイントグループにリクエストを再度配信します。 これにより、リージョン間でデプロイされるアプリケーションの高可用性が保証され、ネットワークの待ち時間が短縮されます。
さらに、GAによって割り当てられたCNAMEに基づいてDNS設定を構成できます。 GAのCNAMEは、リージョンに基づいて解決できます。 異なるリージョンのユーザーに対して、異なる高速IPアドレスが返されます。 これにより、ネットワークの待ち時間が短縮され、アプリケーションへのアクセスが高速化されます。
前提条件
アプリケーションは、米国 (シリコンバレー) リージョンのECS01と米国 (バージニア) リージョンのECS02にデプロイされています。
アプリケーションドメイン名をバックエンドサーバーのパブリックIPアドレスにマッピングするために、2つのAレコードが作成されます。
この例では、NGINXを使用してポート80を使用するバックエンドHTTPサービスをデプロイし、Alibaba Cloud DNSを使用してDNSレコードを設定します。
NGINXサービスのデプロイ方法の詳細については、「NGINXのインストール」をご参照ください。
DNSレコードの設定方法の詳細については、「DNSレコードの追加」をご参照ください。 サードパーティDNSサービスを使用する場合は、サービスプロバイダーのユーザーガイドを参照してください。
手順1: インスタンスに関する基本情報の設定
GAコンソールにログインします。
インスタンス ページで、[GAインスタンスの作成] をクリックします。 ビジネス要件に基づいて、[従量課金標準インスタンス] または [サブスクリプション標準インスタンス] を選択します。
この例では、従量課金標準インスタンスが選択されています。
[基本インスタンス設定] ステップで、次のパラメーターを設定し、[次へ] をクリックします。
パラメーター
説明
GAインスタンス名
GAインスタンスの名前を入力します。
インスタンスの課金方法
デフォルトでは、従量課金が選択されています。
従量課金の標準Global Acceleratorインスタンスのインスタンス料金、容量単位 (CU) 料金、およびデータ転送料金が課金されます。
インスタンス料金とCU料金の詳細については、「従量課金GAインスタンスの課金」をご参照ください。
データ転送料金の詳細については、「データ転送課金」をご参照ください。
リソースグループ
標準のGlobal Acceleratorインスタンスが属するリソースグループを選択します。
リソースグループは、Resource Management で現在の Alibaba Cloud アカウントを使用して作成する必要があります。 詳細については、「リソースグループの作成」をご参照ください。
ステップ2: アクセラレーションエリアの設定
アクセラレーションリージョンを指定し、各アクセラレーションリージョンに帯域幅を割り当てます。Global Accelerator
[アクセラレーションエリアの設定] ステップで、パラメーターを設定し、[次へ] をクリックします。 下表に、各パラメーターを説明します。
パラメーター | 説明 |
アクセラレーションエリア | ドロップダウンリストから1つ以上のリージョンを選択し、[追加] をクリックします。 この例では、中国 (香港) と日本 (東京) が選択されています。 |
帯域幅の割り当て | |
最大帯域幅 | アクセラレーションリージョンの帯域幅を指定します。 各アクセラレーションリージョンは、2〜10,000 Mbit/sの帯域幅範囲をサポートします。 最大帯域幅は帯域幅スロットリングに使用されます。 データ転送料金はCDTによって管理されます。 この例では、デフォルト値200 Mbit/sが使用されます。 重要 小さな最大帯域幅値を指定すると、スロットリングが発生し、トラフィックがドロップされる可能性があります。 ビジネス要件に基づいて最大帯域幅値を指定します。 |
IP プロトコル | Global Acceleratorへの接続に使用するIPバージョンを選択します。 この例では、デフォルト値IPv4が選択されています。 |
ISP 回線タイプ | Global AcceleratorのISP回線タイプを選択します。 この例では、BGP (Multi-ISP) が選択されています。 |
手順3: リスナーの設定
リスナーは接続要求をリッスンし、指定したポートとプロトコルに基づいてエンドポイントに要求を配信します。 各リスナーはエンドポイントグループに関連付けられています。 ネットワークトラフィックを分散するリージョンを指定することで、エンドポイントグループをリスナーに関連付けることができます。 エンドポイントグループをリスナーに関連付けると、ネットワークトラフィックはエンドポイントグループ内の最適なエンドポイントに分散されます。
リスナーの設定ステップで、必要なパラメーターを設定し、[次へ] をクリックします。
次の表に、このトピックに関連するパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「TCPまたはUDPリスナーの追加」をご参照ください。
パラメーター | 説明 |
リスナー名 | リスナーの名前を入力します。 |
ルーティングタイプ | ルーティングタイプを選択します。 この例では、[インテリジェントルーティング] が選択されています。 |
プロトコル | リスナーのプロトコルを選択します。 1つのTCPまたはUDPリスナーに対してのみ、異なるリージョンにエンドポイントグループを作成できます。 この例では、TCPが選択されています。 |
ポート | リスナーがリクエストを受信してエンドポイントに転送するポートを指定します。 有効な値: 1 ~ 65499 この例では、ポート80が使用されます。 |
クライアントのアフィニティ | クライアントアフィニティを有効にするかどうかを指定します。 クライアントアフィニティを有効にすると、クライアントがステートフルアプリケーションに接続するときに、同じクライアントからのリクエストが同じエンドポイントに転送されます。 この例では、[無効] が選択されています。 |
手順4: エンドポイントグループとエンドポイントの設定
米国 (シリコンバレー) および米国 (バージニア) リージョンでエンドポイントグループを作成し、エンドポイントグループのヘルスチェックを設定して、アプリケーションの高可用性を確保できます。
トラフィック分散率を指定して、各エンドポイントグループに転送されるリクエストの割合を変更することもできます。
米国 (シリコンバレー) リージョンにエンドポイントグループを作成します。
エンドポイントグループの設定 ステップで、次のパラメーターを設定し、[次へ] をクリックします。
パラメーター
説明
リージョン
エンドポイントグループ (宛先サーバー) が属するリージョンを選択します。
この例では、US (シリコンバレー) が選択されています。
説明エンドポイントグループのリージョンは一意である必要があります。 各リージョンで作成できるエンドポイントグループは1つだけです。
エンドポイント設定
クライアント要求はエンドポイントにルーティングされます。 エンドポイントを追加するには、次のパラメーターを設定します。
バックエンドサービスタイプ: Alibaba CloudパブリックIPを選択します。
重要仮想プライベートクラウド (VPC) のECSインスタンス、Alibaba CloudパブリックIPアドレス、オリジンサーバーのカスタムIPアドレス、またはオリジンサーバーのカスタムドメイン名をエンドポイントとして指定した場合、エンドポイントのヘルスチェックを設定できます。 Server Load Balancer (SLB) インスタンスをエンドポイントとして指定した場合、ヘルスチェックの設定は有効になりません。
バックエンドサービス: 高速化するバックエンドサービスのIPアドレスを入力します。 この例では、米国 (シリコンバレー) リージョンにデプロイされているECS01のIPアドレスが入力されます。
重み: エンドポイントの重みを入力します。 有効な値:0~255 。 GAは、重みに基づいてネットワークトラフィックをエンドポイントに分散します。 この例では、デフォルト値255が使用されます。
警告エンドポイントの重みを0に設定すると、Global Acceleratorはエンドポイントへのネットワークトラフィックの配信を停止します。 作業は慎重に行ってください。
クライアント IP の保持
クライアントIPアドレスを保持するかどうかを指定します。
この機能を有効にすると、バックエンドサーバーはクライアントのIPアドレスを取得できます。 詳細については、「クライアントIPアドレスの保存」をご参照ください。
この例では、デフォルト値 [保存しない] が使用されています。
トラフィックの配分
エンドポイントグループのトラフィック分散率を指定します。
有効値: 0~100。 この例では、50が入力されます。
説明詳細については、「異なるシナリオでエンドポイントグループにトラフィックを分散する」と「トラフィックを複数のエンドポイントグループに分配する」をご参照ください。
ヘルスチェック
ヘルスチェック機能を有効にするかどうかを指定します。 この機能を有効にすると、ヘルスチェックを実行してエンドポイントのステータスを確認できます。
この例では、ヘルスチェック機能が有効になっています。
ヘルスチェックプロトコル
ヘルスチェックに使用するプロトコルを選択します。 有効な値:TCP、HTTP、および HTTPS。
この例では、HTTPが選択されています。
ポート
ヘルスチェックのためにプローブパケットを送信するエンドポイントのポートを指定します。 有効な値: -1 から 65535
この例では、80が入力されます。
ヘルスチェックの間隔
2つの連続したヘルスチェックの間隔を指定します。 単位: 秒。 有効値:1 〜 50 。
この例では、2が入力されます。
パス
ヘルスチェックに使用するパスを指定します。
パスの長さは1 ~ 80文字で、先頭はスラッシュ (/) である必要があります。 パスには、英数字、ハイフン (-) 、スラッシュ (/) 、ピリオド (.) 、パーセント記号 (%) 、疑問符 (?) 、数字記号 (#) 、およびアンパサンド (&) を含めることができます。 パスには、次の拡張文字を含めることもできます。
_ ; ~! ( ) * [ ] @ $ ^ : ' , +
.デフォルトでは、GAはバックエンドサービスのデフォルトのホームページにGETリクエストを送信します。 ヘルスチェックにデフォルトのホームページを使用しない場合は、URIを手動で指定できます。
この例では、/を指定します。
説明このパラメーターは、HTTPおよびHTTPSヘルスチェックでのみサポートされます。
正常しきい値
正常なエンドポイントが正常でないと見なされる前に発生する必要がある連続したヘルスチェックの失敗の数、または正常でないエンドポイントが正常であると見なされる前に発生する必要がある連続したヘルスチェックの成功の数。 設定可能な値は 1 から 100 です。
この例では、3が入力されます。
[設定の確認] ステップで、リスナーとエンドポイントグループ1の設定を確認し、[送信] をクリックします。
説明Global Acceleratorインスタンスの作成には3〜5分かかります。
(オプション) GAインスタンスを作成した後、[インスタンス] ページでインスタンスIDをクリックして、インスタンスの設定を表示できます。 インスタンスの詳細ページで、インスタンス情報 、リスナー 、アクセラレーションエリア などのタブをクリックできます。
米国 (バージニア) リージョンにエンドポイントグループを作成します。
インスタンスの詳細ページで、リスナー タブをクリックします。
[リスナー] タブで、管理するリスナーを見つけ、デフォルトのエンドポイントグループ 列のエンドポイントグループIDをクリックします。
[Endpoint Group] タブの [Default Endpoint Group] セクションで、[+ Endpoint Groupの追加] をクリックします。
エンドポイントグループの追加 ページで、次の情報に基づいてパラメーターを設定し、[作成] をクリックします。
リージョン: 米国 (バージニア州) を選択します。
エンドポイント設定のBackend Service: 米国 (バージニア) リージョンのオリジンサーバーECS02のIPアドレスを入力します。
他のパラメーターについては、Endpoint Group 1を作成するときに同じ設定を使用します。
ステップ5: CNAMEレコードの作成
DNS解決設定を変更して、アプリケーションのドメイン名をGAインスタンスのCNAMEにマッピングできます。 クライアントがドメイン名を使用してバックエンドサービスにアクセスすると、GAはクライアントのリージョンに基づいてドメイン名を高速IPアドレスに解決します。
Alibaba Cloud DNSコンソールにログインします。
ドメイン名がAlibaba Cloudドメインを使用して登録されていない場合は、ドメイン名をAlibaba Cloud DNSに追加する必要があります。
説明ドメイン名がAlibaba Cloudドメインを使用して登録されていない場合、DNSレコードを設定する前にドメイン名をAlibaba Cloud DNSに追加する必要があります。 詳細については、「ドメイン名の管理」トピックの「ドメイン名の追加」セクションをご参照ください。 ドメイン名がAlibaba Cloudドメインを使用して登録されている場合は、この手順をスキップします。
[ドメイン名の解決] ページでドメイン名を見つけ、[操作] 列の [DNS設定] をクリックして [DNS設定] ページに移動します。
[DNS設定] ページで、既存のAレコードを検索して選択し、[バッチ操作] をクリックし、[削除] をクリックします。
[DNS設定] ページで、[DNSレコードの追加] をクリックします。 [DNSレコードの追加] パネルで、次のパラメーターを設定し、[OK] をクリックします。
レコードタイプ: ドロップダウンリストからCNAMEを選択します。
ホスト名: サブドメイン名のプレフィックスを入力します。 この例では、@ を入力します。
DNSリクエストソース: [デフォルト] を選択します。
レコード値: GAによって割り当てられるCNAMEを入力します。
Global Accelerator によって割り当てられたCNAMEは、[インスタンス] ページで確認できます。
TTL期間: DNSレコードがDNSサーバーにキャッシュされている期間。 値が小さいほど、レコードの更新を適用する時間が短いことを示します。 デフォルト値は10分です。
CNAMEレコードが有効かどうかを確認します。
アクセラレーションリージョンのコンピューターでCLIを開き、を実行します。pingコマンドをping加速ドメイン名。
出力のCNAMEがGlobal Acceleratorによって割り当てられたCNAMEと同じ場合、CNAMEレコードが有効になります。
ステップ6: アクセラレーションのパフォーマンスを確認する
ディザスタリカバリにより、リージョン間でデプロイされたアプリケーションの高可用性がどのように確保されるかを確認するには、次の手順を実行します。
この例では、以下のオペレーティングシステムが使用される。 テストの実行に使用されるコマンドは、オペレーティングシステムによって異なります。 詳細については、オペレーティングシステムのユーザーガイドを参照してください。
クライアントオペレーティングシステム: Windows Server 2022。
オリジンサーバーのオペレーティングシステム: Alibaba Cloud Linux 3.
エンドポイントグループの高可用性の確認
米国 (シリコンバレー) リージョンのオリジンサーバーを切断して、エンドポイントグループの障害をシミュレートし、アクセス結果を確認します。
中国 (香港) 、日本 (東京) 、およびその他のリージョンのコンピューターでブラウザーを開きます。
米国 (シリコンバレー) リージョンおよび米国 (バージニア) リージョンにデプロイされているアプリケーションのドメイン名を入力します。
次の図はテスト結果を示しています。
次の図は、中国 (香港) リージョンのクライアントがアプリケーションにアクセスした後のアクセス結果を示しています。 レスポンシブサーバーは、米国 (バージニア) リージョンにデプロイされているECS02です。
日本 (東京) リージョンのクライアントがアプリケーションにアクセスした後のアクセス結果を次の図に示します。 レスポンシブサーバーは、米国 (バージニア) リージョンにデプロイされているECS02です。
米国 (シリコンバレー) リージョンのサーバーが復旧したら、上記の方法で中国 (香港) および日本 (東京) リージョンからのクライアント要求のアクセス結果を確認します。
次の図は、中国 (香港) リージョンのクライアントがアプリケーションにアクセスした後のアクセス結果を示しています。 レスポンシブサーバーは、米国 (シリコンバレー) リージョンにデプロイされているECS01です。
日本 (東京) リージョンのクライアントがアプリケーションにアクセスした後のアクセス結果を次の図に示します。 レスポンシブサーバーは、米国 (シリコンバレー) リージョンにデプロイされているECS01です。
クライアントの要求に応答するエンドポイントグループは、ビジネスによって異なります。 GAインスタンスに複数のアクセラレーションリージョンとエンドポイントグループを設定した場合、クライアントリクエストの解決結果は、各エンドポイントグループの優先度とトラフィック分配率によって異なります。 詳細については、「異なるシナリオでのエンドポイントグループ間のトラフィックの分散」をご参照ください。
アクセラレーションパフォーマンスの確認
アクセラレーションパフォーマンスを確認する方法の詳細については、「ネットワーク検出ツールを使用してアクセラレーションパフォーマンスを確認する」をご参照ください。