Global Accelerator を使用した ALB バックエンドアプリケーションの高速化
Application Load Balancer (ALB) でホストされているサービスに世界中の複数のリージョンからユーザーがアクセスする場合、パブリックネットワークの品質が低いと、遅延、ジッター、パケット損失が大きくなり、エンドユーザーエクスペリエンスが低下する可能性があります。Alibaba Cloud Global Accelerator (GA) を使用してアプリケーションを高速化します。エンドユーザーのリクエストは、最寄りの POP (Point of Presence) で Alibaba Cloud に入り、Alibaba Cloud のプライベート高速化ネットワークを経由してアプリケーションサーバーに到達します。
シナリオ例
ある企業が、中国 (杭州) リージョンで ALB を使用して高可用性サービスをデプロイし、世界中の複数のリージョンのエンドユーザーにサービスを提供する予定です。クロスリージョンのパブリックネットワーク品質が最適でないため、一部のエンドユーザーは高いネットワーク遅延を経験し、アクセスエクスペリエンスに影響が出ています。
この問題を解決するために、同社は Global Accelerator (GA) をデプロイします。これにより、エンドユーザーのリクエストは最寄りの POP で Alibaba Cloud に入り、高速化されたネットワークを経由するため、ユーザーのアクセスエクスペリエンスが大幅に向上します。
前提条件
-
ALB インスタンス用にサーバーグループを作成し、管理していること。
-
ECS01 と ECS02 インスタンスを ALB サーバーグループに追加し、ECS01 と ECS02 の両方にアプリケーションサービスをデプロイしていること。
このトピックでは、オペレーティングシステムとして Alibaba Cloud Linux 3 を使用し、Nginx を使用してポート 80 にバックエンド HTTP サービスを設定します。
-
カスタムドメイン名を登録し、ICP 登録を完了し、ALB インスタンスを指す DNS CNAME レコードを設定していること。
-
ALB インスタンス用にHTTP リスナーまたはHTTPS リスナーを作成していること。HTTPS リスナーを使用する場合は、証明書を作成してリクエストするか、サードパーティの証明書を SSL 証明書サービスにアップロードし、カスタムドメイン名にバインドします。
操作手順
GA を設定して ALB バックエンドアプリケーションを高速化するには、次の 2 つの方法があります。
-
GA コンソールで ALB をバックエンドサービスとして追加し、カスタマイズ可能な設定を行う。
-
ALB コンソールのワンクリック GA 設定を使用して、クイックセットアップを行う。
GA コンソールで ALB をバックエンドサービスとして追加
ステップ 1:インスタンスの基本情報の設定
このトピックでは、従量課金制の中規模 GA インスタンスを例として使用します。
-
Global Accelerator コンソールで、 ページに移動し、標準タイプの従量課金型インスタンスの作成 をクリックします。
-
インスタンスの基本設定 ウィザードページで、基本設定を行い、次へ をクリックします。
[Global Accelerator インスタンス名] を入力し、[インスタンスの課金方法] が [従量課金] に設定されていることを確認します。
ステップ 2:加速エリアの設定
アクセラレーションエリアの設定 ウィザードページで、加速リージョンを追加し、帯域幅を割り当て、次へ をクリックします。
この例では、米国 (シリコンバレー) リージョンを使用します。加速エリアを [米国 (シリコンバレー)] に設定します。ISP 回線タイプ を BGP (Multi-ISP) に設定します。その他の 加速エリアパラメーター はデフォルト値のままにするか、必要に応じて調整します。この例では、ピーク帯域幅を 200 Mbps に、IP プロトコルバージョンを IPv4 に設定します。
ステップ 3:リスナーの設定
リスナーの設定 ウィザードページで、転送プロトコルとポートを設定し、次へ をクリックします。
このシナリオでは、プロトコル を HTTP に、ポート を 80 に設定します。その他の リスナーパラメーターはデフォルト値のままにするか、必要に応じて調整します。
UDP リスナーは ALB タイプのバックエンドサービスをサポートしていません。
ステップ 4:エンドポイントグループとエンドポイントの設定
-
エンドポイントノードグループの設定 ウィザードページで、バックエンドサービスを設定し、次へ をクリックします。
このシナリオでは、リージョン を 中国 (杭州) に設定します。バックエンドサービスタイプ を [ALB] に設定します。バックエンドサービス には、ターゲットの ALB インスタンスを選択します。データのクロスボーダー運用に関するコンプライアンス誓約書 を読み、選択します。その他の エンドポイントグループパラメーター は、デフォルト値のままにするか、必要に応じて調整します。

