以前は、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を設定するなどのハンドリングも可能です。