Web Application Firewall (WAF) で集約レート制限を設定することで、1 秒あたりの固定クエリ数 (QPS) または特定の割合のトラフィックのみをビジネスサーバーに到達させることができます。これにより、大規模プロモーション時の異常なトラフィックからサーバーを保護できます。このトピックでは、集約レート制限の設定方法について説明します。
前提条件
プロ版以上のサブスクリプション WAF インスタンス、または従量課金 WAF インスタンスが有効になっていること。
保護対象の Web サービスが WAF に追加されていること。サービスが追加されていない場合は、概要をご参照ください。
クラウドネイティブモード (ALB、MSE、FC) で追加された保護対象はサポートされていません。
テンプレートタイプ
集約レート制限では、以下の 2 種類の保護テンプレートを提供しています。
保護テンプレート | 説明 | 適用対象 |
デフォルト保護テンプレート | WAF では、初期のデフォルト保護テンプレートは提供していません。手動で作成する必要があります。 | テンプレート作成時、カスタム保護テンプレートに関連付けられていない保護対象および保護対象グループが、適用対象としてデフォルトで選択されます。後から追加された保護対象も、デフォルト保護テンプレートに自動的に追加されます。選択は手動で調整できます。 |
カスタム保護テンプレート | 手動で作成する必要があるカスタム保護テンプレートです。 | 有効対象 を設定する必要があります。テンプレートは、関連付けられた保護対象および保護対象グループにのみ適用されます。 |
保護テンプレートの作成
集約レート制限では、初期のデフォルト保護テンプレートは提供していません。集約レート制限ルールを有効にするには、保護テンプレートを作成する必要があります。
ステップ 1: 集約レート制限テンプレートの作成
Web Application Firewall 3.0 コンソールにログインします。 上部のメニューバーで、WAF インスタンスのリソースグループとリージョン (中国本土、中国本土以外) を選択します。 左側のナビゲーションウィンドウで、を選択します。 ページ下部のピークスロットリングセクションで、テンプレートの作成をクリックします。
ピークスロットリングパネルで以下の設定を完了し、OK をクリックします。
設定項目
説明
テンプレート名
テンプレートの名前を入力します。
名前は 1~255 文字で、漢字、大文字と小文字の英字、数字、ピリオド (.)、アンダースコア (_)、ハイフン (-) を使用できます。
デフォルトテンプレート
テンプレートを現在の保護モジュールのデフォルトテンプレートとして設定するかどうかを指定します。
各保護モジュールには、デフォルトテンプレートが 1 つだけあります。デフォルトテンプレートでは、有効対象 を指定する必要はありません。これは、後で追加された、またはカスタム保護テンプレートから削除された保護対象やオブジェクトグループを含め、カスタム保護テンプレートに関連付けられていないすべての保護対象およびオブジェクトグループにデフォルトで適用されます。また、デフォルトテンプレートから手動で削除することもできます。
ルールの設定
ルールの作成 をクリックして、集約レート制限テンプレートのカスタムルールを作成できます。この設定をスキップして、テンプレート作成後にルールを作成することもできます。カスタムルールの作成方法の詳細については、ステップ 2: 集約レート制限テンプレートへのルールの作成をご参照ください。
有効対象
追加された保護対象オブジェクトとオブジェクトグループから、テンプレートを適用する保護対象と保護対象グループを選択します。
保護対象または保護対象グループは、現在の保護モジュール内で 1 つのテンプレートにのみ関連付けることができます。保護対象および保護対象グループの追加方法の詳細については、保護対象と保護対象グループの設定をご参照ください。
デフォルト保護テンプレートを設定した場合、集約レート制限テンプレートに関連付けられていないすべての保護対象および保護対象グループが、適用対象としてデフォルトで選択されます。デフォルトテンプレートを設定しない場合、保護対象または保護対象グループは適用対象としてデフォルトで選択されません。適用対象は手動で変更できます。
ステップ 2: 集約レート制限テンプレートへのルールの作成
集約レート制限テンプレートは、保護ルールを追加した後にのみ有効になります。
ピークスロットリング セクションで、ルールを作成するテンプレートを見つけ、操作 列の ルールの作成 をクリックします。 ルールの作成 ダイアログボックスで、次の設定を完了し、OK をクリックします。
設定項目 | 説明 |
Rule Name | ルールの名前を入力します。 |
一致条件 | ルールに一致するリクエストの特性を設定します。 [条件を追加] をクリックして条件を追加します。ルールには最大 5 つの条件を追加できます。複数の条件を指定した場合、すべての条件が満たされたときにのみリクエストがルールにヒットします。 各条件は、マッチフィールド、論理記号、マッチコンテンツ で構成されています。設定例:
一致フィールドと論理演算子の詳細については、一致条件をご参照ください。 |
同時アクセス元は次のリージョンに属します | WAF は、リクエストのソース IP を取得し、ソース IP に基づいてトラフィックの送信元を判断できます。この機能を有効にしない場合、トラフィックの送信元は区別されません。この機能を有効にすると、China および Outside China でリージョンを選択できます。選択されていないリージョンからのトラフィックには、集約レート制限で設定されたルールは適用されません。 |
スロットリングの方法 | QPS スロットリング: 1 秒あたりのクエリ数 (QPS) の固定上限によってサーバーへのトラフィックを制限します。この方法は、リクエスト数を厳密に制御してサーバーの安定性を維持する必要があるシナリオに適しています。 百分比スロットリング: 通過率によってサーバーへのトラフィックを制限します。この方法は、トラフィックスパイク時にリクエストを動的に制御する必要があるシナリオに適しており、QPS ベースのレート制限よりも柔軟です。 |
スロットリングのしきい値 | QPS 制限を設定します。
説明 QPS 制限については、技術実装の複雑さとシステム環境の動的な変化により、実際の QPS は設定値を中心に約 10% 変動する可能性があります。この変動は、レート制限アルゴリズムの正常な動作であり、システムパフォーマンスとレート制限の精度のバランスを取るためのものです。実際のトラフィックを定期的に監視し、最適な結果を得るために必要に応じて値を調整してください。 パーセンテージ制限を設定します。
|
スロットリングアクション | ルールにヒットしたリクエストに対して実行するアクションを選択します。有効な値:
|
有効化されるモード |
|
最大 5 つのルールを作成できます。
設定例
例 1: 長期的に 1 秒あたりの最大リクエスト数を 1000 に制限し、ルールを常に有効に保ち、米国オハイオ州からのトラフィックのみを制限し、保護アクションに [ブロック] を選択する場合。
ルール名: 長期 QPS スロットリング
有効モード: 常に有効
最大 QPS: 1000
送信元リージョン: 中国大陸以外 - 北米 - 米国 - オハイオ
保護アクション: [ブロック]
例 2: 大規模プロモーション時に、URI に shopping を含むリクエストについて、特定の日付の 09:00 から特定の日付の 18:00 まで 1 秒あたりの最大リクエスト数を 1000 に制限し、中国のすべてのリージョンからのトラフィックのみを制限し、レート制限アクションに [ブロック] を選択する場合。
ルール名: プロモーションスロットリング
有効モード: 期間指定で有効
一致フィールド: URI に shopping を含む
期間: 特定の日付の 09:00 から特定の日付の 18:00 まで
最大 QPS: 1000
送信元リージョン: 中国のすべてのリージョン
レート制限アクション: [ブロック]
例 3: 毎週末の 09:00 から 18:00 まで 1 秒あたりの最大リクエスト数を 1000 に制限し、香港 (中国) からのトラフィックのみを制限し、保護アクションに [モニター] を選択する場合。
ルール名: 週末スロットリング
有効モード: サイクル指定で有効
サイクルと期間: 毎週土曜日と日曜日の 09:00 から 18:00 まで
最大 QPS: 1000
タイムゾーン: ビジネスのタイムゾーンまたはサーバーのタイムゾーン
送信元リージョン: 香港 (中国)
レート制限アクション: [モニター]
日常のメンテナンス
保護テンプレートの編集
ビジネスやプロジェクトの要件は時間とともに変化する可能性があります。保護テンプレートを調整することで、ルールを現在の要件に合わせることができます。ルールを調整することで、システムやプロセスの効率とパフォーマンスを向上させたり、リソースの無駄を削減したりすることもできます。
保護テンプレートの有効化または無効化: 保護テンプレートの作成後、ステータス を使用してテンプレートを有効化または無効化できます。
保護テンプレートの変更:対象のテンプレートの 操作 列にある 編集 をクリックします。 変更が完了したら、下部にある OK をクリックして変更を保存します。
保護テンプレートの削除
不要になった保護テンプレートは削除できます。テンプレートを削除する前に、保護対象オブジェクトが関連付けられていないことを確認してください。対象のテンプレートの操作列で削除をクリックし、表示されるプロンプトでOKをクリックします。
テンプレートが削除されると、システムは自動的にデフォルトテンプレートを使用して、削除されたテンプレートが以前保護していた対象を保護します。
デフォルトテンプレートに保護対象が含まれている状態で削除すると、これらの保護対象は集約レート制限によって保護されなくなります。