負荷分散とは、複数のコンピューティング リソース間でのワークロードの分散を指します。 負荷分散は、リソースの使用を最適化し、スループットを最大化し、応答時間を最小化し、1 つのリソースの過負荷を回避することを目的としています。 また、冗長なコンピューティング リソース間でワークロードを共有することで、可用性を向上させることもできます。
Azure には、ワークロードを複数のコンピューティング リソースに分散するために使用できるさまざまな負荷分散サービスが用意されています。 これらのリソースには、Azure Application Gateway、Azure Front Door、Azure Load Balancer、Azure Traffic Manager などがあります。
この記事では、Azure portal の [Load balancing](負荷分散) ページを使用して、ビジネス ニーズに適した負荷分散ソリューションを決定する方法について説明します。
サービスの分類
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) |
Azure の Traffic Manager | グローバル | 非 HTTP(S) |
Azure Application Gateway | 地域 | HTTP(S) |
Azure Load Balancer | リージョンまたはグローバル | 非 HTTP(S) |
Azure の負荷分散サービス
Azure で現在使用できる主な負荷分散サービスを次に示します。
Azure Front Door は、Web アプリケーション向けのグローバル負荷分散およびサイト アクセラレーション サービスを提供するアプリケーション配信ネットワークです。 SSL オフロード、パスベースのルーティング、高速フェールオーバー、キャッシュなどのレイヤー 7 機能をアプリケーションに提供して、アプリケーションのパフォーマンスと高可用性を向上させます。
注意
現時点では、Azure Front Door では Web ソケットをサポートしていません。
Traffic Manager は、世界中の Azure リージョン間でサービスへのトラフィックを最適に配分しつつ、高可用性と応答性を実現する DNS ベースのトラフィック ロード バランサーです。 Traffic Manager は DNS ベースの負荷分散サービスであるため、負荷分散はドメイン レベルでのみ行われます。 そのため、DNS キャッシュに関連した、また DNS TTL を遵守しないシステムに関連した一般的な課題が理由で、Azure Front Door ほど高速なフェールオーバーはできません。
Application Gateway は、アプリケーション配信コントローラーをサービスとして提供することで、さまざまなレイヤー 7 負荷分散機能を利用できるようにします。 これを使用して、CPU を集中的に使用する SSL 終了をゲートウェイにオフロードし、Web ファームの生産性を最適化できます。
Load Balancer は、すべての UDP と TCP プロトコル向けの高パフォーマンス、超低待機時間のレイヤー 4 負荷分散サービス (受信および送信) です。 これは、ソリューションの高可用性を保証しながら、1 秒あたり数百万の要求を処理するように構築されています。 Azure Load Balancer は、ゾーン冗長であるため、可用性ゾーン全体で高可用性を確保します。 リージョン デプロイ トポロジと リージョン間トポロジの両方をサポートします。
Azure portal を使用して負荷分散ソリューションを選択する
Azure portal の [Load balancing](負荷分散) ページを使用すると、ガイドに従ってビジネス ニーズに適切な負荷分散ソリューションを作成できます。 Load Balancer には、次のセクションのワークフローで説明する意思決定クエリが含まれています。
Azure portal にサインインします。
ポータルの上部にある [リソース、サービス、ドキュメントの検索] ボックスで、「load balancing」と入力します。 検索結果に Load balancing が表示されたら、それを選択します。
Note
負荷分散ソリューションの選択で考慮されるいくつかの要素の詳細については、この記事の「Azure での負荷分散のデシジョン ツリー」を参照してください。
[負荷分散 - 選択に関するヘルプ (プレビュー)] ページで、次のいずれかのオプションを使用します。
参照アーキテクチャの例
次の表に、ソリューションとして使用される負荷分散サービスに基づくさまざまなアーキテクチャ参照記事の一覧を示します。
サービス | [アーティクル] | 説明 |
---|---|---|
Load Balancer | 可用性ゾーン間での仮想マシン (VM) の負荷分散 | 可用性ゾーン間の負荷分散 VM は、データセンター全体に及ぶ珍しい障害や損失からアプリとデータを保護するのに役立ちます。 ゾーン冗長では、1 つまたは複数の可用性ゾーンで障害が発生しても対応可能であり、リージョン内に正常なゾーンが 1 つでも残っていれば、データ パスは存続します。 |
Azure Front Door | 低コストのサーバーレス Azure サービスを使用して、リアルタイムで位置情報を共有する | Azure Front Door を使用して、1 つのリージョンにデプロイするよりも、アプリケーションの可用性を高めることができます。 リージョンの障害がプライマリ リージョンに影響する場合は、Azure Front Door を使用して、セカンダリ リージョンにフェールオーバーできます。 |
Traffic Manager | 高可用性とディザスター リカバリー用にビルドされた多層 Web アプリケーション | 高可用性とディザスター リカバリー用にビルドされた、回復性がある多層 Web アプリケーションをデプロイします。 プライマリ リージョンが使用できなくなった場合、Traffic Manager はセカンダリ リージョンへのフェールオーバーを実行します。 |
Azure Front Door + Application Gateway | Azure のマルチテナント SaaS | Azure Front Door と Application Gateway の組み合わせを含むマルチテナント ソリューションを使用します。 Azure Front Door は、リージョン間でトラフィックを負荷分散するのに役立ちます。 Application Gateway は、アプリケーション内部のトラフィックを、クライアントのビジネス ニーズを満たすさまざまなサービスにルーティングし、負荷分散します。 |
Traffic Manager + ロード バランサー | マルチリージョン n 層アプリケーション | Traffic Manager を使用して、受信要求をプライマリ リージョンにルーティングする、マルチリージョン n 層アプリケーション。 そのリージョンが使用できなくなった場合、Traffic Manager はセカンダリ リージョンへのフェールオーバーを実行します。 |
Traffic Manager + Application Gateway | Traffic Manager と Application Gateway を使用したマルチリージョンの負荷分散 | 高可用性と堅牢なディザスター リカバリー インフラストラクチャを実現するために、Web ワークロードを提供し、回復性の高い多層アプリケーションを複数の Azure リージョンにデプロイする方法について説明します。 |
Azure での負荷分散のデシジョン ツリー
負荷分散オプションを選択する場合は、[Load balancing](負荷分散) ページの規定の [選択に関するヘルプ] タブを選択するときに、次の要因を考慮してください。
- トラフィックの種類: Web (HTTP/HTTPS) アプリケーションか。 パブリック向けまたはプライベートのアプリケーションか。
- グローバルとリージョン: 仮想ネットワーク内の VM またはコンテナーを負荷分散する必要があるか、またはリージョン間でスケール ユニット/デプロイを負荷分散する必要があるか、あるいはその両方か。
- 可用性: サービス レベル アグリーメントは何か。
- コスト: 詳細については、「Azure の価格」を参照してください。 サービス自体のコストのほか、そのサービスに構築されているソリューションを管理するための運用コストを考慮してください。
- 機能と制限: 各サービスの全体的な制限事項は何ですか。 詳細については、サービスの制限に関する記事を参照してください。
次のフローチャートは、ご使用のアプリケーションに適した負荷分散サービスを選択するのに役立ちます。 このフローチャートは、推奨事項を導き出すための一連の主要な意思決定基準を示しています。
このフローチャートを原案として使用します。 すべてのアプリケーションには固有の要件があるため、推奨事項は原案として使用してください。 次に、より詳細な評価を実行します。
アプリケーションが複数のワークロードで構成されている場合は、それぞれのワークロードを個別に評価します。 完全なソリューションに、複数の負荷分散ソリューションを組み込むことができます。
定義
- インターネット接続: インターネットからパブリックにアクセスできるアプリケーション。 ベスト プラクティスとして、アプリケーション所有者は、制限の厳しいアクセス ポリシーを適用します。または、Web アプリケーション ファイアウォールや DDoS 保護などのサービスをセットアップすることによってアプリケーションを保護します。
- グローバル: エンドユーザーまたはクライアントが、狭い地理的領域を超えて存在しています。 たとえば、複数の大陸、大陸内の複数の国/地域、または大きな国/地域内の複数の大都市圏にまたがってユーザーが分布する場合です。
- サービスとしてのプラットフォーム (PaaS): マネージド ホスティング環境が提供されます。この環境では、VM やネットワーク リソースを管理せずにアプリケーションをデプロイできます。 この場合の PaaS は、統合された負荷分散をリージョン内で提供するサービスを指します。 詳細については、コンピューティング サービスの選択 - スケーラビリティに関するページを参照してください。
- Azure Kubernetes Service (AKS): コンテナー化されたアプリケーションをデプロイおよび管理できます。 AKS からは、サーバーレスの Kubernetes、統合された継続的インテグレーションと継続的デリバリー エクスペリエンス、エンタープライズ レベルのセキュリティとガバナンスが提供されます。 AKS アーキテクチャ リソースの詳細については、Azure Kubernetes Service アーキテクチャ デザインに関するページを参照してください。
- サービスとしてのインフラストラクチャ (IaaS): 必要な VM を、関連するネットワークおよびストレージ コンポーネントと共にプロビジョニングするコンピューティング オプション。 IaaS アプリケーションでは、Load Balancer を使用して、仮想ネットワークの内部で負荷を分散する必要があります。
- アプリケーション層の処理: 仮想ネットワーク内での特別なルーティングを指します。 たとえば、複数の VM または仮想マシン スケール セットをまたいだ、仮想ネットワーク内でのパスベースのルーティングが該当します。 詳細については、「Azure Front Door の背後に Application Gateway をデプロイする必要はありますか?」を参照してください。
- パフォーマンスの高速化: Web アクセスを高速化するフィーチャーを指します。 パフォーマンスの高速化は、コンテンツ配信ネットワーク (CDN) または最適化されたポイント オブ プレゼンス イングレスを使用して、宛先ネットワークへの高速クライアント オンボードを行うことで実現できます。 Azure Front Door では、CDN と Anycast のトラフィックアクセラレーションの両方がサポートされています。 両方のフィーチャーのベネフィットは、アーキテクチャでApplication Gatewayを使用する場合と使用しない場合に得られます。