可用性維持に欠かせないL4ロードバランサー Azure LBとは?

システムの可用性を維持するために欠かせない存在がロードバランサー(負荷分散)です。Microsoft Azure(以下、Azureと呼びます。)では複数の負荷分散サービスが提供されていますが、今回はそのなかでもL4(Layer4)ロードバランサーである「Azure LB」について紹介します。
Azure LBの概要から、機能やできること、設定項目、料金体系などについて、ひとつずつ見ていきましょう。

Azure LBは4種類の負荷分散サービスのひとつ

Azure LBはAzureで提供されている負荷分散サービスのひとつです。Azureには大きく4つの負荷分散サービスが存在します。

  • Azure LB:TCP/UDP向けL4ロードバランサー
  • Application Gateway:アプリケーション配信コントローラ(ADC)として動作可能なロードバランサー(L7)
  • Traffic Manager:DNSベースのトラフィックロードバランサー
  • Front Door:Webアプリケーション向けグローバル負荷分散、サイトアクセラレーションサービスを提供(L7)

4つの負荷分散サービスは、トラフィックを分散するという目的は同じですが、動作するレイヤ(層)が異なります。Azure LBはOSI参照モデルで言うところの第4層(トランスポート層)で動作し、Application GatewayやFront Doorは第7層(アプリケーション層)で動作するものです。
また、Traffic ManagerはDNSレベルでの負荷分散を実現するものであり、それぞれに利用用途が異なります。

もし、いずれの負荷分散サービスを利用するべきかわからない場合は、公式ページにフローチャートが記載されていますので、そちらを参考に選択するとよいでしょう。

Azureの負荷分散オプションの概要(Microsoft Azure 公式ページ)
https://docs.microsoft.com/ja-jp/azure/architecture/guide/technology-choices/load-balancing-overview別ウィンドウで開きます

Azure LBでAzure VMやAzure Cloud Servicesなどのロールインスタンスをエンドポイントとした負荷分散が実現でき、アプリケーションのスケーリングや高可用性サービスを作成するために利用します。次に、Azure LBの主な機能とできることを見ていきます。

Azure LBの主な機能とできること

Azure LBではBasicとStandardの2つのSKUが用意されており、機能の違いがあります。本コラムでは概要をご理解いただき、詳しくは公式ページをご参照ください。

Azure Load BalancerのSKU(Microsoft Azure 公式ページ)
https://docs.microsoft.com/ja-jp/azure/load-balancer/skus別ウィンドウで開きます

負荷分散機能

利用目的に応じて「パブリックロードバランサー」「内部(プライベート)ロードバランサー」として利用でき、仮想ネットワーク内外のトラフィックをAzure仮想マシンに負荷分散できます。

パブリックロードバランサーとして利用すれば、仮想ネットワーク内の複数のAzure仮想マシンにアウトバウンド接続を提供できます。プライベートロードバランサーとして利用すれば、仮想ネットワーク内で負荷分散することが可能であり、また、両方を組み合わせて多層的な負荷分散も実現可能です。

なお、Azure LBの分散方式がラウンドロビンではないことには注意が必要です。ラウンドロビンは複数の接続されたリソースに対して順繰りに割り振っていく方式のことですが、Azure LBではハッシュベースの分散方式が採用されております。デフォルトでは次の5つの情報を利用してハッシュを作成し、作成されたハッシュに基づいて振り分け先を決定しています。

  • 送信元IPアドレス
  • 送信元ポート番号
  • 宛先IPアドレス
  • 宛先ポート番号
  • プロトコルの種類

そのため、複数台の端末からAzure LB経由でアクセスしても、同じバックエンドインスタンスに割り振られる可能性がある点は注意が必要です。

また、セッションの維持などのために、あえて接続先(インスタンス)を固定化したい場合もあるでしょう。Azure LBではこれを「ソースIPアフィニティモード」を使用することで構成できます。送信元IPアドレスと送信元ポート番号のハッシュだけを利用し、接続先にトラフィックをマップすることが可能なのです。

ポートフォワーディング

