Azure SignalR Service のユニットを自動的にスケーリングする

重要

自動スケールは、Azure SignalR Service Premiumレベルでのみ使用できます。

Azure SignalR Service Premiumレベルでは、Azure Monitor 自動スケーリングの実装である自動スケール機能がサポートされています。 自動スケーリングを使用すると、サービスの実際の負荷に合わせて、SignalR Serviceのユニット数を自動的にスケーリングできます。 自動スケーリングは、アプリケーションのパフォーマンスとコストを最適化するのに役立ちます。

Azure SignalR では、独自の サービス メトリックが追加されます。 ただし、ほとんどのユーザー インターフェイスは共有されており、 自動スケールをサポートする他の Azure サービスと共通で共通です。 Azure Monitor メトリックの主題に慣れたことがない場合は、Azure Monitor メトリックの集計と、SignalR Serviceメトリックを掘り下げる前に説明されたが表示されます。

SignalR Serviceでの自動スケーリングについての解釈

自動スケールを使用すると、サービスの実行中にAzure SignalR Serviceに割り当てられたユニットを動的に変更する条件を設定できます。 自動スケール条件は、 サーバーの負荷などのメトリックに基づいています。 自動スケーリングは、特定の時間の間の毎日など、スケジュールに従って実行するように構成することもできます。

たとえば、自動スケーリング機能を使用して、以下のスケーリング シナリオを実装できます。

  • 接続クォータ使用率が 70% を超えたときにユニットを増やす。
  • サーバーの負荷 が 20% を下回るとユニットを減らします。
  • ピーク時にユニットを追加し、オフ時間中にユニットを減らすスケジュールを作成します。

SignalR Serviceのパフォーマンスには複数のファクトが影響します。 システム パフォーマンスの完全なビューを提供するメトリックは 1 つもありません。 たとえば、多数のメッセージを送信する場合は、接続クォータが比較的少なくてもスケールアウトする必要があります。 接続クォータ使用率サーバー負荷 の両方を組み合わせることで、システム全体の負荷が示されます。 次のガイドラインが適用されます。

  • 接続数が 80 ~ 90% を超える場合はスケールアウトします。 接続数が不足する前にスケーリングアウトすると、スケールアウトが有効になる前に、新しい接続を受け入れるのに十分なバッファーが確保されます。
  • サーバーの負荷 が 80 ~ 90% を超える場合はスケールアウトします。 早期にスケーリングすると、スケールアウト操作中にパフォーマンスを維持するのに十分な容量がサービスに確保されます。

自動スケーリング操作は、通常、トリガーされてから 3 分から 5 分後に有効になります。 ユニットを頻繁に変更しないことが重要です。 経験則として、別の自動スケーリング操作を実行する前に、前の自動スケーリングから 30 分を許可することをお勧めします。 場合によっては、最適な自動スケーリングサイクル間隔を見つけるために実験が必要になる場合があります。

自動スケーリング設定を管理します

自動スケール設定ページを開きます:

  1. Azure portal に移動します。

  2. SignalR サービス ページを開きます。

  3. 左側のメニューの [設定] で、[スケールアウトする] を選択します。

  4. [構成] タブを選択します。Premium レベルの SignalR インスタンスがある場合は、リソースのスケーリング方法を選択するための2 つのオプションが表示されます:

    • 手動スケール、ユニット数を手動で変更できます。
    • カスタム自動スケーリング、メトリックと、またはタイム スケジュールに基づいて自動スケーリング条件を作成できます。
  5. [カスタム自動スケーリング] を選択します。 このページを使用して、Azure SignalR サービスの自動スケーリング条件を管理します。

デフォルトのスケーリング条件

カスタム自動スケーリング設定を初めて開くと、 デフォルト のスケール条件が既に作成されていることがわかります。 このスケーリング条件は、その他のスケーリング条件のいずれもそれに設定されたものに一致しないときに実行されます。 デフォルト の条件は削除できませんが、名前を変更したり、ルールを変更したり、自動スケーリングによって実行されるアクションを変更したりできます。

デフォルトの条件について、特定の曜日または期間に自動スケーリングするよう設定することはできません。 デフォルトの条件では、ユニット範囲へのスケーリングのみがサポートされます。 スケジュールに従ってスケーリングするには、新しいスケール条件を追加する必要があります。

自動スケーリングは、[ カスタム自動スケーリング] を選択した後で初めてデフォルトの条件を保存するまで有効になりません。

