次の方法で共有


PowerShell を使用して複数の NIC を持つ VM (クラシック) を作成する

Azure に仮想マシン (VM) を作成し、複数のネットワーク インターフェイス (NIC) を各 VM にアタッチできます。 複数 NIC では、複数の NIC 全体にトラフィック タイプを分散できます。 たとえば、インターネットと通信する NIC もあれば、インターネットに接続されていない内部リソースとのみ通信する NIC もあるとします。 アプリケーションの配布や WAN の最適化ソリューションなど、多くのネットワーク仮想アプライアンスでは、複数の NIC 間にネットワーク トラフィックを分散できる必要があります。

重要

Azure には、リソースの作成と操作に関して、2 種類のデプロイ モデルがあります。Resource Manager とクラシックです。 この記事では、クラシック デプロイ モデルの使用方法について説明します。 最新のデプロイメントでは、リソース マネージャー モデルを使用することをお勧めします。 Resource Manager デプロイ モデルを使用してこれらの手順を実行する方法について説明します。

シナリオ

ここでは、VM で複数の NIC を使用するデプロイメントについて、具体的なシナリオを使って説明します。 このシナリオでは、Azure でホストされる 2 層の IaaS ワークロードを使用します。 各層は、仮想ネットワーク (VNet) の専用サブネットにデプロイされています。 フロントエンド層は複数の Web サーバーで構成されていて、Web サーバーは高可用性のために 1 つのロード バランサー セットにグループ化されています。 バックエンド層は、複数のデータベース サーバーで構成されています。 データベース サーバーは、それぞれ 2 つの NIC を使用してデプロイされています。1 つはデータベース アクセス用、もう 1 つは管理用です。 また、各サブネットおよびデプロイメント内の NIC に対して許可されるトラフィックを制御するためのネットワーク セキュリティ グループ (NSG) も含まれます。 次の図に、このシナリオの基本的なアーキテクチャを示します。

MultiNIC シナリオ

次の手順では、IaaSStory という名前のリソース グループを WEB サーバーに、IaaSStory-BackEnd という名前のリソース グループを DB サーバーに使用します。

前提条件

DB サーバーを作成する前に、このシナリオで必要なすべてのリソースを備えた IaaSStory リソース グループを作成する必要があります。 これらのリソースを作成するには、次の手順に従います。 VNet を作成するには、「仮想ネットワークを作成する」の記事の手順に従います。

前提条件: Azure PowerShell モジュールのインストール

この記事の手順を実行するには、Azure PowerShell モジュールをインストールして構成する必要があります。 必ず、すべての手順を完了してください。 インストールが完了したら、Azure にサインインし、サブスクリプションを選択します。

Note

これらの手順を完了するには Azure アカウントが必要です。 Azure アカウントを持っていない場合、無料試用版でサインアップできます。

バックエンド VM を作成する

バックエンド VM は、次のリソースの作成に依存します。

  • バックエンド サブネット。 データベース サーバーは、トラフィックを分離するために、別のサブネットに含まれます。 次のスクリプトでは、このサブネットが WTestVnetという名前の Vnet に存在する必要があります。
  • データ ディスクのストレージ アカウント。 パフォーマンスを高めるために、データベース サーバー上のデータ ディスクはソリッド ステート ドライブ (SSD) テクノロジーを使用します。これには、Premium Storage アカウントが必要です。 デプロイする Azure の場所が Premium Storage をサポートすることを確認してください。
  • 可用性セット。 メンテナンス中に少なくとも 1 つの VM が稼働し、実行されているようにするためには、すべてのデータベース サーバーを単一の可用性セットに追加します。

手順 1 - スクリプトの開始

使用するすべての PowerShell スクリプトは、 ここからダウンロードできます。 以下の手順に従って、ご使用の環境で機能するようにスクリプトを変更します。

  1. 上記の 前提条件でデプロイした既存のリソース グループに基づいて、以下の変数の値を変更します。

     $location              = "West US"
     $vnetName              = "WTestVNet"
     $backendSubnetName     = "BackEnd"
    
  2. バックエンド デプロイメントに使用する値に基づいて、以下の変数の値を変更します。

     $backendCSName         = "IaaSStory-Backend"
     $prmStorageAccountName = "iaasstoryprmstorage"
     $avSetName             = "ASDB"
     $vmSize                = "Standard_DS3"
     $diskSize              = 127
     $vmNamePrefix          = "DB"
     $dataDiskSuffix        = "datadisk"
     $ipAddressPrefix       = "192.168.2."
     $numberOfVMs           = 2
    

