負荷分散とコンテンツ配信は、Web アプリケーションのパフォーマンスと信頼性を最適化する上で重要なコンポーネントです。 負荷分散により、受信ネットワーク トラフィックが複数のサーバーまたはサービスに均等に分散され、単一サーバーが要求に圧倒されるのを防ぐことができます。 また、コンテンツ配信では、複数の場所にコンテンツをキャッシュして配布することで、ユーザーへのコンテンツの配信が最適化され、待機時間が短縮され、パフォーマンスが向上します。 これら 2 つの概念を組み合わせることで、アプリケーションの可用性が高く、応答性が高く、さまざまなレベルのトラフィックを処理できるようになります。
この記事では、Azure のサービス (Azure Application Gateway、Azure Load Balancer、Azure Front Door) のコンテキストでの負荷分散とコンテンツ配信の概要について説明します。 ニーズに適したソリューションを選択するのに役立つ主要なサービスとカテゴリについて説明します。
ソリューションの選択
負荷分散とコンテンツ配信に適したソリューションを選択することは、Web アプリケーションとサービスのシームレスな運用を保証するために不可欠です。 グローバルな e コマース プラットフォームが、製品に同時にアクセスする何百万人ものユーザーを処理する必要があるシナリオを想像してみてください。 または、分散チームのセキュリティで保護されたアクセスを必要とする社内アプリケーションを検討します。 各ユース ケースでは、トラフィックのバランスを効率的に調整し、待機時間を最小限に抑え、トラフィックの種類、可用性、コストに基づいてセキュリティを強化する、カスタマイズされたソリューションが必要です。
負荷分散またはコンテンツ配信ソリューションを選択する場合は、次の要因を考慮してください。
- トラフィックの種類 - web HTTP(S) アプリケーションか? パブリック向けまたはプライベートのアプリケーションか。
- グローバルとリージョンの比較: 単一仮想ネットワーク内の仮想マシンまたはコンテナーを負荷分散する必要はありますか。またはリージョン間でスケール ユニットとデプロイを負荷分散する必要はありますか。またはその両方ですか。
- 可用性: ソリューションに必要な サービス レベル アグリーメント は何ですか?
- コスト: 詳細については、「Azure の価格」を参照してください。 サービス自体のコストのほか、そのサービスに構築されているソリューションを管理するための運用コストを考慮してください。
- 機能: ソリューションに必要な機能は何ですか? たとえば、SSL オフロード、URL ベースのルーティング、Web アプリケーション ファイアウォールが必要ですか?
Azure には、さまざまなニーズとシナリオに対応する負荷分散サービスとコンテンツ配信サービスがいくつか用意されています。
Azure Application Gateway
Azure Application Gateway は、さまざまなレイヤー 7 負荷分散機能と Web アプリケーション ファイアウォール機能を提供する、サービスとしてのアプリケーション配信コントローラーを提供します。 これを使用して、パブリック ネットワーク空間から、リージョン内のプライベート ネットワーク空間でホストされている Web サーバーに移行します。
使用例
- Web トラフィックの負荷分散: アプリケーション 層 (OSI レイヤー 7) で Web トラフィック ロード バランサーとして機能し、URL パスやホスト ヘッダーなどの HTTP 要求属性に基づいてルーティングを決定します。
- SSL 終了: バックエンド サーバーから SSL 復号化をオフロードし、負荷を軽減し、パフォーマンスを向上させます。
- Web アプリケーション ファイアウォール (WAF): SQL インジェクションやクロスサイト スクリプティングなど、一般的な Web の脆弱性や攻撃に対する保護を提供します。
- URL ベースのルーティング: URL に基づいて異なるバックエンド プールにトラフィックをルーティングします。これは、マイクロサービス アーキテクチャに役立ちます。
Azure Load Balancer(アジュールロードバランサー)
Azure Load Balancer は、すべての UDP および TCP プロトコルに対して、高パフォーマンスで超低待機時間のレイヤー 4 負荷分散サービス (受信と送信) です。 ロード バランサーは、ソリューションの高可用性を確保しながら、1 秒あたり何百万もの要求を処理します。 Azure Load Balancer は、ゾーン冗長であるため、可用性ゾーン全体で高可用性を確保します。 リージョン展開トポロジとグローバル トポロジの両方をサポート します。
使用例
- トラフィックの分散: ハッシュベースの負荷分散アルゴリズムを使用して、仮想マシン (VM) や仮想マシン スケール セットなどのバックエンド リソースのグループ全体に受信ネットワーク トラフィックを効率的に分散します。
- 高可用性: ゾーン内およびゾーン間でトラフィックを分散することで、アプリケーションの可用性を向上させます。
- 内部負荷分散またはパブリック負荷分散: 内部 (仮想ネットワーク内) とパブリック (インターネットに接続) 負荷分散シナリオの両方をサポートします。
- 待機時間が短く、スループットが高い: ゲームやリアルタイム通信アプリなど、待機時間が短く高スループットを必要とするアプリケーションに最適です。
注
Azure Container Apps や Azure Kubernetes Service などのクラスタリング テクノロジには、主に独自のクラスター境界のスコープ内で動作する負荷分散コンストラクトが含まれており、準備と正常性プローブに基づいて使用可能なアプリケーション インスタンスにトラフィックをルーティングします。 これらの負荷分散オプションについては、この記事では説明しません。
Azure Front Door(アジュール フロント ドア)
Azure Front Door は、Web アプリケーション向けのグローバル負荷分散およびサイト アクセラレーション サービスを提供するアプリケーション配信ネットワークです。 SSL オフロード、パスベースのルーティング、高速フェールオーバー、キャッシュなどのレイヤー 7 機能をアプリケーションに提供して、アプリケーションのパフォーマンスと高可用性を向上させます。
活用事例
- グローバル コンテンツ配信: Microsoft のグローバル エッジ ネットワークを使用して、低待機時間でコンテンツとアプリケーションをグローバルに配信します。
- アプリケーション高速化: 分割 TCP 接続やエニーキャスト ネットワークなどの機能を使用して、アプリケーションのパフォーマンスを向上させます。
- セキュリティ: DDoS 攻撃に対するプラットフォーム レベルの保護を提供し、セキュリティを強化するために Web アプリケーション ファイアウォールと統合します。
- 最新のインターネット優先アーキテクチャ: 動的で高品質なデジタル エクスペリエンスと、自動化されたセキュリティで保護されたプラットフォームを備えた最新のアーキテクチャをサポートします。
サービスの組み合わせ
これらのサービスを組み合わせて使用すると、特定の要件を満たす包括的な負荷分散とコンテンツ配信ソリューションを作成できます。 たとえば、次のようになります。
- 多層アプリケーション
- リージョン バックエンド サービスを使用するグローバル Web アプリケーション
- eコマース プラットフォーム
- メディア ストリーミング サービス
Azure portal での操作
Azure portal では、 負荷分散サービスとコンテンツ配信サービスを選択するための一元的なエクスペリエンスが提供されます。 ロード バランサー、アプリケーション ゲートウェイ、およびフロント ドアは、ポータルから作成および管理できます。 ポータルには、ルーティング規則、正常性プローブ、その他の設定の設定など、サービスを構成するためのガイド付きエクスペリエンスが用意されています。
サービスのデプロイと共に、各サービスをポータルから管理できます。 サブスクリプションにデプロイされているすべてのアプリケーション ゲートウェイ、ロード バランサー、フロント ドア リソースを 1 つのビューで表示できます。 その後、管理するリソースを選択できます。