outputAzure Load Balancer vs Application Gateway|オンプレ経験者のためのAzure負荷分散サービスの違いと使い分けガイド

Azure Basics

オンプレでHAProxyやNginx、あるいはF5によるロードバランサーを運用してきたエンジニアがAzureに移行すると、まず戸惑うのが「ロードバランサーが複数ある」という点です。Azure Load BalancerとAzure Application Gatewayは名前は似ていますが、動作するレイヤーも適したユースケースも全く異なります。

この記事では、Azure Load Balancer(ALB)とAzure Application Gateway(AGW)の違いを、オンプレのネットワーク構成と比較しながら実践的に解説します。どちらを選ぶかの判断基準も具体的に示しますので、Azureで負荷分散設計をはじめて行う方はぜひ参考にしてください。

outputAzure Load Balancer vs Application Gateway|オンプレ経験者のためのAzure負荷分散サービスの違いと使い分けガイド

なぜAzureに複数の負荷分散サービスがあるのか

オンプレでは「ロードバランサー=L4/L7を1台でこなす装置」として扱うケースが多かったはずです。F5のBIG-IPならL4のSNATからL7のHTTPヘッダー操作まで一つの筐体で対応できました。

Azureは役割ごとにサービスが分かれています。これはクラウドの「マネージドサービスはスコープを絞って深く作る」という設計思想に基づいています。

サービス名 動作レイヤー 主な用途 オンプレ相当
Azure Load Balancer L4(TCP/UDP) VM・コンテナへのTCP/UDP負荷分散 HAProxy(TCPモード)/ F5 LTM
Azure Application Gateway L7(HTTP/HTTPS) WebアプリのURL/ヘッダー分散、WAF統合 Nginx / F5 ASM / AWS ALB
Azure Traffic Manager DNS(グローバル) リージョン間のトラフィックルーティング GSLB / Route 53
Azure Front Door L7(グローバルCDN) グローバルWebアクセラレーション + WAF CloudFront + WAF + LB統合

この記事では最も使用頻度の高いAzure Load BalancerとAzure Application Gatewayの2つに絞って解説します。

Azure Load Balancerの特徴と使い方

Azure Load Balancer(以下ALB)はL4(トランスポート層)で動作するロードバランサーです。TCPセッションを透過的に転送するため、HTTPのヘッダーは見えません。その分、レイテンシが低くスループットが高いという特徴があります。

1. SKUの違いを理解する

ALBにはBasicとStandardの2つのSKUがあります(2026年3月時点)。

Basic SKU: 無料。可用性ゾーンに非対応。開発・検証用途向け。
Standard SKU: 有料(約$0.005/時間〜)。可用性ゾーン対応、SLA 99.99%。本番環境はこちらを選ぶ。

本番ワークロードではBasic SKUは使わないことをお勧めします。Basic SKUは可用性ゾーンをサポートしておらず、将来的にMicrosoftが廃止を予告しているためです。

2. 内部LBとパブリックLBの違い

ALBには「パブリックロードバランサー」と「内部(プライベート)ロードバランサー」の2種類があります。

パブリックロードバランサー: インターネットからの通信をVNet内のVMに分散する。フロントエンド向け。
内部ロードバランサー: VNet内のプライベートIPアドレスを使って内部サービス間通信を分散する。DB層・マイクロサービス間通信に使う。

オンプレの構成に例えると、DMZ上のLBがパブリックLB、内部ネットワーク(サーバーセグメント)上のLBが内部LBに相当します。

3. Azureポータルでの基本設定手順

Standard SKUのパブリックロードバランサーを作成する手順を示します。

①Azureポータルで「ロードバランサー」を検索し、「作成」をクリックします。
②SKU「Standard」、タイプ「パブリック」を選択します。
③「フロントエンドIP構成」でパブリックIPアドレスを追加します(新規作成またはExisting)。
④「バックエンドプール」に対象のVMまたはVM可用性セットを追加します。
⑤「負荷分散規則」でフロントエンドIPとバックエンドプール、プロトコル・ポートを紐付けます。
⑥「正常性プローブ」でバックエンドVMの死活確認方法(HTTP/TCP・確認先ポート・間隔)を設定します。

Zabbixでいう「監視対象登録」に近い感覚ですが、ポータル上でGUIが完結する点がオンプレとの大きな違いです。

Azure CLIで確認する場合:

