Azure Event Gridの名前空間は、ワークロードの容量を定義するためにスループット単位(TU)を使用します。 オートスケーリングは、リアルタイムのイベントトラフィックやリソース利用率に応じて名前空間に割り当てられたTUの数を自動的に調整する組み込み機能です。 スタンダードティアの任意のイベントグリッド名前空間でオートスケーリングを有効にすることができます。
オートスケーリングを有効にすると、Event Gridはイベント入力率、イベント出口率、MQTT接続数、メッセージスループットなどの主要性能指標を継続的に監視します。 利用率が定義された閾値を超えると、Event Gridは設定した最小・最大制限内でTUの数を増減します。 この動作により、交通量の急増時に安定したパフォーマンスを維持し、低活動時間帯のコスト削減に役立ち、手動介入を必要とせずに実現できます。
Note
オートスケールは 、スタンダード ティアのイベントグリッドネームスペースでのみ利用可能です。 ティアの詳細については、「 ソリューションに合った適切なイベントグリッドティアの選択」をご覧ください。
なぜオートスケールを使うのか
イベント駆動型やIoTワークロードはしばしば予測不可能です。 接続数、メッセージスループット、イベント配信率は、ビジネス活動、時間帯、外部トリガーによって大きく変動します。 固定容量プロビジョニングは2つの問題を引き起こす可能性があります。
- アンダープロビジョニング:トラフィックが割り当て容量を超えると、イベントが制限され、遅延が増加したりメッセージが切れたりすることがあります。
- 過剰プロビジョニング:トラフィックが少ない場合、使っていない容量に対して支払いをします。
オートスケールは、名前空間の容量を自動的に正しいサイズにすることで、両方の問題に対応します。 特に以下の点で価値があります:
- MQTTワークロードでは 、デバイスの接続や切断によってメッセージのファンアウトやサブスクリプションの増加が急速に変化します。
- イベントブローカーのワークロード。これには、定期的なバッチアップロードや需要に応じたスパイクなど、バースト的な入力パターンを持つものが含まれます。
- 加入者数や配送量がテナント間で変動するマルチテナントアプリケーション。
自動スケールの有効化
Autoscaleは完全に管理された体験です。 名前空間で有効にし、最小と最大TUの数を指定します。 Event Gridはすべてのスケーリング決定を内部で処理します。 個別のスケーリングルールや閾値、クールダウン時間を設定する必要はありません。
Azureポータル、Azure Resource Managerテンプレート、またはREST APIを使って自動スケールを有効にすることができます。 詳細については、「 イベントグリッド名前空間の自動スケールを有効にする」をご覧ください。
自動拡大を有効にすると、Event Gridはすべてのスケーリングカテゴリでの利用率を継続的に評価します。 システムはルックバックウィンドウを通じて使用データを集約し、カテゴリごとの最も高い利用率を内部の閾値と比較します。 この評価に基づき、Event Gridは設定範囲内で自動的にTUを増減します。
スケーリングカテゴリとTUあたりの容量
以下の表は、各スループットユニットが提供する容量を示しています。 Autoscaleは、イベントブローカーとMQTTワークロードの両方でこれらの制限の利用率を一定割合として評価します。
| カテゴリ | TUあたりの容量 |
|---|---|
| イベント受信(件数) | 1秒あたり1,000イベント |
| イベント入力(スループット) | 1MB/秒 |
| イベントのエグレス (カウント) | 2,000件/秒 |
| イベントエグレス(スループット) | 2 MB/秒 |
| MQTT インバウンド公開 (カウント) | 1秒あたり1,000件のメッセージ |
| MQTT・インバウンドパブリッシュ(スループット) | 1MB/秒 |
| MQTT アウトバウンド公開 (カウント) | 1秒あたり1,000件のメッセージ |
| MQTTのアウトバウンドパブリッシュ(スループット) | 1MB/秒 |
| MQTT登録クライアントリソース | 1万人のクライアント |
| MQTTアクティブ接続 | 10,000件の接続 |
| MQTT保持メッセージ数 | 1秒あたり100メッセージ |
| MQTT接続数 | 1秒あたり200リクエスト |
名前空間の制限の完全なリストについては、Azure Event Gridのクォータとリミットを参照してください。
スケーリング挙動と閾値
スケールアップ動作
スケーリングアップ操作は、ルックバックウィンドウ内で任意のカテゴリが最大利用閾値を超えた時点で開始されます。 スケールアップが始まると、Event Gridは利用率を正規化するために必要なTU数を計算します。 TUの増加は、名前空間で設定した最大TU制限によって制約されます。
スケールダウン動作
スケールダウンは、すべてのカテゴリーが一貫して最低利用率の閾値を下回ったときに始まります。 Event Gridがスケールダウンをトリガーすると、利用率を正規化するために必要なTU数を計算します。 TUの減少は、設定した最低TU上限に従います。
クールダウン期間
スケーリング操作が終わると、さらにスケーリングが行われる前にクールダウン期間がかかります。 クールダウン期間はスケールアップと縮小の切り替えを防ぎ、システムが新しい容量で安定する時間を与えます。
スケーリングの例
現在12 TUに割り当てられている名前空間で、ルックバックウィンドウで以下のトラフィックが観察されていると考えます。
- イベント入力:11,000イベント/秒
- イベント入力スループット:3.6 MB/秒
ステップ1:カテゴリーごとの利用率を計算する
| カテゴリ | 計算 | 使用率 |
|---|---|---|
| イベント受信(件数) | 11,000 / (12 x 1,000) | 91.7% |
| イベント入力(スループット) | 3.6 / (12 x 1) | 30.0% |
ステップ2:最も高い利用率を決定する
すべてのカテゴリーでの最大利用率は91.7%(イベント入力回数)です。
ステップ 3: スケールアップ操作を実行する
91.7% がスケールアップ利用閾値を超えるため、スケールアップ操作が発動されます。
ステップ4:名前空間の境界を適用する
名前空間の最大値が15 TUに設定されている場合、最終値は15 TUに固定されます。
スケールアップ操作でTU数を15に増やす必要があり、名前空間の最大値を20 TUに設定した場合、スケールアップ操作後の最終TU数は15 TUとなります。
結果:
名前空間は12 TUから15 TUまでスケールします。
Tip
その後の評価サイクルでは、システムは15 TUでの利用率を再評価します。 このプロセスは、利用率が閾値以下になるか最大TU上限に達するまで続きます。
制限と考慮事項
- オートスケールはスタンダードティアでのみ利用可能です。
- 名前空間あたりの最大TU数は40です。 40 TUを超える増額を希望するには、Microsoftサポートにお問い合わせください。
- 自動スケールの最低TU値は1です。
- オートスケールはすべてのカテゴリーを一緒に評価します。 もし1つのカテゴリーだけが高い利用率であれば、スケールアップが発生します。 すべてのカテゴリーで最も期待される需要に対応するために、最小および最大TU値を計画しましょう。
- クールダウン期間中は、利用率が変わってもスケーリング操作は一切行われません。 即時のスケールアップを必要とせずに、予想されるベースライン負荷に対応できる最小のTU割り当てを縮小しましょう。
- スケーリング操作は非同期で行われます。 スケーリングの決定が下されてから新しい容量が発効するまでに短い期間があるかもしれません。