負荷分散について
負荷分散とは、バックエンド コンピューティング リソースまたはサーバーのグループ全体にわたってワークロード (つまり、受信ネットワークトラフィック) を均等に分散することを指します。 負荷分散は、リソースの使用を最適化し、スループットを最大化し、応答時間を最小化し、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) は何か?
- コスト - 実際のサービス自体のコストに加えて、そのサービス上に構築されたソリューションを管理して保守するための運用コストを考慮してください。 「負荷分散の価格」を参照してください。
- 機能と制限事項 - 各サービスで提供される機能と利点、およびその制限事項は何か? 負荷分散の制限に関するページを参照してください。
このフローチャートは、ご使用のアプリケーションに最適な負荷分散ソリューションを選択するのに役立ちます。
すべてのアプリケーションに固有の要件がある場合は、このフローチャートと推奨される推奨事項は、単なる出発点として使用する必要があります。
アプリケーションが複数のワークロードで構成されている場合は、それぞれのワークロードを個別に評価します。 完全なソリューションに、複数の負荷分散ソリューションを組み込むことができます。
Azure portal を使用した負荷分散ソリューションの選択
Azure portal の Azure の負荷分散に関するページを使用して、ご自身のビジネス ニーズに最適な負荷分散ソリューションを作成できます。
Azure portal (https://portal.azure.com ) にサインインします。
ページ上部の検索ボックスに「load balancing」と入力します。 検索結果に [負荷分散 - 選択に関するヘルプ] が表示されたら、それをクリックします。
このページの質問に「はい」または「いいえ」で回答し、おすすめのソリューションを確認します。 最終的におすすめされるソリューションは、複数の負荷分散サービスの組み合わせである可能性があります。
回答に応じて、負荷分散サービスの一覧が変わることがあります。
オプションで、[サービス比較] タブまたは [チュートリアル] タブをクリックして、さまざまな負荷分散サービスの詳細とトレーニングを参照することもできます。
次は、Azure の主な負荷分散サービスについて、それぞれ詳しく見て行きましょう。