日程Fit|「いつ空いてますか?」の往復はもう不要。候補日を選んでURLを送るだけ|登録不要|今すぐ無料で使う →

Azure DDoS Protectionのカスタムしきい値をStandard Load Balancerへ設定する方法

Azure DDoS Protectionのカスタムポリシーを利用すると、Standard Load BalancerのフロントエンドIPに対して、TCP・UDP・TCP SYNごとのDDoS検出しきい値を固定値で設定できます。

設定できる範囲は50,000~2,000,000 packets per second(pps)です。固定値を設定したプロトコルでは適応型の自動調整が停止しますが、ルールを設定していないプロトコルでは従来どおり自動調整が続きます。

ただし、2026年8月時点ではパブリックプレビューです。対象はStandard Load Balancerの受信トラフィックに限られ、利用できないリージョンもあります。まず通常時のパケットレートを確認し、必要なプロトコルだけを段階的に固定化するのが安全です。

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

Azure DDoS Protectionカスタムポリシーのしきい値と適用範囲

Azure DDoS Protectionは通常、保護対象リソースのトラフィック傾向を学習し、DDoS緩和を開始する検出しきい値を自動調整します。

カスタムポリシーは、この自動調整を全面的に置き換えるものではありません。特定のプロトコルだけを固定値に変更し、残りを適応型の自動調整に任せるための機能です。(Microsoft Learn)

項目パブリックプレビュー時点の仕様
適用対象Standard Load BalancerのフロントエンドIP構成
トラフィック方向受信のみ
対応トラフィックTCP、UDP、TCP SYN
しきい値50,000~2,000,000pps
設定単位プロトコルごとの固定値
設定済みプロトコル適応型自動調整を停止し、固定値を使用
未設定プロトコル適応型自動調整を継続
管理方法Azure portal、Azure CLI、ARMテンプレート、REST API
提供状態パブリックプレビュー

ここで設定する値は、Standard Load Balancerの帯域上限や流量制限ではありません。Azure DDoS ProtectionがDDoS緩和を開始するための検出しきい値です。

たとえばTCPを500,000ppsに設定しても、TCPトラフィックを500,000ppsで遮断するレートリミットになるわけではありません。受信TCPトラフィックに対するDDoS検出と緩和開始の基準として使われます。

カスタムしきい値を設定すべきケース

Azureの適応型自動調整は、多くの一般的なワークロードに適しています。通常時のパケットレートや繁忙期のピークを把握できていない場合は、無理に固定値へ変更しない方が安全です。

カスタムポリシーは、次のようにトラフィック特性を予測できるシステムで効果を発揮します。(Microsoft Learn)

ワークロードの状況推奨する考え方
通常トラフィックの変動が大きい適応型自動調整を維持する
キャンペーンや発売日にアクセスが急増する想定ピークを含めて固定値を検討する
高パケットレートが長時間続く実測値を基に高めのしきい値を設定する
UDPだけ特殊な通信特性があるUDPだけ固定し、TCPとTCP SYNは自動調整を残す
接続開始時のSYNだけ急増するTCP SYNのみ固定値を検討する
通常時のppsを計測していない設定前にAzure Monitorで基準値を取得する

重要なのは、TCP・UDP・TCP SYNをすべて固定値にすることではありません。自動調整では運用しにくいプロトコルだけを固定するのが基本です。

プロトコルごとの考え方

プロトコル主な調整対象想定される利用例
TCP受信TCPパケット全体Web以外も含むTCPベースの高トラフィックサービス
UDP受信UDPパケットゲーム、リアルタイム通信、独自UDPサービス
TCP SYNTCP接続開始時のSYNパケット大量の新規接続やSYN floodへの調整

TCPとTCP SYNは別のルールとして設定できます。通常のTCPパケット量は安定しているものの、新規接続数だけが特殊なワークロードでは、TCP SYNだけを固定する構成も可能です。

設定前に確認する項目