手順 2 - VM 用に必要なリソースの作成

新しいクラウド サービスとすべての VM に対してデータ ディスクのストレージ アカウントを作成する必要があります。 また、イメージと、VM のローカル管理者アカウントを指定する必要があります。 これらのリソースを作成するには、次の手順に従います。

  1. 新しいクラウド サービスを作成します。

     New-AzureService -ServiceName $backendCSName -Location $location
    
  2. Premium Storage アカウントを作成します。

     New-AzureStorageAccount -StorageAccountName $prmStorageAccountName `
     -Location $location -Type Premium_LRS
    
  3. 上で作成したストレージ アカウントを、サブスクリプションの現在のストレージ アカウントとして設定します。

     $subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true}  
     Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName `
     -CurrentStorageAccountName $prmStorageAccountName
    
  4. VM のイメージを選択します。

     $image = Get-AzureVMImage `
     | where{$_.ImageFamily -eq "SQL Server 2014 RTM Web on Windows Server 2012 R2"} `
     | sort PublishedDate -Descending `
     | select -ExpandProperty ImageName -First 1
    
  5. ローカル管理者アカウントの資格情報を設定します。

     $cred = Get-Credential -Message "Enter username and password for local admin account"
    

手順 3 - VM の作成

ループを使用して必要な数の VM を作成し、必要な NIC と VM をループ内に作成します。 NIC と VM を作成するには、次の手順を実行します。

  1. $numberOfVMs 変数の値に基づいて、for ループを開始して、1 つの VM と 2 つの NIC を作成するコマンドを必要な回数繰り返します。

     for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
    
  2. VM のイメージ、サイズ、可用性セットを指定する VMConfig オブジェクトを作成します。

     $vmName = $vmNamePrefix + $suffixNumber
     $vmConfig = New-AzureVMConfig -Name $vmName `
     	-ImageName $image `
     	-InstanceSize $vmSize `
     	-AvailabilitySetName $avSetName
    
  3. Windows VM として VM をプロビジョニングします。

     Add-AzureProvisioningConfig -VM $vmConfig -Windows `
     	-AdminUsername $cred.UserName `
     	-Password $cred.GetNetworkCredential().Password
    
  4. 既定の NIC 設定し、静的 IP アドレスを割り当てます。

     Set-AzureSubnet			-SubnetNames $backendSubnetName -VM $vmConfig
     Set-AzureStaticVNetIP 	-IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
    
  5. 各 VM の 2 つめの NIC を追加します。

     Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) `
     -SubnetName $backendSubnetName `
     -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) `
     -VM $vmConfig
    
  6. 各 VM のデータ ディスクを作成します。

     $dataDisk1Name = $vmName + "-" + $dataDiskSuffix + "-1"    
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk1Name `
     -LUN 0
    
     $dataDisk2Name = $vmName + "-" + $dataDiskSuffix + "-2"   
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk2Name `
     -LUN 1
    
  7. 各 VM を作成し、ループを終了します。

     New-AzureVM -VM $vmConfig `
     -ServiceName $backendCSName `
     -Location $location `
     -VNetName $vnetName
     }
    

手順 4 - スクリプトの実行

ニーズに合わせてスクリプトをダウンロードおよび変更し、スクリプトを実行して複数の NIC を持つバックエンド データベース VM を作成しました。

  1. スクリプトを保存し、それを PowerShell コマンド プロンプトまたは PowerShell ISE から実行します。 次のように、最初の出力が表示されます。

     OperationDescription    OperationId                          OperationStatus
    
     New-AzureService        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureStorageAccount xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    
     WARNING: No deployment found in service: 'IaaSStory-Backend'.
    
  2. 資格情報プロンプトに必要な情報を入力して、 [OK]をクリックします。 次の出力が返されます。

     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    

手順 5 - VM オペレーティング システム内でのルーティングの構成

Azure DHCP では、既定のゲートウェイが、仮想マシンに接続された最初の (プライマリ) ネットワーク インターフェイスに割り当てられます。 Azure では、既定のゲートウェイは、仮想マシンにアタッチされた追加の (セカンダリ) ネットワーク インターフェイスに割り当てられません。 したがって、既定では、セカンダリ ネットワーク インターフェイスのサブネット外のリソースと通信することはできません。 しかし、セカンダリ ネットワーク インターフェイスは、そのサブネット外のリソースと通信できます。 セカンダリ ネットワーク インターフェイスへのルーティングを構成するには、次の記事を参照してください。