Azure Managed Service Column <Azure運用コラム>

Azure Application Gatewayとは?負荷分散の考え方とWebアプリケーションの負荷分散について解説

Category: 入門編

2021.11.08

Azure で大量トラフィックを処理するには?負荷分散の仕組みについて解説

Web サイトで大量のトラフィックを処理するためには、処理の負荷分散を行う場合がありますが、負荷分散の仕組みについてどの程度ご存じでしょうか。クラウドにおいても、オンプレミスと同様にロードバランサーを配置する構成がスタンダードですが、Azure が提供するロードバランサー、Azure Application Gateway はアプリケーションレベルの負荷分散を実現するサービスです。

本記事では、負荷分散の基本を踏まえた上で、Azure Application Gateway の概要や機能とメリット、Azure が提供する別のロードバランシングサービスである Traffic ManagerAzure Load Balancer との違いについて解説します。

1. 負荷分散とは

システム開発に携わると、負荷分散やロードバランサーという言葉をよく耳にしますが、負荷分散とは具体的にどのようなものなのでしょうか。まずは負荷分散の仕組みについて解説します。

1.1 負荷分散とは

負荷分散とは、システムや Web サイトにかかるアクセスなどの負荷がなるべく均等になるように、機器やシステムを冗長化し、処理を分散して割り当てることを指します。そのような負荷の振り分けを行う機器やソフトウェアをロードバランサ( load balancer )と呼びます。

1.2 負荷分散の目的

負荷分散は、文字通り負荷の分散を行いますが、負荷分散の目的は下記の通りとなります。

  • 性能(パフォーマンス)の確保
  • 拡張性(スケーラビリティ)の確保
  • 可用性(アベイラビリティ)の確保

1.2.1 性能(パフォーマンス)の確保

システムやアプリケーションの処理性能を指します。負荷分散により複数のサーバーやシステムで処理を分担するため、安定した処理性能を確保することができます。

1.2.2 拡張性(スケーラビリティ)の確保

拡張性とは、システムを構成する機器やマシンリソースを増設等により拡張できる度合いを意味します。複数のサーバーやシステムで並列処理を行えるように設計することにより、システムの処理能力が不足した時に容易に拡張できるようになります。

1.2.3 可用性(アベイラビリティ)の確保

複数のサーバーやシステムで処理を並列化することで、サーバーや機器の単一障害に耐えられるようになります。また、ロードバランサーからサービスに対してヘルスチェックを行い、応答のないサーバーへ処理の振り分けを停止することでサービスの可用性を高めることができます。

1.3 負荷分散の手段

負荷分散には、大きく下記の手法があります。

  • サーバー負荷分散( SLB/Server Load Balancing )
  • 広域負荷分散( GSLB/Global Server Load Balancing )

1.3.1 サーバー負荷分散( SLB/Server Load Balancing )

サーバー負荷分散とは、同一ネットワーク上で、機器やサーバーへのアクセスを、複数の機器やサーバーに分散して処理させる手法です。同等の処理性能を持つ機器やサーバーを並列化し、ロードバランサーを介して処理分散を行います。ラウンドロビンや、重みづけラウンドロビン、最小接続数など、いくつかの分散アルゴリズムから選択または組み合わせて使用します。また、レイヤー 4( TCP/UDP レベル)で負荷分散を行う方式と、レイヤー 7(アプリケーションレベル)で負荷分散を行う方式があります。

1.3.2 広域負荷分散( GSLB/Global Server Load Balancing )

広域負荷分散とは、地理的に離れた複数のサイト、システム間でサーバー負荷分散を行う手法です。例えば、東京と大阪でロードバランシングを行い、アクセス元によって地理的に近いサイトへ誘導したり、障害発生時に東京→大阪へ切り替えたりすることでディザスタ・リカバリ(災害対策)にもなります。DNS を利用したロードバランシングがよく知られていますが、広域負荷分散の一種です。

2. Azure Application Gateway とは

Azure Application Gateway は、Microsoft Azure が提供している負荷分散サービスのひとつです。ここでは、Azure Application Gateway の概要と料金体系について解説します。

2.1 Azure Application Gateway とは

Azure Application Gateway とは、Microsoft Azure が提供している負荷分散サービスのひとつで、レイヤー 7(アプリケーションレイヤ)でサーバー負荷分散を行うサービスです。Web アプリケーションに対するトラフィックを管理できるロードバランサーで、URI パスやホストヘッダーなど、HTTP 要求の追加属性に基づいて負荷分散を行います。また、証明書をインポートして SSL オフロードを行うことも可能です。

