Azureで単数NICの仮想マシンを複数NICにする

nmikuni

こんにちは、Azureサポートチームの三國です。

今回は、単数NICの仮想マシンを複数NICにする方法についてご案内します。

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

はじめに


NICとは、ネットワークインターフェイスカードの略です。Azure Portalから仮想マシンを作成するときは単数NICがついている仮想マシンしか作成できないのですが、Azure PowerShellなどを使うことにより最初から複数のNICを持った仮想マシンを作成することができます。

最初から複数NICを持った仮想マシンを作成する方法は、下記のドキュメントをご覧ください。

複数の NIC を持つ Windows 仮想マシンの作成と管理

今回のテーマは、「後からNICの数を複数にしたい!」というケースです。

実は、2つのNICを持つ仮想マシンにもう1つNICを加えることは難しくありません。

本ブログにおいてこのケースは直接的には取り上げませんので、以下のドキュメントをご参照ください。

(なお、本ブログを読んでも方法については理解できるようになります)

既存の VM への NIC の追加

それでは、早速中身に入りましょう。

単数NICの仮想マシンを複数NICにする


以下のPowerShellを用いてください。解説は後述します。

注意!!このスクリプトにより仮想マシンが停止(割り当て解除)されます。

注意!!このスクリプトでは新しいNICにNSGを割り当てません。割り当てたい場合はスクリプトをカスタマイズするか、NIC追加後にポータルより行ってください。

######################################################################

### ログインとサブスクリプション指定

######################################################################

Login-AzureRmAccount

$mySub = Get-AzureRmSubscription | Out-GridView -Title "Select an Azure Subscription ..." -PassThru

Select-AzureRmSubscription -SubscriptionId $mySub.Id

######################################################################

###基本情報を設定する

###なお、パブリックIPアドレスの割り当ては任意です

######################################################################

$resourceGroup = "リソースグループ名"

$location = "場所"

$vmName = "仮想マシン名"

$PublicIpAddressName = "パブリックIPアドレス名"

$dnsNameforPublicIp = "パブリックIPアドレスに紐づくDNS名"

$vNetName = "仮想マシンの所属するVnet名"

$newNicName = "新しいNIC名"

$vm = Get-AzureRmVM -name $vmName -ResourceGroupName $resourceGroup

######################################################################

###仮想マシンを停止する

######################################################################

stop-azurermvm -name $vmName -ResourceGroupName $resourceGroup

######################################################################

###パブリックIPアドレスを作成する

###パブリックIPアドレスが不要であればコメントアウトください。

######################################################################

$pip = New-AzureRmPublicIpAddress -AllocationMethod Dynamic `

-ResourceGroupName $resourceGroup -DomainNameLabel $dnsNameforPublicIp `

-IpAddressVersion IPv4 -Location $location -Name $PublicIpAddressName

######################################################################

###新NICを作成する

###パブリックIPアドレスの割り当ては任意です。不要であれば、

###-PublicIpAddressIdオプションをコメントアウトしてください。

######################################################################

$myVnet = Get-AzureRmVirtualNetwork -Name $vNetName -ResourceGroupName $resourceGroup

$mySubnet = Get-AzureRmVirtualNetworkSubnetConfig -VirtualNetwork $myVnet `

|Out-GridView -Title "Select an Azure Subnet ..." -PassThru

$newNic = New-AzureRmNetworkInterface -Location $location `

-Name $newNicName -ResourceGroupName $resourceGroup `

-SubnetId $mySubnet.Id -PublicIpAddressId $pip.id

######################################################################

###新NICを追加する

######################################################################

Add-AzureRmVMNetworkInterface -VM $vm -Id $newNic.Id

######################################################################

###プライマリNICを指定する

###本手順では既存のNICをプライマリにしていますが、新NICをプライマリに

###したい場合は以下のようにしてください

###$vm.NetworkProfile.NetworkInterfaces[1].Primary=$true

######################################################################

$vm.NetworkProfile.NetworkInterfaces[0].Primary=$true

######################################################################

###仮想マシン情報を更新する

######################################################################

Update-AzureRmVm -ResourceGroupName $resourceGroup -VM $vm

######################################################################

###仮想マシンを起動する

######################################################################

start-azurermvm -name $vmName -ResourceGroupName $resourceGroup

 

解説


NICを単数から複数にするうえで重要なのは、"プライマリNIC"を指定するということです。

NICが単数の時はNICのパラメータに"プライマリ"という概念はありませんが、複数NICになると必要になります。

下記コマンドを単数NICの際と複数NICの際とでそれぞれ試してみるとご理解頂けるかと存じます。

(Get-AzureRmVM -name [仮想マシン名] -ResourceGroupName [リソースグループ名]).NetworkProfile.NetworkInterfaces

そのため、ただNICを追加するだけでなく、プライマリを指定してあげる必要があるのです。

最初から複数NICを持っている仮想マシンにNICを加えるときは、すでにプライマリNICが定められているため、NICの追加だけで十分です。

以上になります。

ご質問などありましたら、ぜひコメント欄へお願いします!

(その他、この記事を見に来た方に役立つかもしれないブログ)

Azure VM (ARM) の NIC 差し替えについて