今やITシステムなしでは業務が成り立たないような社会となっていますが、
「多数の人が利用し、システムが重くなってしまいそう」
「今までより利用量が増えた中、システムが高負荷に耐えることができるのだろうか」
といった心配もあるのではないでしょうか。
そういったシステムの可用性を維持するために欠かせない存在がロードバランサー(負荷分散)です。
システムで大量のトラフィックを処理するための負荷分散の仕組み、負荷分散を実現するロードバランサー。本記事では、負荷分散の基本を踏まえた上で、Azure Load Balancer の概要や機能について解説します。
負荷分散とロードバランサー
Azure Load Balancerについてご紹介する前に
まずは基本的な知識となる、負荷分散とは何か、ロードバランサーとは何か、といったことを簡単に解説します。
負荷分散とは
負荷分散は、一つのシステムに流れてくるトラフィックや処理要求を、複数のサーバーやネットワークパスに分散させるプロセスです。
システムのCPUやメモリといったリソースは限られており、リソースを超えるような処理をリクエストされると、処理速度は大幅に低下してしまいます。
負荷分散を行うことで、リクエストは複数のサーバまたはリソースに分散され、単一のサーバのダウンタイムや障害がシステム全体のパフォーマンスに悪影響を与えるリスクが軽減されます。
これによりシステムの可用性を向上させることができます。
ロードバランサーとは
ロードバランサーは負荷分散装置とも呼び、具体的にこの分散プロセスを制御するデバイスまたはソフトウェアアプリケーションです。
ロードバランサーはサーバへのアクセスを集約し、リソースに余裕があるサーバを転送先として選択するなど、設定したルールに従って各サーバへアクセスを振り分けて負荷を分散し、使用されているどのサーバーも過負荷にならない状態を保ちます。
Azure Load Balancer とは
では、本題であるAzure Load Balancerについて説明していきます。
Azure Load Balancer(Azure LB)とは、Microsoft Azure が提供しているサービスのひとつでTCP/UDP向けのレイヤー4負荷分散サービスです。
Azure Virtual Machines(仮想マシン)や、仮想マシンスケールセット内のインスタンスへの通信を負荷分散する機能を提供しています。
Azure Load Balancerを利用することで、処理性能と可用性に優れたシステムを構築することが可能です。
Azure Load Balancerの機能
Azure Load Balancerには、さまざまな機能があります。それぞれの機能とメリットをご紹介します。
負荷分散機能
利用目的に応じて「パブリックロードバランサー」「内部(プライベート)ロードバランサー」として利用でき、仮想ネットワーク内外のトラフィックをAzure仮想マシンに負荷分散できます。
パブリックロードバランサーとして利用すれば、仮想ネットワーク内の複数のAzure仮想マシンにアウトバウンド接続を提供できます。プライベートロードバランサーとして利用すれば、仮想ネットワーク内で負荷分散することが可能であり、また、両方を組み合わせて多層的な負荷分散も実現可能です。
ポートフォワーディング
パブリックIPアドレスとポート番号を使って、特定のポートからの入力トラフィックを、あらかじめ設定された別のアドレスとポートに転送することができます。
たとえば、Azure LBでポート番号443の通信を受信し、Azure仮想マシンのポート番号80番に通信を転送する、ということが可能です。
この機能は、特定のサービスへのアクセスを制限する際に特に有用です。
負荷分散リソースの監視
負荷分散規則を作成し、負荷分散リソースの状態を継続的に監視することができます。
これにより、トラフィックの異常な変動や他の問題を迅速に特定し、対応することができます。
Azure Load Balancer の料金体系
Azure Load Balancerには無料で利用できるBasicと、高度な機能をサポートするStandardの2つのプラン(SKUとも呼ばれる)があり、用途に合わせて使い分けがされています。2つのSKUの料金や機能の違いについて解説していきます。
Basic Load Balancer(無料)
Basicは基本的には無料でインバウンドのデータ転送も無料で利用でき、基本的なロードバランサーとしての機能をサポートしています。
アウトバウンドのデータ転送には料金が発生するため注意が必要です。
ネットワークインターフェースの負荷分散のみとなり、IPアドレスごとのルール設定などはできません。
負荷分散するサーバーの数(プールサイズ)は最大300インスタンスとなります。
また、SLA(サービスレベルアグリメント)の保証はありません。
基本的な機能は使用できるため、高機能を求めない場合は、Basicでも問題ないでしょう。
Standard Load Balancer
Standardは有料で、使用量に応じた料金が発生する従量課金制となります。
インターネットに接続しない内部の負荷分散範囲であれば無料で使用可能です。
負荷分散ルールをユーザーが設定でき、価格は下記の通りです。
・最初の5ルールまでは$0.025/時間
・6個目からは1ルールにつき$0.01/時間
・データ使用料の課金は$0.005/GB
IPアドレスごとにルール設定が可能で、
SLAは1週間に約1分未満のダウンタイムである99.99%を保証しています。
その他、グローバル VNet ピアリング、NAT Gateway、Private Linkをサポートしています。
高度な機能を持ち、大規模なネットワーク環境での利用に適しています。
Azure Application Gateway との違い
Azureには、Azure Load Balancerと似ているAzure Application Gatewayというサービスがあります。違いを理解し、目的に応じた適切な使い分けができるようにしましょう。
Azure Application Gatewayとは
Azure Application Gateway とは、 Azure が提供している負荷分散サービスのひとつで、レイヤー 7(アプリケーションレイヤ)でサーバー負荷分散を行うサービスです。
Web アプリケーションに対するトラフィックを管理できるロードバランサーで、URI パスやホストヘッダーなど、HTTP 要求の追加属性に基づいて負荷分散を行います。また、証明書をインポートして SSL オフロードを行うことも可能です。
Azure Load Balancer との違い
Azure Load Balancer はトランスポートレイヤー(レイヤー 4 : TCP/UDP )で動作するため、IP アドレスとポート番号に基づく負荷分散を実現します。
TCP/UDP のみの負荷分散機能であるため、パケット通信アプリケーションなど、TCP/UDP の通信を負荷分散したい場合に利用することが一般的です。
一方、Azure Application Gateway Azure Application Gateway では、URI パスやホストヘッダーなど、HTTP 要求の追加属性に基づいて負荷分散を行います。また、SSL オフロードができるのも Azure Application Gateway のみとなっています。
HTTP など Web アプリケーションの通信の負荷分散を行いたい場合に利用します。
まとめ
Azure Load Balancerを活用することで、負荷分散の設定と運用の手間を大幅に減少させることができます。
柔軟にリソースを調整し、確実なトラフィック分散を実現することで、アプリケーションの可用性と耐障害性を向上させることが可能です。
また、Azureのネイティブな統合機能を利用することで、システムの監視と管理が一段と容易になります。ネットワークの安定性とパフォーマンスを確保しつつ、コストを最適化するために、Azure Load Balancerでの負荷分散ソリューションの導入を検討してみてはいかがでしょうか。
KUIXではただ導入・開発するだけでなく、導入後の利活用を実現することに着眼して、GCP、AWS、Azureの選定・導入から運用、展開までの支援を行っております。お困りの方は、ぜひお気軽にご連絡ください!お問い合わせはこちらから