負荷分散について

完了

負荷分散とは、バックエンド コンピューティング リソースまたはサーバーのグループ全体にわたってワークロード (つまり、受信ネットワークトラフィック) を均等に分散することを指します。 負荷分散は、リソースの使用を最適化し、スループットを最大化し、応答時間を最小化し、1 つのリソースの過負荷を回避することを目的としています。 また、冗長なコンピューティング リソース間でワークロードを共有することで、可用性を向上させることもできます。

Azure の負荷分散オプション

Azure には、ワークロードを複数のコンピューティング リソースに分散するために使用できるさまざまな負荷分散サービスが用意されていますが、主なサービスは次のとおりです。

  • Azure Load Balancer - あらゆる UDP および TCP プロトコル向けの、高パフォーマンスで超低遅延のレイヤー 4 の負荷分散サービス (インバウンドとアウトバウンド)。 これは、ソリューションの高可用性を保証しながら、1 秒あたり数百万の要求を処理するように構築されています。 Azure Load Balancer は、ゾーン冗長であるため、Availability Zones 全体で高可用性を確保します。
  • Traffic Manager - 全世界の Azure リージョンにわたるサービスにトラフィックを適切に分散しながら、高い可用性と応答性を実現する、DNS ベースのトラフィック ロード バランサー。 Traffic Manager は DNS ベースの負荷分散サービスであるため、負荷分散はドメイン レベルでのみ行われます。 そのため、DNS キャッシュや、DNS Time to Live (TTL) 値を遵守しないシステムに関連した一般的な課題が理由で、Front Door ほど高速なフェールオーバーは実現していません。
  • Azure Application Gateway - アプリケーション デリバリー コントローラー (ADC) がサービスとして提供され、さまざまなレイヤー 7 の負荷分散機能が用意されています。 これを使用して、CPU を集中的に使用する SSL 終了をゲートウェイにオフロードし、Web ファームの生産性を最適化できます。
  • Azure Front Door - Web アプリケーション向けのグローバルな負荷分散とサイト アクセラレーション サービスが提供されるアプリケーション配信ネットワーク。 SSL オフロード、パスベースのルーティング、高速フェールオーバー、キャッシュなどのレイヤー 7 機能をアプリケーションに提供して、アプリケーションのパフォーマンスと可用性を向上させます。

負荷分散サービスの分類

前述の負荷分散サービスは、グローバルかリージョンか、また HTTP(S) か非 HTTP(S) かという 2 つの方法で分類できます。

グローバルかリージョンか

グローバルな負荷分散サービスは、リージョンのバックエンド、クラウド、またはハイブリッド オンプレミス サービス間でトラフィックを分散します。 これらのサービスは、エンドユーザーのトラフィックを、最も近い使用可能なバックエンドにルーティングします。 可用性とパフォーマンスを最大化するために、サービスの信頼性またはパフォーマンスの変化にも反応します。 異なるリージョン/地理的地域にまたがってホストされているアプリケーションのスタンプ、エンドポイント、またはスケール ユニット間で負荷を分散するシステムと考えることができます。

これに対して、リージョン負荷分散サービスでは、仮想ネットワーク内の複数の仮想マシン (VM) にわたって、または 1 つのリージョン内のゾーンおよびゾーン冗長サービス エンドポイントにトラフィックを分散します。 仮想ネットワークにあるリージョン内の VM、コンテナー、またはクラスター間で負荷を分散するシステムと考えることができます。

HTTP(S) か非 HTTP(S) か

HTTP(S) 負荷分散サービスは、HTTP(S) トラフィックのみを受け入れるレイヤー 7 のロード バランサーです。 Web アプリケーションまたはその他の HTTP(S) エンドポイントを対象としています。 SSL オフロード、Web アプリケーション ファイアウォール、パスベースの負荷分散、セッション アフィニティなどの機能が含まれます。

これに対して、非 HTTP(S) 負荷分散サービスでは、非 HTTP(S) トラフィックを処理できます。これは、非 Web ワークロードに推奨されます。

次の表では、これらの分類に基づいて各 Azure 負荷分散サービスをまとめています。

サービス グローバル/リージョン 推奨されるトラフィック
Azure Front Door グローバル HTTP(S)
Traffic Manager グローバル 非 HTTP(S)
Application Gateway 地域 HTTP(S)
Azure Load Balancer リージョンまたはグローバル 非 HTTP(S)

Azure の負荷分散オプションの選択

適切な負荷分散オプションを選択する際には、いくつかの重要な要素を考慮する必要があります。

  • トラフィックの種類 - Web アプリケーション向けか? 公開されているアプリケーションか、非公開のアプリケーションか?
  • スコープ - 1 つの仮想ネットワーク内の複数の仮想マシンやコンテナーにわたって、または複数のリージョンにわたって、あるいはその両方で負荷分散を行う必要があるか? (上記の「グローバルかリージョンか」を参照してください)
  • 可用性 - そのサービスのサービス レベル アグリーメント (SLA) は何か?
  • コスト - 実際のサービス自体のコストに加えて、そのサービス上に構築されたソリューションを管理して保守するための運用コストを考慮してください。 「負荷分散の価格」を参照してください。
  • 機能と制限事項 - 各サービスで提供される機能と利点、およびその制限事項は何か? 負荷分散の制限に関するページを参照してください。

次のフローチャートは、一連の主な判定基準を経ておすすめに到達することで、ご使用のアプリケーションに最も適した負荷分散ソリューションを選択するのに役立ちます。

flow chart to help select a load-balancing solution for your application.

すべてのアプリケーションには固有の要件があるため、このフローチャートと提案されたおすすめを出発点として使用し、ご使用の環境に最適なオプションを選択するために、より詳細な評価をご自身で実行する必要があります。

アプリケーションが複数のワークロードで構成されている場合は、それぞれのワークロードを個別に評価します。 完全なソリューションに、複数の負荷分散ソリューションを組み込むことができます。

Azure portal を使用した負荷分散ソリューションの選択

Azure portal の Azure の負荷分散に関するページを使用して、ご自身のビジネス ニーズに適した負荷分散ソリューションを作成できます。 Azure の負荷分散には、前述のワークフロー図に記載されている意思決定クエリが含まれています。

  • Azure portal (https://portal.azure.com ) にサインインします。

  • ページ上部の検索ボックスに「load balancing」と入力します。 検索結果に [負荷分散 - 選択に関するヘルプ (プレビュー)] が表示されたら、それを選択します。

    Azure portal screenshot of Load balancing - help me choose.

  • このページの質問に「はい」または「いいえ」で回答し、おすすめのソリューションを確認します。 最終的におすすめされるソリューションは、複数の負荷分散サービスの組み合わせである可能性があることに留意してください。

    Azure portal screenshot load balancing help me choose.

  • 回答に応じて、負荷分散サービスの一覧が変わります。

    Azure portal screenshot Load balancing help me choose.

  • オプションで、[サービス比較] タブまたは [チュートリアル] タブを選択して、さまざまな負荷分散サービスの詳細とトレーニングを参照することもできます。

次は、Azure の主な負荷分散サービスについて、それぞれ詳しく見て行きましょう。

知識を確認

1.

あるエンジニアが利用しているセキュリティで保護された Web アプリケーションに大量のトラフィックが発生しており、ロード バランサーを使用してそのワークロードを分散する必要があります。 この種類のトラフィックはどのロード バランサーでサポートされますか?

2.

Web アプリケーションのグローバル バックエンドとの間でトラフィックを分散させるのは、どの種類の負荷分散サービスですか?