Azure SignalR Service のインスタンスをスケーリングする方法

この記事では、Azure SignalR Service のインスタンスをスケーリングする方法を示します。 スケーリングには、スケールアップとスケールアウトの 2 つのシナリオがあります。

  • スケールアップ: ユニット、接続、メッセージなどの数を増やします。 価格レベルを Free から Standard に変更してスケールアップします。
  • スケールアウト: SignalR ユニットの数を増やします。 最大 100 ユニットまでスケールアウトできます。 スケーリングのために選択できる単位オプションは限られています。単一の SignalR サービス インスタンスに対しては、1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100 ユニットです。 100 ユニットを超えてスケーリングする場合、Premium_P2 SKU では拡張された機能が提供されます。

スケール設定が適用されるまでに数分かかります。 まれに、適用されるまでに 30 分程度かかる場合があります。 スケーリングでは、コードの変更やサーバー アプリケーションの再デプロイは必要ありません。

個別の SignalR Service の価格および容量の詳細については、Azure SignalR Service の価格詳細に関するページを参照してください。

Note

SignalR Service を Free レベルから Standard または Premium レベルに (またはその逆に) 変更すると、パブリック サービス IP が変更され、インターネット全体で DNS サーバーに変更が反映されるまで通常は 30 分から 60 分かかります。 DNS が更新されるまで、サービスにアクセスできない可能性があります。 一般に、価格レベルを頻繁に変更することはお勧めしません。

Azure portal でスケールアップする

  1. ブラウザーで、Azure Portal を開きます。

  2. SignalR Service のページで、左側のメニューから [スケール アップ] を選択します。

  3. [変更] をクリックし、ポップ アウト ブレードで [Standard] レベルを選択します。

    ポータルでのスケールアップのスクリーンショット。

  4. [保存] を選択します。

Azure portal でスケールアウトする

  1. ブラウザーで、Azure Portal を開きます。

  2. SignalR Service のページで、左側のメニューから [スケール アウト] を選択します。

  3. [手動スケール] セクターで単位を選択します。

    ポータルでのスケールアウトのスクリーンショット。

  4. [保存] を選択します。

Azure CLI を使用したスケーリング

このスクリプトは、Free レベルの新しい SignalR Service リソースと新しいリソース グループを作成し、Standard レベルにスケールアップします。

#!/bin/bash

# Generate a unique suffix for the service name
let randomNum=$RANDOM*$RANDOM

# Generate a unique service and group name with the suffix
SignalRName=SignalRTestSvc$randomNum
#resource name must be lowercase
mySignalRSvcName=${SignalRName,,}
myResourceGroupName=$SignalRName"Group"

# Create resource group 
az group create --name $myResourceGroupName --location eastus

# Create the Azure SignalR Service resource
az signalr create \
  --name $mySignalRSvcName \
  --resource-group $myResourceGroupName \
  --sku Free_F1 \
  --service-mode Default

# Scale up to Standard Tier, and scale out to 50 units
az signalr update \
  --name $mySignalRSvcName \
  --resource-group $myResourceGroupName \
  --sku Standard_S1 \
  --unit-count 50

新しいリソース グループに対して生成された実際の名前はメモしておいてください。 このリソース グループ名は、すべてのグループ リソースを削除するときに使います。

デプロイのクリーンアップ

サンプル スクリプトの実行後は、次のコマンドを使用してリソース グループとすべての関連リソースを削除することができます。

az group delete --name myResourceGroup

価格レベルの比較

それぞれの価格レベルに含まれるメッセージや接続などの詳細については、SignalR Service の価格詳細に関するページを参照してください。

サービスの制限、クォータ、各レベルでの制約の表は、SignalR Service の制限に関するページを参照してください。

Premium_P2 SKU での L インスタンス サポートの強化

新しいPremium_P2 SKU は、需要の高いシナリオに対する広範なスケーラビリティを容易にするように設計されています。 この SKU を使用すると、100、200、300、400、500、600、 700、800、900、1000 ユニットの間で単一の SignalR サービス インスタンスに対してスケーリングできます。 この機能強化により、最大 100 万のコンカレント接続の処理が可能になり、大規模でリアルタイムの通信ニーズに対応できます。

Azure portal または Azure CLI を使用して、SKU を Premium_P2 にスケールアップできます。

Premium_P2 レベルでは、内部的に異なるアーキテクチャを使用して、大量の基になるリソースを管理します。 したがって、このレベルのスケーリング操作は、より小さな SKU のものと比べて時間がかかる可能性があります。

Note

SignalR ユニットの数は、リージョンごとにサブスクリプションあたり 150 が上限となる既定のクォータ制限があることに注意してください。 これはソフト制限であり、要求に応じて増やすことができます。 これを行うには、このクォータの調整を要求するサポート チケットを送信するだけです。

次のステップ

このガイドでは、1 つの SignalR Service インスタンスをスケーリングする方法について説明しました。

自動スケーリングは、Azure SignalR Service Premium レベルでサポートされています。

スケーリング、シャード化、クロスリージョンの各シナリオでは、複数のエンドポイントもサポートされています。