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 でスケールアップする
ブラウザーで、Azure Portal を開きます。
SignalR Service のページで、左側のメニューから [スケール アップ] を選択します。
[変更] をクリックし、ポップ アウト ブレードで [Standard] レベルを選択します。
[保存] を選択します。
Azure portal でスケールアウトする
ブラウザーで、Azure Portal を開きます。
SignalR Service のページで、左側のメニューから [スケール アウト] を選択します。
[手動スケール] セクターで単位を選択します。
[保存] を選択します。
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 レベルでサポートされています。
スケーリング、シャード化、クロスリージョンの各シナリオでは、複数のエンドポイントもサポートされています。