メインコンテンツまでスキップ

Microsoft Throttlingとは?

Microsoft ThrottlingはMicrosoftのクラウドサービスやアプリケーションでユーザーのリソース使用を管理し制御する技術です。

これはクラウドサービス、データベース、APIリクエストなどを含む様々なMicrosoftサービスでシステム性能と安定性を維持するために使用されます。

主な目的

  • 性能維持:多くのユーザーやアプリケーションが同時にシステムにアクセスする際、性能低下を防止します。
  • リソース保護:過度なリクエストや使用量によりシステムリソースが枯渇しないようにします。
  • 公平な使用保証:すべてのユーザーに公平なリソース使用機会を提供します。
  • サービス安定性:急激なトラフィック増加にもサービスが安定的に運営されるようにします。

主な機能

  • API Rate Limiting:特定時間内にAPIリクエスト回数を制限します。
    • 例えば、秒間または分間最大リクエスト回数を設定して過度なリクエストを防止します。
  • データベースクエリ制限:データベースサーバーに過度なクエリリクエストが入ることを防止してデータベースの性能を維持します。
  • ネットワークトラフィック制御:ネットワーク帯域幅を制限して特定のユーザーやサービスがネットワークリソースを独占しないようにします。
  • Compute Resource Limiting:仮想マシンやコンテナでCPU、メモリ使用量を制限して特定のアプリケーションが全体システム性能に影響を与えないようにします。

適用例

  • Azure API Management:APIリクエスト数を制限してAPIサービスの安定性を維持します。
  • Azure SQL Database:データベースクエリの速度と頻度を制御してデータベース性能を最適化します。
  • Microsoft Graph:Microsoft 365のデータにアクセスする際、APIリクエスト数を制限してサービスの安定性を維持します。

技術的実装方法_ Rate Limiting Algorithms

  • Fixed Window:固定された時間間隔でリクエスト数を制限します。
  • Sliding Window:移動する時間窓を使用してより柔軟にリクエストを制限します。
  • Token Bucket:一定速度でトークンを発行し、リクエストを処理するたびにトークンを消費する方式です。
  • Leaky Bucket:一定速度でリクエストを処理してバーストトラフィックを平準化します。
  • API Gateway:APIリクエストを制御し制限を適用する中間レイヤーとしての役割を果たします。
  • Custom Middleware:アプリケーションコードに直接Throttlingロジックを実装してリクエストを制御します。

このように、Microsoft Throttlingはクラウドインフラとサービスの安定性と性能を維持するために重要な役割を果たします。

適切なThrottling設定はサービス可用性を高め、ユーザー体験を改善するのに役立ちます。

参考文書