注
Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「 Azure PowerShell を AzureRM から Az に移行する」を参照してください。
Azure App Service アプリは、実行されている App Service プラン をスケーリングすることでスケーリングできます。 同じ App Service プランで複数のアプリを実行すると、スケールアウトされた各インスタンスはプラン内のすべてのアプリを実行します。
これに対し、App Service プラン レベルで アプリごとのスケーリング を有効にして、アプリをホストする App Service プランとは別にスケーリングできます。 これにより、App Service プランを 10 個のインスタンスにスケーリングできますが、1 つのアプリは 5 つだけを使用するように設定できます。
注
アプリごとのスケーリングは、Standard、Premium、Premium V2、Premium V3、Isolated の価格レベルでのみ使用できます。
アプリは、インスタンス間で均等に分散するためのベスト エフォート アプローチを使用して、使用可能な App Service プランに割り当てられます。 均等な配布は保証されませんが、プラットフォームでは、同じアプリの 2 つのインスタンスが同じ App Service プラン インスタンスでホストされていないことが保証されます。
プラットフォームは、ワーカーの割り当てを決定するためにメトリックに依存しません。 アプリケーションは、インスタンスが App Service プランに追加または削除された場合にのみ再調整されます。
PowerShell を使用したアプリごとのスケーリング
-PerSiteScaling $true
コマンドレットに New-AzAppServicePlan
パラメーターを渡して、アプリごとのスケーリングを使用してプランを作成します。
New-AzAppServicePlan -ResourceGroupName $ResourceGroup -Name $AppServicePlan `
-Location $Location `
-Tier Premium -WorkerSize Small `
-NumberofWorkers 5 -PerSiteScaling $true
-PerSiteScaling $true
コマンドレットに Set-AzAppServicePlan
パラメーターを渡すことで、既存の App Service プランでアプリごとのスケーリングを有効にします。
Set-AzAppServicePlan -ResourceGroupName $ResourceGroup `
-Name $AppServicePlan -PerSiteScaling $true
アプリ レベルで、App Service プランでアプリが使用できるインスタンスの数を構成します。
次の例では、基になる App Service プランがスケールアウトするインスタンスの数に関係なく、アプリは 2 つのインスタンスに制限されています。
# Get the app we want to configure to use "PerSiteScaling"
$newapp = Get-AzWebApp -ResourceGroupName $ResourceGroup -Name $webapp
# Modify the NumberOfWorkers setting to the desired value
$newapp.SiteConfig.NumberOfWorkers = 2
# Post updated app back to Azure
Set-AzWebApp $newapp
Von Bedeutung
$newapp.SiteConfig.NumberOfWorkers
は $newapp.MaxNumberOfWorkers
とは異なります。 アプリごとのスケーリングでは、 $newapp.SiteConfig.NumberOfWorkers
を使用してアプリのスケール特性を決定します。
Azure Resource Manager を使用したアプリごとのスケーリング
次の Azure Resource Manager テンプレートによって作成されます。
- 10 インスタンスにスケールアウトされた App Service プラン。
- 最大 5 つのインスタンスにスケーリングするように構成されたアプリ。
App Service プランでは、 PerSiteScaling
プロパティを true "perSiteScaling": true
に設定しています。 アプリは、使用する number of workers
を 5 "properties": { "numberOfWorkers": "5" }
に設定しています。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters":{
"appServicePlanName": { "type": "string" },
"appName": { "type": "string" }
},
"resources": [
{
"comments": "App Service Plan with per site perSiteScaling = true",
"type": "Microsoft.Web/serverFarms",
"sku": {
"name": "P1",
"tier": "Premium",
"size": "P1",
"family": "P",
"capacity": 10
},
"name": "[parameters('appServicePlanName')]",
"apiVersion": "2015-08-01",
"location": "West US",
"properties": {
"name": "[parameters('appServicePlanName')]",
"perSiteScaling": true
}
},
{
"type": "Microsoft.Web/sites",
"name": "[parameters('appName')]",
"apiVersion": "2015-08-01-preview",
"location": "West US",
"dependsOn": [ "[resourceId('Microsoft.Web/serverFarms', parameters('appServicePlanName'))]" ],
"properties": { "serverFarmId": "[resourceId('Microsoft.Web/serverFarms', parameters('appServicePlanName'))]" },
"resources": [ {
"comments": "",
"type": "config",
"name": "web",
"apiVersion": "2015-08-01",
"location": "West US",
"dependsOn": [ "[resourceId('Microsoft.Web/Sites', parameters('appName'))]" ],
"properties": { "numberOfWorkers": "5" }
} ]
}]
}
高密度ホスティングに推奨される構成
アプリごとのスケーリングは、グローバル Azure リージョンと App Service Environment の両方で有効になっている機能です。 ただし、App Service Environment を使用して高度な機能とより大きな App Service プラン容量を利用することをお勧めします。
アプリの高密度ホスティングを構成するには、次の手順に従います。
高密度プランとして App Service プランを指定し、目的の容量にスケールアウトします。
App Service プランで
PerSiteScaling
フラグを true に設定します。numberOfWorkers
プロパティを 1 に設定すると、新しいアプリが作成され、その App Service プランに割り当てられます。- この構成を使用すると、可能な限り最高の密度が得られます。
ワーカーの数は、必要に応じて追加のリソースを付与するために、アプリごとに個別に構成できます。 例えば次が挙げられます。
- 使用率の高いアプリでは、
numberOfWorkers
を 3 に設定して、そのアプリの処理能力を増やすことができます。 - 使用率の低いアプリでは、
numberOfWorkers
が 1 に設定 されます。
- 使用率の高いアプリでは、