クイック スタート:Azure PowerShell を使用して仮想マシン スケール セットを作成するQuickstart: Create a virtual machine scale set with Azure PowerShell

仮想マシン スケール セットを使用すると、自動スケールの仮想マシンのセットをデプロイおよび管理できます。A virtual machine scale set allows you to deploy and manage a set of autoscaling virtual machines. スケール セット内の VM の数を手動で拡張したり、CPU などのリソースの使用率、メモリの需要、またはネットワーク トラフィックに基づいて自動的にスケールする規則を定義したりすることができます。You can scale the number of VMs in the scale set manually, or define rules to autoscale based on resource usage like CPU, memory demand, or network traffic. その後、Azure ロード バランサーがトラフィックをスケール セット内の VM インスタンスに分散します。An Azure load balancer then distributes traffic to the VM instances in the scale set. このクイック スタートでは、Azure PowerShell を使用して仮想マシン スケール セットを作成し、サンプル アプリケーションをデプロイします。In this quickstart, you create a virtual machine scale set and deploy a sample application with Azure PowerShell.

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell を使用するUse Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。You can use either Bash or PowerShell with Cloud Shell to work with Azure services. ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell を開始するには:To start Azure Cloud Shell:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. [使ってみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
https://shell.azure.com に移動するか、 [Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. 新しいウィンドウで Cloud Shell を起動するLaunch Cloud Shell in a new window
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell でこの記事のコードを実行するには:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell を開始します。Start Cloud Shell.

  2. [コピー] ボタンを選択して、コード ブロックをコードにコピーします。Select the Copy button on a code block to copy the code.

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードを Cloud Shell セッションに貼り付けます。Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Enter キーを選択して、コードを実行します。Select Enter to run the code.

スケール セットを作成するCreate a scale set

スケール セットを作成する前に、New-AzResourceGroup を使用してリソース グループを作成します。Before you can create a scale set, create a resource group with New-AzResourceGroup. 次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。The following example creates a resource group named myResourceGroup in the eastus location:

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"

次に、New-AzVmss を使用して仮想マシン スケール セットを作成します。Now create a virtual machine scale set with New-AzVmss. 次の例では、Windows Server 2016 Datacenter プラットフォーム イメージを使用する myScaleSet という名前のスケール セットを作成します。The following example creates a scale set named myScaleSet that uses the Windows Server 2016 Datacenter platform image. 仮想ネットワーク用の Azure ネットワーク リソース、パブリック IP アドレス、およびロード バランサーが自動的に作成されます。The Azure network resources for virtual network, public IP address, and load balancer are automatically created. メッセージが表示されたら、スケール セット内の VM インスタンス用の自分の管理者資格情報を設定できます。When prompted, you can set your own administrative credentials for the VM instances in the scale set:

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -UpgradePolicyMode "Automatic"

すべてのスケール セットのリソースと VM を作成および構成するのに数分かかります。It takes a few minutes to create and configure all the scale set resources and VMs.

サンプル アプリケーションをデプロイするDeploy sample application

スケール セットをテストするには、基本的な Web アプリケーションをインストールします。To test your scale set, install a basic web application. VM インスタンスに IIS をインストールするスクリプトをダウンロードして実行するために、Azure カスタム スクリプト拡張機能が使用されます。The Azure Custom Script Extension is used to download and run a script that installs IIS on the VM instances. この拡張機能は、デプロイ後の構成、ソフトウェアのインストール、その他の構成や管理タスクに役立ちます。This extension is useful for post deployment configuration, software installation, or any other configuration / management task. 詳細については、「Windows のカスタム スクリプト拡張機能」を参照してください。For more information, see the Custom Script Extension overview.

カスタム スクリプト拡張機能を使用して、基本的な IIS Web サーバーをインストールします。Use the Custom Script Extension to install a basic IIS web server. 次のように、IIS をインストールするカスタム スクリプト拡張機能を適用します。Apply the Custom Script Extension that installs IIS as follows:

# Define the script for your Custom Script Extension to run
$publicSettings = @{
    "fileUris" = (,"https://raw.githubusercontent.com/Azure-Samples/compute-automation-configurations/master/automate-iis.ps1");
    "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File automate-iis.ps1"
}

# Get information about the scale set
$vmss = Get-AzVmss `
            -ResourceGroupName "myResourceGroup" `
            -VMScaleSetName "myScaleSet"

# Use Custom Script Extension to install IIS and configure basic website
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
    -Name "customScript" `
    -Publisher "Microsoft.Compute" `
    -Type "CustomScriptExtension" `
    -TypeHandlerVersion 1.8 `
    -Setting $publicSettings

# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -VirtualMachineScaleSet $vmss

アプリケーションへのトラフィックを許可するAllow traffic to application

基本的な Web アプリケーションへのアクセスを許可するには、New-AzNetworkSecurityRuleConfigNew-AzNetworkSecurityGroup を使用してネットワーク セキュリティ グループを作成します。To allow access to the basic web application, create a network security group with New-AzNetworkSecurityRuleConfig and New-AzNetworkSecurityGroup. 詳細については、「Azure 仮想マシン スケール セットのネットワーク」を参照してください。For more information, see Networking for Azure virtual machine scale sets.

# Get information about the scale set
$vmss = Get-AzVmss `
            -ResourceGroupName "myResourceGroup" `
            -VMScaleSetName "myScaleSet"

#Create a rule to allow traffic over port 80
$nsgFrontendRule = New-AzNetworkSecurityRuleConfig `
  -Name myFrontendNSGRule `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

#Create a network security group and associate it with the rule
$nsgFrontend = New-AzNetworkSecurityGroup `
  -ResourceGroupName  "myResourceGroup" `
  -Location EastUS `
  -Name myFrontendNSG `
  -SecurityRules $nsgFrontendRule

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName  "myResourceGroup" `
  -Name myVnet

$frontendSubnet = $vnet.Subnets[0]

$frontendSubnetConfig = Set-AzVirtualNetworkSubnetConfig `
  -VirtualNetwork $vnet `
  -Name mySubnet `
  -AddressPrefix $frontendSubnet.AddressPrefix `
  -NetworkSecurityGroup $nsgFrontend

Set-AzVirtualNetwork -VirtualNetwork $vnet

# Update the scale set and apply the Custom Script Extension to the VM instances
Update-AzVmss `
    -ResourceGroupName "myResourceGroup" `
    -Name "myScaleSet" `
    -VirtualMachineScaleSet $vmss

スケール セットのテストTest your scale set

動作中のスケール セットを表示するには、Web ブラウザーでサンプル Web アプリケーションにアクセスします。To see your scale set in action, access the sample web application in a web browser. Get-AzPublicIpAddress を使用して、ロード バランサーのパブリック IP アドレスを取得します。Get the public IP address of your load balancer with Get-AzPublicIpAddress. 次の例は、myResourceGroup リソース グループに作成された IP アドレスを表示します。The following example displays the IP address created in the myResourceGroup resource group:

Get-AzPublicIpAddress -ResourceGroupName "myResourceGroup" | Select IpAddress

ロード バランサーのパブリック IP アドレスを Web ブラウザーに入力します。Enter the public IP address of the load balancer in to a web browser. ロード バランサーは、次の例に示すように、VM インスタンスのいずれかにトラフィックを配分します。The load balancer distributes traffic to one of your VM instances, as shown in the following example:

実行中の IIS サイト

リソースをクリーンアップするClean up resources

必要がなくなったら、Remove-AzResourceGroup を使用して、リソース グループ、スケール セット、およびすべての関連リソースを削除できます。When no longer needed, you can use the Remove-AzResourceGroup to remove the resource group, scale set, and all related resources as follows. -Force パラメーターは、追加のプロンプトを表示せずにリソースの削除を確定します。The -Force parameter confirms that you wish to delete the resources without an additional prompt to do so. -AsJob パラメーターは、操作の完了を待たずにプロンプトに制御を戻します。The -AsJob parameter returns control to the prompt without waiting for the operation to complete.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

次のステップNext steps

このクイック スタートでは、基本的なスケール セットを作成し、カスタム スクリプト拡張機能を使用して基本的な IIS Web サーバーを VM インスタンスにインストールしました。In this quickstart, you created a basic scale set and used the Custom Script Extension to install a basic IIS web server on the VM instances. さらに学習するには、Azure 仮想マシン スケール セットを作成および管理する方法についてのチュートリアルに進んでください。To learn more, continue to the tutorial for how to create and manage Azure virtual machine scale sets.