一度に送信される API 要求の数が多すぎると、システムのパフォーマンスに影響します。レート制限を有効にすることにより、各ユーザーが送信する API 要求の数に制限が適用されます。
SD-WAN Orchestrator は、API の過度の使用を抑制し、システムの安定をもたらす特定の防御メカニズムを利用します。許可された制限を超える API 要求がブロックされ、HTTP 429 (Too many Requests) が返されます。システムには、再度要求を行う前に、クールダウンの期間が必要です。
SD-WAN Orchestrator には、次のタイプのレートリミッタが展開されます。
- [リーキー バケット リミッタ]:要求のバーストをスムーズにし、事前定義された数の要求のみを許可します。このリミッタは、指定された時間枠で許可される要求の数を制限します。
- [同時実行リミッタ]:同時に発生する要求の数を制限します。これにより、要求が同時に発生してリソースを奪い合い、クエリに長い時間がかかる状況を回避できます。
API 要求がレート制限される主な理由は次のとおりです。
- 多数のアクティブな要求または同時実行される要求。
- 要求の量の急増。
- Orchestrator でクエリが長時間実行され、システム リソースが長時間保持される場合、要求はドロップされます。
API に依存する開発者は、VCO レート制限機能が有効になっている場合に、次の方法でコードの安定性を向上させることができます。
- 要求がレート制限を超えた場合に HTTP 429 応答コードを処理します。
- レート リミッタが指定された期間内に許容される最大要求に達した場合のペナルティ時間は 5,000 ミリ秒になります。ブロックされた場合、クライアントには要求を再度実行する前に 5,000 ミリ秒のクールダウン期間があることが想定されます。5,000 ミリ秒のクールダウン期間中に行われた要求もレート制限の対象になります。
- 時系列 API には短い時間間隔を使用します。これにより、クエリが長時間実行されたために要求が期限切れになることがなくなります。
- 可能な限り、個々の顧客または Edge をクエリする方法よりもバッチ クエリ方法を優先します。
注: オペレータ スーパー ユーザーは、環境に基づいてレート制限を個別に設定します。関連するポリシーのクエリについては、オペレータにお問い合わせください。
システム プロパティを使用したレート制限ポリシーの設定
次のシステム プロパティを使用して、レート制限を有効にし、デフォルトのポリシー セットを定義することができます。
- vco.api.rateLimit.enabled
- vco.api.rateLimit.mode.logOnly
- vco.api.rateLimit.rules.global
- vco.api.rateLimit.rules.enterprise.default
- vco.api.rateLimit.rules.enterpriseProxy.default
システム プロパティの詳細については、システム プロパティのリストを参照してください。
API を使用したレート制限ポリシーの設定
システム プロパティを使用してレート リミッタ ポリシーをグローバル ルールとして設定することをお勧めします。このアプローチは、可能な限り最高の API パフォーマンスを実現し、トラブルシューティングを容易にし、すべてのパートナーとカスタマーにわたって一貫したユーザー エクスペリエンスを保証します。ただし、まれにですが、オペレータはグローバル ポリシーが特定のテナントまたはユーザーに対して緩すぎると判断する場合があります。このような場合、
VMware は、特定のパートナーおよびエンタープライズのポリシーを設定するために、次のオペレータ専用 API をサポートしています。
- [enterpriseProxy/insertOrUpdateEnterpriseProxyRateLimits]:パートナー固有のポリシーの設定に使用されます。
- [enterprise/insertOrUpdateEnterpriseRateLimits]:カスタマー固有のポリシーの設定に使用されます。
API の詳細については、https://code.vmware.com/apis/1037/velocloud-sdwan-vco-apiを参照してください。