# Azure CLIでロードバランサーの設定を確認する az network lb show \ --resource-group your-rg \ --name your-lb-name \ --output table

Azure Application Gatewayの特徴と使い方

Azure Application Gateway(以下AGW)はL7(アプリケーション層)で動作するWebアプリケーション向けのロードバランサーです。HTTPSターミネーション、URLベースルーティング、Cookieスティッキーセッション、WAF機能を持ちます。オンプレでNginxのリバースプロキシとF5 ASMを組み合わせて使っていた方には、それを一本化したサービスと考えると理解しやすいです。

1. SKUと主要機能

AGWにはStandard_v2とWAF_v2の2つのSKUがあります。

Standard_v2: URLルーティング・HTTPSターミネーション・自動スケーリングが使える基本SKU。
WAF_v2: Standard_v2の全機能に加え、OWASP Core Rule Setに基づくWAFが有効になる。Webアプリを公開する場合はこちらを選ぶ。

料金の目安(2026年3月時点):
・Standard_v2: 約$0.246/時間〜 + データ処理料
・WAF_v2: 約$0.443/時間〜 + データ処理料

ALBと比べて料金は高めですが、SSLオフロードやWAFを個別に構築する手間が省けることを考えると、Webアプリには合理的な選択です。

2. URLベースルーティングの設定

AGWの強みの一つがURLパスに基づくバックエンドへの振り分けです。

例:
・`/api/*` → APIサーバーのバックエンドプール
・`/images/*` → 静的ファイルサーバーのバックエンドプール
・それ以外 → Webアプリサーバーのバックエンドプール

これはNginxのlocation設定でupstream先を変える動作と同じです。AGWではこれをGUIまたはARM/Bicepテンプレートで定義します。

3. HTTPS終端と証明書管理

AGWでHTTPS終端を設定すると、クライアント〜AGW間はHTTPS、AGW〜バックエンドVM間はHTTPまたはHTTPSで通信できます。証明書はAzure Key VaultのシークレットとしてAGWに紐付ける方法が推奨されています(証明書の自動更新が容易になります)。

# Azure CLIでApplication GatewayのHTTPSリスナーを確認する az network application-gateway http-listener list \ --resource-group your-rg \ --gateway-name your-agw-name \ --output table

どちらを選ぶか——判断基準の整理

「ALBかAGWか」を判断するシンプルな基準を以下にまとめます。

要件 推奨サービス 理由
HTTP/HTTPSのWebアプリを公開したい Application Gateway(WAF_v2) L7ルーティング・WAF・SSLオフロードが必要
TCP/UDPのVM間負荷分散(DB接続など) Load Balancer(Standard) L4で十分・低レイテンシが優先
内部マイクロサービス間通信 内部Load Balancer インターネット露出不要・シンプルなL4分散
URLごとに異なるバックエンドへ振り分けたい Application Gateway パスベースルーティング機能を持つ
WAF(Webアプリケーションファイアウォール)を使いたい Application Gateway(WAF_v2) OWASPルールセット統合済み
Cookieによるスティッキーセッション Application Gateway Cookie挿入機能を持つ
コストを最小限に抑えたい(非Webアプリ) Load Balancer(Standard) AGWより大幅に安い

よくある構成パターンは「AGWをフロントに置き、AGWのバックエンドにVMを並べる」です。AGW〜VM間のさらに細かいL4分散が必要な場合に内部ALBを組み合わせることもあります。

料金の仕組みとコスト感覚

両サービスのコスト比較を現場で使う感覚でまとめます(2026年3月時点・東日本リージョン)。

コスト項目 Azure Load Balancer(Standard) Application Gateway(WAF_v2)
固定費(時間課金) 約$0.005/時間(ルール1件込) 約$0.443/時間(最小1ユニット)
データ処理料 $0.004/GB(外向き) $0.008/GB(処理データ)
月額目安(軽量用途) 数百円〜 3万円〜(常時稼働時)

【重要】AGWは自動スケーリング設定で最小インスタンス数を0にできますが、トラフィックがゼロでも最低課金(0ユニット$0/h)が発生し、リクエスト到着時に起動ラグが生じます。本番運用では最小インスタンス数を1以上に設定することをお勧めします。

開発・ステージング環境でコストを抑えたい場合は、夜間・週末にAGWを停止するスクリプトをAzure Automationで自動実行する方法もあります。

実務Tips——よく聞くハマりポイント