2.2 Azure Application Gateway の料金体系

Azure Application Gateway の料金体系は基本的に従量課金制となっており、下記に基づいて課金されます。

  • Azure Application Gateway が利用可能となっている時間
  • Azure Application Gateway によって処理されたデータ量

3. Azure Application Gateway の機能とメリット

Azure Application Gateway を利用することでどのようなメリットが得られるのでしょうか。Azure Application Gateway の機能とメリット及び、Azure が提供している他の負荷分散サービスである Azure Load Balancer、Azure Traffic Manager との違いについて解説します。

3.1 Azure Application Gateway の機能とメリット

Azure Application Gateway の機能とメリットは下記の通りです。

  • サーバーの自動スケール
  • アプリケーションレベルの負荷分散
  • SSL オフロード
  • Web Application Firewall( WAF )による高いセキュリティ
  • Azure との緊密な統合

3.1.1 サーバーの自動スケール

Azure Application Gateway には自動スケーリング機能が備わっています。自動スケーリングにより、トラフィックの負荷パターンの変化に基づいて自動でサーバーのスケールアップまたはスケールダウンが可能です。

3.1.2 アプリケーションレベルの負荷分散

Azure Application Gateway はレイヤー 7(アプリケーションレイヤー)のロードバランサーです。アプリケーションレベルの負荷分散とルーティングを利用して、スケーラブルな高可用性 Web アプリケーション・Web サイトを構築することができます。

3.1.3 Web Application Firewall( WAF )による高いセキュリティ

Azure Application Gateway は WAF をデプロイすることができます。WAF をデプロイすることにより、SQL インジェクションやクロスサイト・スクリプティングなどの Web の脆弱性を突いた攻撃からアプリケーションを保護することができます。

3.1.4 Azure との緊密な統合

Azure Application Gateway は、Azure Virtual Machines(仮想マシン)や Azure App Service、Azure Monitor など複数の Azure サービスと統合されています。これらのサービスとシームレスな連携と監視も含めた一元管理が可能です。

3.2 Azure の他のロードバランサーとの違い

Azure には、Azure Application Gateway の他に下記のロードバランシングサービスを提供しています。それぞれのサービスの違いについて解説します。

  • Azure Load Balancer
  • Azure Traffic Manager

3.2.1 Azure Load Balancer

Azure Load Balancer は、レイヤー 4(トランスポートレイヤー)で動作する TCP/UDP 向けのロードバランサーです。Azure Virtual Machines や、仮想マシンスケールセット内のインスタンスへの通信の負荷分散を実現し、性能・可用性に優れたシステムを構築することができます。

Azure Application Gateway は HTTP/HTTPS など Web アプリケーションの通信の負荷分散を行いたい場合に利用し、Azure Load Balancer はパケット通信アプリケーションなど TCP/UDP の通信を負荷分散したい場合に利用するといった使い分けが可能です。

3.2.2 Azure Traffic Manager

Azure Traffic Manager とは、DNS ベースの広域負荷分散を行うサービスです。Azure Application Gateway はサーバー負荷分散のサービスであるため、負荷分散方式が異なります。Azure Traffic Manager を利用することで、インターネットに公開されている Web サイトや Web アプリケーションへの通信を、世界各国に存在する Azure リージョンへ負荷分散することができます。

4. まとめ

負荷分散は、大量のアクセスに対して、安定かつ継続的にサービスを提供するために必要な仕組みです。Azure は負荷分散サービスをいくつか提供しており、Azure Application Gateway はそのひとつです。ユーザーに提供するサービスや機能の要件に応じて、負荷分散サービスを使い分けることが重要です。

Azure設計・構築を相談する

Azure構築サービス

Azure構築サービス

Microsoft Azure を利用したシステムの設計・構築を代行します。お客様のご要件を実現する構成をご提案・実装いたします。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Azure導入支援・構築・運用サービス総合カタログ

    Microsoft Azure サービスの導入検討・PoC、設計、構築、運用までを一貫してご支援いたします。
    Azure導入・運用時のよくあるお悩み、お悩みを解決するためのアールワークスのご支援内容・方法、ご支援例などをご確認いただけます。

Azure導入個別相談会(無料)

Tag: Azure Application Gateway Azure ネットワーク

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php