Azure 負荷分散を理解する

負荷分散 とは、複数のコンピューティング リソース間でのワークロードの分散を指します。 負荷分散は、リソースの使用を最適化し、スループットを最大化し、応答時間を最小化し、1 つのリソースの過負荷を回避することを目的としています。 また、冗長なコンピューティング リソース間でワークロードを共有することで、可用性を向上させることもできます。

Azure には、Application Gateway、フロント ドア、ロード バランサー、Azure Traffic Manager の複数のコンピューティング リソースにワークロードを分散するために使用できるさまざまな負荷分散サービスが用意されています。

この記事では、Azure portal の Azure 負荷分散ハブ ページを使用して、ビジネス ニーズに適した負荷分散ソリューションを決定する方法について説明します。

概要

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

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

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

  • リージョン の負荷分散サービスは、仮想ネットワーク内のトラフィックを、リージョン内の仮想マシン (VM) 間、またはゾーンおよびゾーン冗長のサービス エンドポイント間で分散します。 仮想ネットワークにあるリージョン内の 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 の負荷分散サービス

Azure で現在使用できる主な負荷分散サービスを次に示します。

Front Door は、Web アプリケーション向けのグローバル負荷分散およびサイト アクセラレーション サービスを提供するアプリケーション配信ネットワークです。 SSL オフロード、パスベースのルーティング、高速フェールオーバー、キャッシュなどのレイヤー 7 機能をアプリケーションに提供して、アプリケーションのパフォーマンスと可用性を向上させます。

注意

現時点では、Azure Front Door では Web ソケットをサポートしていません。

Traffic Manager は、世界中の Azure リージョン間でサービスへのトラフィックを最適に配分しつつ、高可用性と応答性を実現する DNS ベースのトラフィック ロード バランサーです。 Traffic Manager は DNS ベースの負荷分散サービスであるため、負荷分散はドメイン レベルでのみ行われます。 そのため、DNS キャッシュに関連した、また DNS TTL を遵守しないシステムに関連した一般的な課題が理由で、Front Door ほど高速なフェールオーバーはできません。

Application Gateway は、アプリケーション配信コントローラー (ADC) をサービスとして提供することで、さまざまなレイヤー 7 負荷分散機能を利用できるようにします。 これを使用して、CPU を集中的に使用する SSL 終了をゲートウェイにオフロードし、Web ファームの生産性を最適化できます。

Azure Load Balancer は、すべての UDP と TCP プロトコル向けの高パフォーマンス、超低待機時間のレイヤー 4 負荷分散サービス (受信および送信) です。 これは、ソリューションの高可用性を保証しながら、1 秒あたり数百万の要求を処理するように構築されています。 Azure Load Balancer は、ゾーン冗長であるため、Availability Zones 全体で高可用性を確保します。

Azure portal を使用して負荷分散ソリューションを選択する

Azure portal の Azure 負荷分散に関するページを使用して、ビジネス ニーズに適切な負荷分散ソリューションを作成できます。 Azure 負荷分散には、次のセクションのワークフローで説明する意思決定クエリが含まれており、次のようにアクセスできます。

  1. Azure Portal https://portal.azure.com にサインインします。

  2. ポータルの上部にある [リソース、サービス、ドキュメントの検索] ボックスで、「load balancing」と入力します。 検索結果に Load balancing が表示されたら、それを選択します。

    負荷分散の検索 - Azure portal のスクリーンショット

    注意

    負荷分散ソリューションの選択で考慮されるいくつかの要素の詳細については、この記事の「Azure での負荷分散のデシジョン ツリー」をご覧ください。

  3. [負荷分散 - 選択に関するヘルプ (プレビュー)] ページで、次のいずれかの操作を行います。

    • ビジネスに適した負荷分散ソリューションを見つけるには、既定の [選択に関するヘルプ] タブの指示に従います。

      Azure 負荷分散ソリューションを選択する - Azure portal のスクリーンショット

    • 各負荷分散サービスのサポートされているプロトコルとサービス機能については、 [サービスの比較] タブを選択してください。

    • 負荷分散サービスの無料トレーニングにアクセスするには、 [チュートリアル] タブを選択します。

参照アーキテクチャの例

次の表に、ソリューションとして使用される負荷分散サービスに基づくさまざまなアーキテクチャ参照記事の一覧を示します。