スケール条件を追加または変更する

Azure SignalR Serviceリソースをスケーリングする方法には、次の 2 つのオプションがあります:

  • メトリックに基づいてスケーリングする - 動的メトリックに基づいてユニットの制限内でスケーリングします。 メトリックの評価に使用する条件を設定するために、1 つ以上のスケール ルールが定義されています。
  • 特定のユニットにスケーリングする - 期間または定期的なスケジュールに基づいて、特定のユニット数にスケーリングします。

メトリックに基づいてスケーリングする

以下のプロシージャは、接続クォータ使用率が 70% を超えた場合にユニットを自動的に増やし (スケールアウトする)、接続クォータ使用率が 20% を下回った場合にユニットを減らす (スケールインする) という条件の追加方法を示しています。 インクリメントまたはデクリメントは、使用可能なユニット間で行われます。

  1. [スケール アウト] ページで、[リソースをスケーリングする方法を選択] オプションに [カスタム自動スケーリング] を選択します。

  2. [スケール モード] には、 [メトリックに基づいてスケーリングする] を選択します。

  3. [+ ルールの追加] を選択します。 Screenshot of custom rule based on a metric.

  4. [スケール ルール] ページで、次の手順を行います。

    1. [メトリック名] ドロップダウン リストからメトリックを選択します。 この例では、[接続クォータ使用率] です。
    2. 演算子としきい値を選択します。 この例では、[次の値より大きい]、および [スケール操作をトリガーするメトリックのしきい値][70] です。
    3. [アクション] セクションで操作を選択します。 この例では、 [Increase](増加) に設定されています。
    4. 次に、 [Add](追加)Screenshot of default autoscale rule screen. を選択します
  5. [+ Add a rule](+ ルールの追加) を再度選択し、 [スケール ルール] ページで次の手順を実行します。

    1. [メトリック名] ドロップダウン リストからメトリックを選択します。 この例では、[接続クォータ使用率] です。
    2. 演算子としきい値を選択します。 この例では、[次の値より小さい]、および [スケール操作をトリガーするメトリックのしきい値][20] です。
    3. [アクション] セクションで操作を選択します。 この例では、 [Decrease](減少) に設定されています。
    4. 次に、 [Add](追加)Screenshot Connection Quota Utilization scale rule. を選択します
  6. 最小最大既定 のユニット数を設定します。

  7. ツール バーの [保存] を選択して自動スケーリング設定を保存します。

特定のユニット数にスケーリングする

特定のユニット範囲にスケーリングするようにルールを構成するには、以下のステップに従います。

  1. [スケール アウト] ページで、[リソースをスケーリングする方法を選択] オプションに [カスタム自動スケーリング] を選択します。
  2. [スケール モード][特定のユニット数にスケーリングする] を選択します。
  3. [ユニット] で既定のユニット数を選択します。 Screenshot of scale rule criteria.

その他の条件を追加

前のセクションでは、自動スケーリング設定のための既定の条件を追加する方法について説明しました。 このセクションでは、自動スケーリング設定に条件を追加する方法について説明します。

  1. [スケール アウト] ページで、[リソースをスケーリングする方法を選択] オプションに [カスタム自動スケーリング] を選択します。
  2. [Default](既定) ブロックの下で [Add a scale condition](スケーリング条件を追加する) を選択します。 Screenshot of custom scale rule screen.
  3. [メトリックに基づいてスケーリングする] オプションが選択されていることを確認します。
  4. 接続クォータ使用率が 70% を超えたときにユニットを増やすルールを追加するには、[+ ルールの追加] を選択します。 既定の条件に関するセクションの手順に従います。
  5. 最小最大既定 のユニット数を設定します。
  6. また、カスタム条件に対してスケジュールを設定することもできます (既定の条件は対象外)。 条件の開始日と終了日を指定するか、または週の特定の曜日 (月曜日、火曜日など) を選択することができます。
    1. [Specify start/end dates](開始日/終了日の指定) を選択した場合、条件が有効になる [タイムゾーン][Start date](開始日) と時刻[End date](終了日) と時刻を (以下のイメージに表示されているように) 選択します。
    2. [Repeat specific days](特定の曜日に繰り返す) を選択した場合、条件を適用する曜日、タイムゾーン、開始時刻、終了時刻を選択します。

次のステップ

Azure CLI からの自動スケーリングの管理の詳細については、 az モニター自動スケーリング を参照してください。