カスタムポリシーを作成する前に、次の項目を確認します。

  • Standard SKUのLoad Balancerに、適用対象となるフロントエンドIP構成が存在する
  • 対象リソースがAzure DDoS Protectionの保護対象になっている
  • 操作者にNetwork Contributor、または必要な操作を許可したカスタムロールが割り当てられている
  • カスタムポリシーを作成するリージョンがプレビュー対象になっている
  • 通常時と繁忙時のTCP、UDP、TCP SYNトラフィックを把握している
  • 問題発生時にポリシーの関連付けを解除できる運用手順がある

カスタムポリシーは独立したAzureリソースとして作成されます。作成時にStandard Load BalancerのフロントエンドIPを関連付けることも、ポリシーだけを先に作成して後から関連付けることもできます。ただし、ポリシー内には少なくとも1つの検出しきい値ルールが必要です。(Microsoft Learn)

プレビューで利用できないリージョン

2026年7月22日時点のMicrosoft Learnでは、次のリージョンでカスタムポリシーを作成すると、RegionNotEnabledForFeatureエラーが発生すると案内されています。(Microsoft Learn)

利用できないリージョン利用できないリージョン利用できないリージョン
Sweden SouthSoutheast USIndonesia Central
Chile CentralAustria EastSoutheast US 3
Malaysia WestBelgium CentralIsrael Northwest

パブリックプレビュー中は、対象リージョンが変更される可能性があります。設計時に利用できていても、別リージョンへの展開時には再確認が必要です。

リージョン制限を回避するためだけに、既存のLoad Balancerやワークロードを別リージョンへ移動するのは現実的ではありません。対象外リージョンでは、一般提供またはプレビュー範囲の拡大まで適応型自動調整を利用する方が安全です。

カスタムしきい値の決め方

固定値は、推測ではなく実測値を基に決めます。

しきい値が低すぎると、正規のアクセス増加をDDoSトラフィックとして早期に検出する可能性があります。反対に高すぎると、緩和の開始が期待より遅くなる可能性があります。

通常時のppsを確認する

Azure Monitorでは、保護対象のPublic IP Addressをスコープとして、次のメトリックを確認できます。

  • Inbound SYN packets to trigger DDoS mitigation
  • Inbound TCP packets to trigger DDoS mitigation
  • Inbound UDP packets to trigger DDoS mitigation
  • Packet Count
  • SYN Count
  • Under DDoS attack or not

検出トリガーのメトリックは集計方法を「最大値」にして確認します。

Packet CountやSYN Countは60秒単位の値として表示されるため、ppsへ換算するときは表示値を60で割ります。たとえば60秒間のPacket Countが12,000,000なら、平均値は200,000ppsです。なお、Packet CountにはTCPとUDPの両方が含まれるため、プロトコル別の判断にはフローログやアプリケーション側の通信統計も併用します。(Microsoft Learn)

通常ピークと計画ピークを分ける

次の3種類を分けて記録すると、判断しやすくなります。

基準値内容
通常値平日の一般的なトラフィック
通常ピーク毎日または毎週発生する繁忙時間帯
計画ピークキャンペーン、ゲームイベント、製品発売などの予定された増加

たとえば、通常時のTCPが100,000pps、通常ピークが220,000pps、イベント時の想定が300,000ppsである場合、最初から250,000ppsに固定すると正規トラフィックとの余裕が小さくなります。

運用例としては、イベント時の想定を上回る400,000~500,000pps程度から検証を始め、監視結果を見ながら調整します。これはAzure共通の推奨計算式ではなく、正規トラフィックと検出しきい値の間に余裕を確保するための設定例です。

最小値にも注意する

設定可能な最小値は50,000ppsです。

TCP SYNの通常ピークが5,000pps程度であっても、20,000ppsのような値は設定できません。この場合は50,000ppsでの固定が適切か、自動調整を残すべきかを判断します。

Azure portalでカスタムポリシーを設定する方法

Azure portalでは、カスタムポリシーの作成、ルール追加、フロントエンドIPとの関連付けを画面上で実行できます。

DDoSカスタムポリシーを作成する

  1. Azure portalへサインインします。
  2. 上部の検索欄で「DDoS custom policies」を検索します。
  3. 検索結果から「DDoS custom policies」を開きます。
  4. 「作成」を選択します。
  5. 「基本」タブで必要な情報を入力します。