Azure LBでは、パブリックIPアドレスとポート番号を使ってAzure仮想マシンにポートフォワーディングできます。たとえば、Azure LBでポート番号443の通信を受信し、Azure仮想マシンのポート番号80番に通信を転送する、ということが可能です。

なお、ポートフォワーディングを利用する際には、Standard SKUを利用する必要がある点にご注意ください。

正常性プローブによる負荷分散リソースの監視

トラフィックを負荷分散するにあたり、分散接続先のAzure仮想マシンの状態確認は欠かせません。なぜなら、分散接続先のAzure仮想マシンが停止していたり、正常に応答できない状態であったりした場合には、通信が正常に行なえないからです。

Azure LBでは、負荷分散規則を作成し、そのなかで正常性プローブによる負荷分散リソース(分散接続先のリソース)の監視を設定しなければなりません。プローブ(probe)とは探査や精査を意味する用語であり、正常性プローブとは負荷分散リソースの正常性を監視する精査方法、と考えるとよいでしょう。

正常性プローブで利用するプロトコルは、TCP、HTTP、HTTPSです。なお、HTTPSを利用した正常性プローブの構成は、Standardでのみ行なえます。

Azure LBの主な3つの設定項目

Azure LBを利用する際に設定が必要な基本的な3つの項目について解説します。ひとつずつ見ていくことにより、Azure LBを利用する際のイメージをつかんでいただければと思います。

バックエンドアドレスプール

まず、トラフィックの分散先(バックエンドアドレスプール)を最初に定義しなければなりません。バックエンドアドレスプールには、Azure LBによって負荷分散先となるAzure仮想マシンなどの仮想NICのIPアドレスを設定します。

バックエンドアドレスプールに登録できるインスタンス数は、Standardで最大1,000インスタンス、Basicで最大300インスタンスとなっています。

正常性プローブ

次に、バックエンドアドレスプールに登録したインスタンスの死活状況を確認するための設定を行います。バックエンドアドレスプールに登録されたインスタンスからの応答により、正常性プローブの設定に基づいてどのインスタンスが受信するのかが変わります。

正常性プローブで設定する項目は、次の4つです。

  • プローブのプロトコル
  • プローブのポート番号
  • プローブ試行間隔
  • 異常のしきい値

たとえば、バックエンドアドレスプールに対して、HTTP80番のプローブを15秒間隔で施行し、2回以上失敗したら該当するインスタンスへのトラフィック振り分けを停止する、ということが実現できます。

負荷分散規則

さらに、負荷分散規則で、Azure LBが受け取ったトラフィックをバックエンドアドレスプールのインスタンスに分散する規則を設定します。着信トラフィック用のフロントエンド構成と、振り分け用のバックエンド構成を行う設定が負荷分散規則です。

たとえば、Azure LBのフロントエンドIPアドレスの8080番ポート宛に来た通信を、バックエンドアドレスプールのインスタンスに対して80番で送信する、といった設定を行います。

Azure LBの料金体系とSLA

Azure LBは2つのSKUによって料金体系が異なります。Basicの場合は無料で利用可能です。Standardの場合は従量課金制となっており、負荷分散ルールの数やデータ処理量によって料金が異なります。詳細はこちらをご参照ください。

Load Balancerの価格(Microsoft Azure 公式ページ)
https://azure.microsoft.com/ja-jp/pricing/details/load-balancer/別ウィンドウで開きます

また、Standardを利用する場合はSLA(サービス水準合意)により、99.99%の時間利用が可能であることが保証されています。Basicの場合はSLAが適用されません。

まとめ

Azure LBはAzureが提供する負荷分散サービスのひとつです。L4ロードバランサーとして、アプリケーションのスケーリングや高可用性サービス構築に利用できます。なお、Azure LBは、負荷分散方式がラウンドロビンではなく、ハッシュベースの分散方式であることに注意しましょう。それ以外は、ポートフォワーディングや正常性プローブによる負荷分散リソースの監視など、一般的なロードバランサーと同等の機能を有しています。また、Azure LBには2つのSKUが用意されており、Standardは有料ですがBasicは無料で利用できます。

移行準備段階で知っておくべきMicrosoft Azureの
サービスを学び、具体的にクラウド検討を考える!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る