皆さんこんにちは。横山です。

今回は、現在勉強中のネットワーク関連の内容から、負荷分散について備忘録を残します。

負荷分散とは

負荷分散とは、複数のサーバーやリソースにトラフィックや処理を均等に分ける技術です。これにより、システム全体のパフォーマンスや可用性が向上し、特定のサーバーやサービスが過負荷にならないようにします。

目的

  • 負荷の均等化: サーバーやサービスが同時に多くのリクエストを処理する場合、負荷分散はそれらのリクエストを複数のサーバーに均等に分けます。これにより、1つのサーバーだけに負担が集中することを防ぎます。
  • 可用性の向上: もし1つのサーバーがダウンしても、他のサーバーにトラフィックを転送することができるので、サービスの中断を防ぎます。

主な負荷分散サービス

Azure は、用途に応じたさまざまな負荷分散オプションを提供しています。以下のサービスが代表的なものです。

1. Load Balancer

Load Balancerは、Azure 上で最も基本的な負荷分散サービスです。主にレイヤー4(TCP/UDP)で動作し、インターネットトラフィックや内部トラフィックの分散を行います。

【特徴】

  • 高可用性:Load Balancerは、単一の障害点を排除し、トラフィックを均等に分散することで、高可用性を実現します。
  • スケーラビリティ:必要に応じて、バックエンドプールにサーバーを追加できます。
  • アベイラビリティゾーン: 複数のアベイラビリティゾーンにまたがって冗長性を提供し、障害耐性を向上させます。

【使用ケース】

  • インターネット向け Web アプリケーション: 外部ユーザーからのリクエストを複数の Web サーバーに分散。
  • 内部アプリケーション:Azure 内で、複数の仮想マシン間でのトラフィック分散。

2. Application Gateway

Application Gateway は、アプリケーション層(レイヤー7)で動作する負荷分散サービスです。HTTP および HTTPS トラフィックに対して詳細なトラフィックのルーティングを行います。

【特徴】

  • Web アプリケーションファイアウォール(WAF)機能:セキュリティを強化し、SQL インジェクションやクロスサイトスクリプティング(XSS)などの攻撃からアプリケーションを保護します。
  • URL ベースのルーティング: 特定の URL パターンに基づいてトラフィックを異なるバックエンドにルーティングできます。
  • SSL オフロード: Application Gateway で SSL 接続を終端し、その後の通信を HTTP で行うことができます。

【使用ケース】

  • ウェブアプリケーション: 特定の URL に基づいてトラフィックを異なるサーバーに分散したい場合に有効です。
  • セキュリティ: WAF 機能を活用してアプリケーションを保護し、攻撃を防止。

3. Azure Front Door

Azure Front Door は、グローバルなアプリケーション配信ネットワーク(ADN)サービスで、エンドユーザーとアプリケーション間のトラフィックの最適化を行います。特に、世界中の複数のリージョンにまたがるアプリケーションに適しています。

【特徴】

  • グローバルな負荷分散: 世界中のエンドユーザーからのリクエストを最適なバックエンドサーバーに振り分けます。
  • エンドユーザー向けの最適化: エンドユーザーが最も近いリージョンからコンテンツを取得できるようにし、パフォーマンスの向上を図ります。
  • SSL オフロード: SSL 接続の処理を Azure Front Door が担当し、バックエンドサーバーの負担を軽減します。

【使用ケース】

  • グローバルな Web サイトやアプリケーション:世界中に分散するユーザーに対して、高速でスムーズなアクセスを提供。
  • 高可用性: Azureリージョン間でのトラフィック分散により、障害が発生した場合でもサービスを継続。

4. Traffic Manager

Traffic Manager は、DNS ベースの負荷分散サービスで、異なる Azure リージョンにある複数のアプリケーションインスタンスにトラフィックを分散します。

【特徴】

  • DNS ベースのトラフィック管理:トラフィックの分散方法として DNS を使用し、特定のリージョンやサーバーにリクエストをルーティングします。
  • 柔軟な分散ポリシー:いくつかの分散方法(パフォーマンス、地理的ルーティング、重み付け)を選択できます。
  • 低遅延:最適なリージョンにトラフィックをルーティングすることで、エンドユーザーの遅延を最小化します。

【使用ケース】

  • リージョン間の負荷分散: 世界中のデータセンターにまたがるアプリケーションで、リージョンごとにトラフィックを振り分けたい場合に有効です。
  • 災害復旧(DR): 1つのリージョンがダウンした場合、別のリージョンにトラフィックを切り替え、サービスを継続できます。

Azure 負荷分散サービスの特徴をまとめた表

サービス 主な特徴 使用シナリオ グローバル/リージョン 推奨されるトラフィック
Load Balancer ・レイヤー4(TCP/UDP)負荷分散、シンプルで高速な転送を提供 ・内部サービスや、外部向けアプリケーションで高いスループットが求められる場合 ・単一リージョン内の Web アプリケーション
・ゲームサーバーやデータベースの接続要求
リージョンまたはグローバル 非 HTTP(S)
Application Gateway ・レイヤー7(HTTP/HTTPS)負荷分散- URLベースのルーティング、SSL オフロード
・WAF(Web アプリケーションファイアウォール)機能
・Web アプリケーション、特に URL パターンでトラフィックを分ける場合- セキュリティ強化が必要な場合 ・動的な Web サイトや API のトラフィック
・セキュリティの強化が求められるサイト
リージョン HTTP(S)
Azure Front Door ・グローバル負荷分散- 高速なコンテンツ配信、エッジロケーションの利用
・SSL オフロード、WAF 機能
・グローバルに分散するアプリケーションに対する最適化

・ユーザーの位置情報に基づき、最適なエッジロケーションからコンテンツを配信
・多国籍企業のWeb サイトやアプリケーション
・迅速なコンテンツ配信が求められる場合
グローバル HTTP(S)
Traffic Manager ・DNS ベースの負荷分散- 複数リージョン間でトラフィックを分散
・地理的なルーティング
・リージョン間でアプリケーションを冗長化する場合
・災害復旧(DR)のために使用する場合
・国際的な Web サイトやマルチリージョンアプリケーション
・災害復旧構成の設定
グローバル 非 HTTP(S)

まとめ

    Azure の負荷分散サービスは、それぞれ異なる特長を持っており、利用するシナリオに応じて最適な選択が必要です。
    アプリケーションの規模やセキュリティ要求、またグローバル/リージョンでの分散方法によって、どのサービスが最も効果的かが決まります。
    用途に合わせて、適切なサービスを選択することで、システムのパフォーマンスと可用性を最大化することができます。

    株式会社ページワン

    〒030-0823
    青森県青森市橋本二丁目13-5 グランスクエア青森 6F