設定項目入力内容
サブスクリプションカスタムポリシーを作成するサブスクリプション
リソースグループ既存のグループ、または新規グループ
名前カスタムポリシー名
リージョンプレビューを利用できるリージョン

ポリシー名は、対象と環境が分かる形式にしておくと管理しやすくなります。

ddoscp-prod-game-eastus
ddoscp-prod-api-eastus
ddoscp-stg-lb-eastus

Standard Load BalancerのフロントエンドIPを選択する

「Load balancer frontend IP address」で「Select frontend IP addresses」を選択し、ポリシーを適用するStandard Load BalancerのフロントエンドIPを指定します。

この関連付けは必須ではありません。まずポリシーだけを作成し、検証後に「Policy settings」からフロントエンドIPを追加することもできます。(Microsoft Learn)

本番環境では、次の順序で作業すると誤適用を防ぎやすくなります。

  1. ポリシーだけを作成する
  2. 設定値をレビューする
  3. 検証用フロントエンドIPへ関連付ける
  4. Azure Monitorで動作を確認する
  5. 本番フロントエンドIPへ展開する

検出しきい値ルールを追加する

「Next: Custom rules」を選択し、「Detection threshold」で「Add a rule」を実行します。

設定項目入力内容
Nameルールを識別できる名前
ProtocolTCP、UDP、TCPSYN
Threshold50,000~2,000,000pps
DirectionInbound

ルール名には、プロトコルとしきい値を含めると変更履歴を追いやすくなります。

tcp-500k-pps
udp-1200k-pps
tcpsyn-100k-pps

必要なプロトコル分だけルールを追加し、「Review + create」「Create」の順に選択します。設定したプロトコルでは固定値が使用され、ルールを作成していないプロトコルでは自動調整が維持されます。(Microsoft Learn)

作成後に関連付けとルールを確認する

作成したカスタムポリシーを開き、「Policy settings」を選択します。

この画面では次の操作ができます。

  • フロントエンドIPの追加または変更
  • 検出しきい値ルールの追加
  • 既存ルールの編集
  • 現在の関連付け状況の確認

「概要」に表示されるルール数と関連付け済みフロントエンドIP数も確認します。より詳細な構成は「JSON View」で確認できます。

Azure CLIでカスタムポリシーを作成する方法

Azure CLIでは、az network ddos-custom-policy createを使ってカスタムポリシーを作成できます。

次の例では、East USに受信TCP用の1,000,000ppsルールを作成します。(Microsoft Learn)

RG="MyResourceGroup"
LOCATION="eastus"
POLICY="MyCustomPolicy"

az network ddos-custom-policy create \
  --resource-group "$RG" \
  --name "$POLICY" \
  --location "$LOCATION" \
  --detection-rule-name "tcp-threshold" \
  --detection-mode "TrafficThreshold" \
  --traffic-type "Tcp" \
  --packets-per-second 1000000

--traffic-typeには、次のいずれかを指定します。

Tcp
Udp
TcpSyn

Azure CLIのcreateコマンドで直接作成できる検出ルールは1つです。複数プロトコルのルールをまとめて展開する場合は、Azure portalまたはARMテンプレートを利用します。

作成したポリシーを確認する

az network ddos-custom-policy show \
  --resource-group "$RG" \
  --name "$POLICY" \
  --query "{name:name,state:provisioningState,rules:detectionRules[].trafficDetectionRule}"

provisioningStateSucceededになっていることと、packetsPerSecondtrafficTypeが意図した値になっていることを確認します。

Standard Load Balancerへ関連付ける

次の例では、作成したポリシーのリソースIDを取得し、Standard Load BalancerのフロントエンドIPへ関連付けます。

LB="MyLoadBalancer"
FRONTEND="MyFrontendIP"

dcpId=$(az network ddos-custom-policy show \
  --resource-group "$RG" \
  --name "$POLICY" \
  --query id \
  --output tsv)

az network lb frontend-ip update \
  --resource-group "$RG" \
  --lb-name "$LB" \
  --name "$FRONTEND" \
  --ddos-settings "ddos-custom-policy={id:$dcpId}"