サービス [アーティクル] 説明
Load Balancer 可用性ゾーン間での仮想マシン (VM) の負荷分散 可用性ゾーン間の負荷分散 VM は、データセンター全体に及ぶ珍しい障害や損失からアプリとデータを保護するために使用します。 ゾーン冗長では、1 つまたは複数の可用性ゾーンで障害が発生しても対応可能であり、リージョン内に正常なゾーンが 1 つでも残っていれば、データ パスは存続します。
Front Door 低コストのサーバーレス Azure サービスを使用して、リアルタイムで位置情報を共有する Azure Front Door を使用して、1 つのリージョンにデプロイするよりも、アプリケーションの可用性を高めることができます。 地域的な停止がプライマリ リージョンに影響する場合は、Front Door を使用して、セカンダリ リージョンにフェールオーバーできます。
Application Gateway IaaS:Web アプリケーションとリレーショナル データベース 複数のゾーンに分散したリソースを使用して、IaaS (サービスとしてのインフラストラクチャ) Web アプリケーションと SQL Server データベースをホストするための高可用性 (HA) アーキテクチャを提供する方法について説明します。
Traffic Manager 高可用性とディザスター リカバリー用にビルドされた多層 Web アプリケーション 高可用性とディザスター リカバリー用にビルドされた、回復性がある多層 Web アプリケーションをデプロイします。 プライマリ リージョンが使用できなくなった場合、Traffic Manager はセカンダリ リージョンへのフェールオーバーを実行します。
Azure Front Door + Application Gateway Azure のマルチテナント SaaS Front Door と Application Gateway の組み合わせを含むマルチテナント ソリューションを使用します。 Front Door は、リージョン間でトラフィックを負荷分散します。Application Gateway は、アプリケーション内部で、クライアントのビジネス ニーズを満たすさまざまなサービスにトラフィックをルーティングおよび負荷分散します。
Traffic Manager + ロード バランサー マルチリージョン n 層アプリケーション Traffic Manager を使用して受信要求をプライマリ リージョンにルーティングするマルチリージョンの N 層アプリケーションで、そのリージョンが使用できなくなった場合、Traffic Manager はセカンダリ リージョンにフェールオーバーします。
Traffic Manager + Application Gateway Traffic Manager と Application Gateway を使用したマルチリージョンの負荷分散 高可用性と堅牢なディザスター リカバリー インフラストラクチャを実現するために、Web ワークロードを提供し、回復性の高い多層アプリケーションを複数の Azure リージョンにデプロイする方法について説明します。

Azure での負荷分散のデシジョン ツリー

負荷分散オプションを選択した場合、Azure 負荷分散の [選択に関するヘルプ] 既定タブを選択すると、次のような要因が考慮されます。

  • トラフィックの種類。 Web (HTTP/HTTPS) アプリケーションか。 パブリック向けまたはプライベートのアプリケーションか。
  • グローバルかリージョンか。 仮想ネットワーク内の VM またはコンテナーを負荷分散する必要があるか、またはリージョン間でスケール ユニット/デプロイを負荷分散する必要があるか、あるいはその両方か。
  • 可用性。 サービス SLA はどうなっているか。
  • コスト。 「Azure の価格」を参照してください。 サービス自体のコストのほか、そのサービスに構築されているソリューションを管理するための運用コストを考慮してください。
  • 機能と制限。 各サービスの全体的な制限事項。 サービスの制限に関するページを参照してください。

次のフローチャートは、お使いのアプリケーションに適した負荷分散サービスを選択するうえで役立ちます。 このフローチャートは、推奨事項を導き出すための一連の主要な意思決定基準を示しています。

このフローチャートを原案として使用します。 すべてのアプリケーションには固有の要件があるため、推奨事項は原案として使用してください。 次に、より詳細な評価を実行します。

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

Azure での負荷分散のデシジョン ツリー

定義

  • インターネット接続。 インターネットからパブリックにアクセスできるアプリケーション。 ベスト プラクティスとして、アプリケーション所有者は、制限の厳しいアクセス ポリシーを適用します。または、Web アプリケーション ファイアウォールや DDoS 保護などのサービスをセットアップすることによってアプリケーションを保護します。

  • グローバル。 エンドユーザーまたはクライアントは、狭い地理的領域を超えて分布しています。 たとえば、複数の大陸、大陸内の複数の国/地域、または大きな国/地域内の複数の大都市圏にまたがってユーザーが分布する場合です。

  • PaaS。 マネージド ホスティング環境を提供するサービスとしてのプラットフォーム (PaaS) サービス。この環境では、VM やネットワーク リソースを管理せずにアプリケーションをデプロイできます。 この場合の PaaS は、統合された負荷分散をリージョン内で提供するサービスを指します。 コンピューティング サービスの選択 – スケーラビリティに関するページを参照してください。

  • IaaS。 サービスとしてのインフラストラクチャ (IaaS) は、必要な VM を、関連するネットワークおよびストレージ コンポーネントと共にプロビジョニングするコンピューティング オプションです。 IaaS アプリケーションでは、Azure Load Balancer を使用して、仮想ネットワークの内部で負荷を分散する必要があります。

  • アプリケーション層の処理 は、仮想ネットワーク内での特別なルーティングを指します。 たとえば、複数の VM または仮想マシン スケール セットをまたいだ、仮想ネットワーク内でのパスベースのルーティングが該当します。 詳細については、「Front Door の背後に Application Gateway をデプロイする必要はありますか?」を参照してください。

次のステップ