Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

Quota、Spike Arrest、および Concurrent Rate Limit ポリシーの比較

Quota ポリシーと Spike Arrest ポリシーと Concurrent Rate Limit ポリシー -- レート制限のニーズを最も良く満たすのはどれか? 以下の比較表を参考にしてください。

  クォータ Spike Arrest Concurrent Rate Limit
適した用途: アプリが API プロキシのバックエンドに対して所定の期間内に作成できる接続の数を制限します。 API プロキシのターゲットバックエンドを、サーバートラフィックのスパイクやサービス拒否攻撃から保護します。 アプリが API プロキシのバックエンドに対して同時に作成できる接続の数を制限します。
適さない用途:

API プロキシをトラフィックのスパイクから保護する目的では使用しないでください。

この目的には、Spike Arrest ポリシーまたは Concurrent Rate Limit ポリシーを使用します。

アプリが API プロキシのターゲットバックエンドに対して所定の期間内に作成できる接続の数のカウントと制限には使用しないでください。

この目的には、Quota ポリシーを使用します。

アプリが API プロキシのターゲットバックエンドに対して所定の期間内に作成できる接続の数の制限には使用しないでください。

この目的には、Quota ポリシーを使用します。

カウント格納の可否
ポリシー添付に関するベストプラクティス:

ProxyEndpoint Request PreFlow に、概してユーザー認証後に添付します。

これにより、ポリシーが API プロキシのエントリポイントでクォータカウントを確認できます。

ProxyEndpoint Request PreFlow に、概してフローの一番最初に添付します。

これにより、API プロキシのエントリポイントでスパイク保護を提供できます。

このポリシーは以下の 3 箇所に添付する必要があります。

  • TargetEndpoint Request PreFlow
  • TargetEndpoint Response PreFlow
  • TargetEndpoint DefaultFaultRule
制限に達したときの HTTP ステータスコード:

500 (Internal Server Error) *

500 (Internal Server Error) *

503 (サービス利用不可)
参考情報:
  • クォータカウンタは Cassandra に格納されます。
  • カウンタを非同期に同期するようポリシーを構成して、リソースを節約してください。
  • 非同期カウンタの同期により、レート制限のレスポンスが遅れることがあり、呼び出しが設定されている制限を少しだけオーバーできる場合があります。
  • 最後のトラフィックが受信された時刻に基づいて調整が実施されます。その時刻はメッセージプロセッサごとに格納されます。
  • レート制限として毎秒 100 呼び出しを指定すると、メッセージプロセッサには 1 つの呼び出しが 1/100 秒 (10 ms) ごとに許可されることになります。10 ms 以内の別の呼び出しは拒否されます。
  • 毎秒のレート制限値が大きくても、ほとんど同時のリクエストは拒否されることがあります。
  • メッセージプロセッサ当たりの同時接続の数を保持します。
  • 個々の API プロキシが接続を数個しか処理しなくても、全体として、同じバックエンドサービスを参照するレプリケートされた API プロキシの集合に対する接続が、サービスの能力を上回る可能性があります。このポリシーを使用して、このトラフィックを対処できる数の接続にまで制限してください。
詳細情報: Quota policy Spike Arrest policy Concurrent Rate Limit policy

* The current HTTP status code for exceeding the rate limit is 500, but it will soon be changed to 429. Until the change occurs, if you are want the status code to be 429 for all three policy types used in an organization (Quota, Spike Arrest, and Concurrent Rate Limit), a property needs to be set on your organization (features.isHTTPStatusTooManyRequestEnabled). If you're a cloud customer, contact Apigee Support to have the property enabled.

Edge for Private Cloud のお客様の場合は、次の API 呼び出しでこのプロパティを設定します。

curl -u email:password -X POST -H "Content-type:application/xml" http://host:8080/v1/o/myorg -d \
"<Organization type="trial" name="MyOrganization">
    <DisplayName>MyOrganization</DisplayName>
    <Environments/>
    <Properties>
        <Property name="features.isHTTPStatusTooManyRequestEnabled">true</Property>
    </Properties>
</Organization>"

 

Help or comments?