1. ALBの「フローティングIP(Direct Server Return)」に注意

ALBでフローティングIPを有効にすると、バックエンドVMにロードバランサーのフロントエンドIPがそのまま届きます。オンプレのDirect Server Return(DSR)と同じ概念ですが、バックエンドVMのNIC設定で対応するIPアドレスをloopbackに追加しないと通信が成立しません。特殊なユースケース以外では無効のまま使いましょう。

2. AGWとNSGの組み合わせ

AGWを含むサブネットにNSGを適用する場合、ポート65200〜65535(AGWの管理用通信)をインバウンドで開放する必要があります。これを忘れるとAGWが正常に動作しなくなります。

# AGWサブネットのNSGに必要なインバウンドルール(Azure CLI) az network nsg rule create \ --resource-group your-rg \ --nsg-name your-nsg \ --name AllowAGWManagement \ --priority 100 \ --direction Inbound \ --access Allow \ --protocol Tcp \ --source-address-prefixes GatewayManager \ --source-port-ranges '*' \ --destination-address-prefixes '*' \ --destination-port-ranges 65200-65535

3. ALBのアウトバウンド規則(SNAT枯渇対策)

パブリックALBを使うVMからインターネットへの外向き通信には、ALBのSNATポートが使われます。VM数が多い環境ではSNATポートが枯渇し「Connection Refused」が発生します。ALBの「アウトバウンド規則」でSNATポート数を手動で増やすか、Azure NAT Gatewayを別途設けることで解決します。

よくあるトラブルと対処法

バックエンドVMに疎通できない(正常性プローブが失敗する)

最も多い原因はVMのNSGでプローブのポートをブロックしていることです。ALBの正常性プローブはAzureのインフラ側IPから来るため、ソースIPはVNet内には現れません。NSGには「AzureLoadBalancer」タグからのインバウンドを許可するルールを追加してください。

# NSGに正常性プローブ許可ルールを追加(Azure CLI) az network nsg rule create \ --resource-group your-rg \ --nsg-name your-vm-nsg \ --name AllowAzureLBProbe \ --priority 200 \ --direction Inbound \ --access Allow \ --protocol '*' \ --source-address-prefixes AzureLoadBalancer \ --source-port-ranges '*' \ --destination-address-prefixes '*' \ --destination-port-ranges '*'

AGWでSSLハンドシェイクエラーが発生する

AGWのバックエンド設定で「バックエンドHTTPSを使用する場合の証明書検証」が有効になっているとき、バックエンドVMの証明書がAGWに信頼されていないと通信が失敗します。開発環境では「バックエンド設定 → カスタムプローブをオフにする / 証明書検証をオフにする」で暫定対処できますが、本番環境では適切な証明書を設定してください。

本記事のまとめ

Azure Load BalancerとAzure Application Gatewayは役割が明確に分かれています。

比較軸 Azure Load Balancer Azure Application Gateway
動作レイヤー L4(TCP/UDP) L7(HTTP/HTTPS)
URLルーティング 不可 可能(パスベース・ホストベース)
WAF機能 なし WAF_v2 SKUで利用可
SSLオフロード 不可 可能
主な用途 VM間TCP/UDP分散・内部通信 Webアプリ公開・リバースプロキシ
料金水準 低(月数百円〜) 高(月3万円〜)

「HTTPSで公開するWebアプリにはAGW(WAF_v2)、それ以外のTCP通信にはALB(Standard)」がAzureにおける標準的な選択パターンです。

オンプレで磨いたL4/L7の使い分け感覚はそのまま活かせます。変わるのは設定の方法だけです。AzureのマネージドLBをうまく活用して、運用負荷を大幅に減らしていきましょう。

Linuxサーバーの基礎については、姉妹サイトLinuxMaster.JPでも詳しく解説しています。Azure VM上でNginxやHAProxyを動かす際のLinux知識が必要な方はあわせてご参照ください。

Azureの負荷分散設計、自信を持って選択できていますか?

「とりあえずApplication Gatewayを入れたが料金が予想外に高かった」「ALBのSNATが枯渇して本番障害になった」——Azureならではのハマりポイントは現場で学ぶと代償が大きいです。
オンプレの経験を活かしながら、現場で使えるクラウドスキルを体系的に身につけたい方へ、メルマガで実践的なクラウド活用ノウハウをお届けしています。

コメント

タイトルとURLをコピーしました