Azureの仮想マシンに固定IPを割り当てることができるようになったようです

以前は、Azureの仮想マシンDHCPでの内部IP割り当てしかできませんでしたが、
今は静的なIPアドレスの割り当てができるようです。
ずっと心配していた問題だったので、対応されて良かったです。


Azureの仮想マシンへのIP割り当てには色々なパターンがあります。

呼称 名称 Private or Public 割り当て対象 参考LINK
Reserved IP(予約済み IP) Reserved IP Addresses Public Cloud Service LINK
ILPIP/PIP Instance-Level Public IP Public VM LINK
DIP/static internal IP(静的内部プライベート IP) Static internal IP address Private VM LINK


図で表すとこのようになります。


Reserved IPに関してはこちらの記事で書いてます。

ILPIPに関してはこちらで書いてます。



ここで書くのはDIPまたはstatic internal IPというものです。

 
 
 




設定はPowerShellから行います。
新機能なので最新版のAzure管理PowerShellが必要です。
Download Azure SDKs and Tools | Azure

VMに固定IPの割り当て

例えばある仮想マシンに192.168.1.10のIPを割り当てるコマンドは以下の通りです。

PS>Set-AzureStaticVNetIP -VM (Get-AzureVM -ServiceName [CloudService名] -Name [VM名]) -IPAddress 192.168.1.10 | Update-AzureVM

Get-AzureVMの部分はVMに対する参照を取得しています。
事前に変数とかに格納してもらっても大丈夫です。

$VM = Get-AzureVM -ServiceName [CloudService名] -Name [VM名]
Set-AzureStaticVNetIP -VM $VM -IPAddress 192.168.1.10 | Update-AzureVM

VMに割り当て済みの固定IPの取得

PS>Get-AzureStaticVNetIP -VM (Get-AzureVM -ServiceName [CloudService名] -Name [VM名])
IPAddress
---------
192.168.1.10

VMから固定IPの割り当て削除

PS>Remove-AzureStaticVNetIP -VM (Get-AzureVM -ServiceName [CloudService名] -Name [VM名]) | Update-AzureVM

 
 

固定IPが既に割り当て済みであるかを確認

PS>Test-AzureStaticVNetIP -VNetName [仮想ネットワーク名] -IPAddress [確認したいIPアドレス]


出力結果は以下の通りです。

IsAvailable          : False
AvailableAddresses   : {192.168.1.5, 192.168.1.6...}
OperationDescription : Test-AzureStaticVNetIP
OperationId          : c926daa9-40c2-88d7-aa0e-0d19d8dfa889
OperationStatus      : Succeeded

IsAvailableの値でIPが使用可能かを確認できます。
既に指定したIPが使用中である場合は、AvailableAddressesに使用可能なIPが提案されるので、
その値を使ってIPを設定するなどのハンドリングも可能です。

 
 

仮想マシンに割り当てられた固定IPを一覧するスクリプト

Azure仮想マシンで設定済みの固定IPアドレスを一覧するPowerShellスクリプト - YOMON8.NET