-
設定監査 ウィザードページで、GA の設定を確認し、送信する をクリックします。
ステップ 5:CNAME の設定
カスタムドメインの DNS レコードを GA インスタンスによって割り当てられた CNAME に向けます。これにより、サービストラフィックが GA を経由してルーティングされ、アクセスが高速化されます。
すでに ALB を指す CNAME レコードがある場合は、まずテスト用に米国のユーザーを対象とした GA の CNAME レコードを作成します。テストが成功したら、徐々に他のリージョンに展開するか、ALB の CNAME を GA の CNAME に置き換えます。
-
[ドメイン名解決] ページで、カスタムドメインを見つけ、操作 列の [DNS の設定] をクリックします。
説明Alibaba Cloud 以外で登録されたドメインの場合、DNS レコードを設定する前に、まずドメインをクラウド DNS コンソールに追加する必要があります。
-
DNS 設定ページで、[レコードの追加] をクリックし、CNAME レコードを設定して、OK をクリックします。
このシナリオでは、レコードタイプ を CNAME に設定します。ホスト名 を www に設定します。DNS リクエストソース を北米の米国に設定します。値 を GA インスタンスの CNAME に設定します。その他の DNS レコードパラメーター は、デフォルト値のままにするか、必要に応じて調整します。
ステップ 6:高速化パフォーマンスの検証
このテストでは、バックエンドサーバーが中国 (杭州) にあるパブリック ALB インスタンスを使用し、クライアントは米国の加速エリアからアクセスします。
-
高速化後のネットワーク遅延のテスト:
-
ブラウザで
http://<custom domain>にアクセスし、バックエンドへのアクセスが正常であることを確認します。ブラウザを数回更新して、ECS01 と ECS02 を切り替えます。 -
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<custom domain>"を実行して、高速化後のパケット遅延を確認します。高速化後の出力は次のようになります:
[root@iZxxx ~]# curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://xxx.com" time_connect: 0.008 time_starttransfer: 0.207 time_total: 0.207
-
-
高速化前のネットワーク遅延のテスト:
-
ブラウザで
http://<custom domain>にアクセスし、バックエンドへのアクセスが正常であることを確認します。ブラウザを数回更新して、ECS01 と ECS02 を切り替えます。 -
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<custom domain>"を実行して、高速化前のパケット遅延を確認します。高速化前の出力は次のようになります:
[root@iZxxx ~]# curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://xxx.com" time_connect: 0.017 time_starttransfer: 0.427 time_total: 0.427
-
-
高速化結果の比較。パラメーターの定義:
-
time_connect:接続時間 (秒) — 開始から TCP 接続の確立が完了するまで。
-
time_starttransfer:最初のバイトまでの時間 (秒) — クライアントのリクエストからバックエンドサーバーが最初の応答バイトを送信するまで。
-
time_total:合計接続時間 (秒) — クライアントのリクエストからバックエンドサーバーがセッション応答を完了するまで。
パラメーター
高速化後 (秒)
高速化前 (秒)
アクセラレーションデータ参照 (秒)
改善率 (%)
time_connect
0.008
0.017
0.009 増加
52.9% 向上
time_starttransfer
0.207
0.427
0.220 改善
51.5% 向上
time_total
0.207
0.427
0.220 改善
51.5% 向上
説明このトピックの例とデータは参照用です。実際の高速化パフォーマンスは、特定のビジネスでのテストに依存します。
-
また、またはワンタイムネットワークプローブツールを使用して、GA 設定前後の高速化パフォーマンスをテストすることもできます。応答時間を確認してデータ遅延を把握します。
ALB コンソールでのワンクリック GA 設定
ALB は GA サービスを統合しています。ALB コンソールで直接 GA 高速化を有効にして、設定を簡素化できます。
制限事項
-
各 ALB インスタンスは、高速化のために 1 つの GA インスタンスにのみ関連付けることができます。
-
次の ALB インスタンスは、アプリケーションの高速化をサポートしていません:
-
ALB インスタンスにリスナーが設定されていない。
-
ALB インスタンスまたはそのリスナーがスペックアップまたはスペックダウン中である。
-
ALB インスタンスに QUIC リスナーが設定されている。
-
ALB インスタンスに、次のいずれかの設定を持つ HTTPS リスナーがある:
-
相互認証が有効になっている。
-
カスタム TLS セキュリティポリシーが使用されている。
-
拡張証明書が設定されている。
-
-
ALB インスタンスに、gRPC プロトコルを使用するバックエンドサーバーグループに関連付けられたリスナーがある。
-
ALB インスタンスが GA が利用できないリージョンにデプロイされている。GA がサポートするリージョンの詳細については、「加速リージョンとサポートエリア」をご参照ください。
-
GA インスタンスのエンドポイントのパブリック IP アドレス範囲が、パブリック ALB リスナーの ACL ブラックリストに含まれているか、ACL ホワイトリストのアドレスと競合している。GA インスタンスのエンドポイントのパブリック IP アドレスを取得する方法については、「Global Accelerator インスタンスのエンドポイントのパブリック IP アドレスを取得するにはどうすればよいですか?」をご参照ください。
-
ステップ 1:ALB インスタンスのアプリケーション高速化を有効にする
-
上部のメニューバーで、インスタンスがデプロイされているリージョンを選択します。
-
インスタンス ページで、ターゲットインスタンスを見つけ、そのインスタンス ID をクリックします。
-
統合サービス タブで、GA アクセラレータの作成 をクリックします。
-
GA サービスを有効にする:GA を使用したことがない場合は、Global Accelerator サービス規約を読み、チェックボックスをオンにしてサービスを有効にします。
-
アクセラレーションリージョン:加速リージョンは、アクセスを高速化したい地理的なエリアです。クライアントがいるリージョンまたは最寄りのリージョンを選択します。各加速リージョンには、1 つ以上の Alibaba Cloud リージョンが含まれます。
説明-
加速リージョンに中国本土が含まれている場合、またはバックエンドサーバーが中国本土にデプロイされている場合は、カスタムドメイン名のICP 登録を完了する必要があります。
-
加速リージョンとオリジンサーバーリージョンがクロスボーダーアクセスに関わる場合は、データ越境移転に関するコンプライアンス契約書 を読み、チェックボックスをオンにして同意します。クロスボーダー高速化のためのプレミアム帯域幅はデフォルトで有効になっています。
-
-
-
設定が完了したら、OK をクリックします。
重要初めて高速化を有効にすると、ALB インスタンスのすべてのリスナー設定が GA に同期されます。その後の ALB リスナーへの変更は自動的に同期されません。GA コンソールで手動で更新する必要があります。
ステップ 2:CNAME 解決の設定
DNS を設定して、カスタムドメインを GA CNAME に向けます。これにより、サービストラフィックが GA を経由してルーティングされ、アクセスが高速化されます。
ALB インスタンスの GA 高速化を有効にすると、統合サービス ページに、作成された GA インスタンスの詳細 (DNS 名 (GA CNAME) を含む) が表示されます。
すでに ALB を指す CNAME レコードがある場合は、まずテスト用に米国のユーザーを対象とした GA の CNAME レコードを作成します。テストが成功したら、徐々に他のリージョンに展開するか、ALB の CNAME を GA の CNAME に置き換えます。
-
[ドメイン名解決] ページで、カスタムドメインを見つけ、操作 列の [DNS の設定] をクリックします。
説明Alibaba Cloud 以外で登録されたドメインの場合、DNS レコードを設定する前に、まずドメインをクラウド DNS コンソールに追加する必要があります。
-
DNS 設定ページで、[レコードの追加] をクリックし、CNAME レコードを設定して、OK をクリックします。
このシナリオでは、レコードタイプ を CNAME に、ホスト名 を www に、DNS リクエストソース を北米の米国に、値 を GA インスタンスの CNAME に設定します。その他の DNS レコードパラメーター はデフォルト値のままにするか、必要に応じて調整します。
ステップ 3:高速化パフォーマンスの検証
このテストでは、バックエンドサーバーが中国 (杭州) にあるパブリック ALB インスタンスを使用し、クライアントは米国の加速エリアからアクセスします。
-
高速化後のネットワーク遅延のテスト:
-
ブラウザで
http://<custom domain>にアクセスし、バックエンドへのアクセスが正常であることを確認します。ブラウザを数回更新して、ECS01 と ECS02 を切り替えます。 -
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<custom domain>"を実行して、高速化後のパケット遅延を確認します。高速化後の出力は次のようになります:
[root@iZxxx ~]# curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://xxx.com" time_connect: 0.008 time_starttransfer: 0.207 time_total: 0.207
-
-
高速化前のネットワーク遅延のテスト:
-
ブラウザで
http://<custom domain>にアクセスし、バックエンドへのアクセスが正常であることを確認します。ブラウザを数回更新して、ECS01 と ECS02 を切り替えます。 -
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http[s]://<custom domain>"を実行して、高速化前のパケット遅延を確認します。高速化前の出力は次のようになります:
[root@iZxxx ~]# curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://xxx.com" time_connect: 0.017 time_starttransfer: 0.427 time_total: 0.427
-
-
高速化結果の比較。パラメーターの定義:
-
time_connect:接続時間 (秒) — 開始から TCP 接続の確立が完了するまで。
-
time_starttransfer:最初のバイトまでの時間 (秒) — クライアントのリクエストからバックエンドサーバーが最初の応答バイトを送信するまで。
-
time_total:合計接続時間 (秒) — クライアントのリクエストからバックエンドサーバーがセッション応答を完了するまで。
パラメーター
高速化後 (秒)
高速化前 (秒)
高速化データ参照 (秒)
改善率 (%)
time_connect
0.008
0.017
0.009 増加
52.9% 向上
time_starttransfer
0.207
0.427
0.220 改善
51.5% 向上
time_total
0.207
0.427
0.220 改善
51.5% 向上
説明このトピックの例とデータは参照用です。実際の高速化パフォーマンスは、特定のビジネスでのテストに依存します。
-
また、またはワンタイムネットワークプローブツールを使用して、GA 設定前後の高速化パフォーマンスをテストすることもできます。応答時間を確認してデータ遅延を把握します。
よくある質問
どのようなタイプの GA インスタンスが作成されますか?
従量課金制の標準 GA インスタンスです。
アプリケーションの高速化を有効にすると、課金にどのような影響がありますか?
アプリケーションの高速化を有効にすると、インスタンス料金、CU 料金、トラフィック料金など、GA 関連の料金が追加されます。詳細については、「従量課金制 Global Accelerator インスタンスの課金」をご参照ください。
更新した ALB リスナーが高速化されないのはなぜですか?
初めて GA 統合を有効にすると、すべての ALB リスナー設定が GA に同期されます。その後の ALB リスナーへの変更は自動的に同期されません。GA コンソールで手動で更新する必要があります。
高速化後、ALB のアクセス制御ポリシーが機能しなくなったのはなぜですか?
GA 高速化後、エンドユーザーは GA の DNS 名を介してサービスにアクセスします。そのため、ALB のアクセス制御ポリシーは適用されなくなります。
同様の IP ベースのアクセス制御を実施するには、GA でアクセス制御ポリシーを設定します。詳細については、「GA アクセス制御」をご参照ください。
参考資料
-
ALB 課金の概要:ALB の課金方法とコンポーネントについて説明します。
-
GA 課金の概要:GA の課金方法とコンポーネントについて説明します。
-
クロスボーダー高速化の構成選択:クロスボーダーシナリオでは、デフォルトで [プレミアム帯域幅クロスリージョン高速化] が使用されます。より高いネットワーク品質が求められる場合は、[専用回線クロスリージョン高速化] を使用します。