関連付けを確認します。

az network lb frontend-ip show \
  --resource-group "$RG" \
  --lb-name "$LB" \
  --name "$FRONTEND" \
  --query "{frontendIp:name,customPolicy:ddosSettings.ddosCustomPolicy.id}"

--ddos-settingsはプレビュー機能に関連する引数であり、すべてのAzure CLIバージョンで利用できるとは限りません。unrecognized arguments: --ddos-settingsと表示された場合は、Azure portalから関連付けを行います。(Microsoft Learn)

ポリシーの関連付けを解除する

問題が発生した場合は、次のコマンドで関連付けを解除できます。

az network lb frontend-ip update \
  --resource-group "$RG" \
  --lb-name "$LB" \
  --name "$FRONTEND" \
  --ddos-settings "ddos-custom-policy=null"

関連付けを解除すると、そのフロントエンドIPはカスタムポリシーの固定しきい値を使用しなくなります。変更後は、Azure Monitorで検出トリガーを再確認してください。

ARMテンプレートで複数プロトコルを設定する方法

複数環境へ同じルールを展開する場合や、TCP・UDP・TCP SYNをまとめて構成管理したい場合はARMテンプレートが適しています。

次のテンプレートでは、3種類の検出ルールを作成し、Standard Load BalancerのフロントエンドIPへ関連付けます。リソースタイプはMicrosoft.Network/ddosCustomPoliciesです。(Microsoft Learn)

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "policyName": {
      "type": "string"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    },
    "frontendIPConfigurationId": {
      "type": "string"
    },
    "tcpThreshold": {
      "type": "int",
      "defaultValue": 500000
    },
    "udpThreshold": {
      "type": "int",
      "defaultValue": 1000000
    },
    "tcpSynThreshold": {
      "type": "int",
      "defaultValue": 100000
    }
  },
  "resources": [
    {
      "type": "Microsoft.Network/ddosCustomPolicies",
      "apiVersion": "2025-07-01",
      "name": "[parameters('policyName')]",
      "location": "[parameters('location')]",
      "properties": {
        "detectionRules": [
          {
            "name": "tcp-threshold",
            "properties": {
              "detectionMode": "TrafficThreshold",
              "trafficDetectionRule": {
                "packetsPerSecond": "[parameters('tcpThreshold')]",
                "trafficType": "Tcp"
              }
            }
          },
          {
            "name": "udp-threshold",
            "properties": {
              "detectionMode": "TrafficThreshold",
              "trafficDetectionRule": {
                "packetsPerSecond": "[parameters('udpThreshold')]",
                "trafficType": "Udp"
              }
            }
          },
          {
            "name": "tcpsyn-threshold",
            "properties": {
              "detectionMode": "TrafficThreshold",
              "trafficDetectionRule": {
                "packetsPerSecond": "[parameters('tcpSynThreshold')]",
                "trafficType": "TcpSyn"
              }
            }
          }
        ],
        "frontEndIpConfiguration": [
          {
            "id": "[parameters('frontendIPConfigurationId')]"
          }
        ]
      }
    }
  ]
}

フロントエンドIP構成のリソースIDは、次のコマンドで取得できます。

az network lb frontend-ip show \
  --resource-group MyResourceGroup \
  --lb-name MyLoadBalancer \
  --name MyFrontendIP \
  --query id \
  --output tsv

テンプレートをazuredeploy.jsonとして保存し、次のように展開します。

az deployment group create \
  --resource-group MyResourceGroup \
  --template-file azuredeploy.json \
  --parameters \
    policyName=MyCustomPolicy \
    frontendIPConfigurationId="<frontend-ip-configuration-id>" \
    tcpThreshold=500000 \
    udpThreshold=1000000 \
    tcpSynThreshold=100000

一部のプロトコルを自動調整のまま残したい場合は、そのプロトコルに対応するdetectionRulesの要素をテンプレートから削除します。

設定後に確認すべき監視項目

カスタムポリシーは、作成できた時点で作業完了ではありません。固定値が正規トラフィックに対して適切かをAzure Monitorで確認します。

検出トリガーが設定値に変わったか

Public IP Addressの「メトリック」で、次の項目を表示します。

  • Inbound SYN packets to trigger DDoS mitigation
  • Inbound TCP packets to trigger DDoS mitigation
  • Inbound UDP packets to trigger DDoS mitigation

集計方法は「最大値」にします。

固定値を設定したプロトコルでは、検出トリガーがカスタム値として反映されているかを確認します。未設定のプロトコルでは、トラフィック学習に応じて自動調整される状態が続きます。(Microsoft Learn)

正規トラフィックとの余裕を確認する

次の項目を同じ時間帯で比較します。

確認項目判断内容
Packet Count、SYN Count正規トラフィックが固定値へ近づいていないか
DDoS検出トリガー意図した固定値が反映されているか
Under DDoS attack or not不要な緩和が発生していないか
アプリケーション応答時間設定変更後に遅延が増えていないか
接続エラー率SYNやTCP関連の失敗が増えていないか
Load Balancerの正常性バックエンドの正常性に変化がないか

通常ピークだけでなく、バッチ処理、定期配信、キャンペーン、ゲームイベントなど、最大トラフィックが発生する時間帯を含めて確認します。

よくある失敗と対処方法

症状主な原因対処方法
RegionNotEnabledForFeatureが発生するプレビュー対象外リージョン対応リージョンを確認し、対象外では自動調整を継続する
しきい値の検証に失敗する50,000未満または2,000,000超指定値を対応範囲内へ修正する
ポリシーを作成できない検出ルールが1件もないTCP、UDP、TCP SYNのいずれかを追加する
フロントエンドIPを選択できないStandard Load Balancerではない、権限不足、対象外構成SKU、リージョン、フロントエンドIP構成、RBACを確認する
ポリシーを作成したのに反映されないフロントエンドIPと関連付けていないPolicy settingsまたはCLIで関連付ける
CLIで--ddos-settingsが認識されない利用中のAzure CLIがプレビュー引数に未対応Azure portalから関連付ける
正規アクセス時に緩和が始まる固定しきい値が低すぎるしきい値を上げるか、ポリシーの関連付けを解除する
繁忙期だけ問題が発生する計画ピークを基準値に含めていないキャンペーンやイベント時のppsを再計測する

特に避けたいのは、TCP・UDP・TCP SYNへ同じ値を一括設定することです。プロトコルごとの通常トラフィック量は異なるため、それぞれ別の基準で判断する必要があります。

固定しきい値を解除して自動調整へ戻す方法

カスタム設定に問題がある場合は、Standard Load BalancerのフロントエンドIPからポリシーの関連付けを解除します。

Azure portalでは、カスタムポリシーの「Policy settings」を開き、関連付け済みのフロントエンドIPを変更します。

カスタムポリシー自体が不要であれば削除も可能です。ポリシーを削除すると、関連付けられていたフロントエンドIPは適応型自動調整へ戻ります。削除操作は元に戻せないため、先に設定内容をJSONやARMテンプレートとして保存しておくと再作成しやすくなります。(Microsoft Learn)

まとめ

Azure DDoS Protectionのカスタムポリシーでは、Standard Load BalancerのフロントエンドIPに対して、TCP・UDP・TCP SYNの受信検出しきい値を50,000~2,000,000ppsで設定できます。

ただし、固定値を設定したプロトコルでは適応型自動調整が停止します。すべてを一度に固定するのではなく、次の順序で導入することが重要です。

  1. 対象リージョンとStandard Load Balancerの構成を確認する
  2. Azure Monitorで通常時と繁忙時のppsを計測する
  3. 特殊なトラフィック特性を持つプロトコルだけ固定する
  4. 検証用フロントエンドIPで先に試す
  5. 検出トリガー、DDoS状態、アプリケーション影響を監視する
  6. 問題時はポリシーの関連付けを解除する

最初の設定では、最も課題が明確な1プロトコルだけを対象にします。未設定プロトコルの自動調整を残すことで、カスタム制御とAzureの適応型保護を併用できます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次