ほとんどの場合、仮想マシンの静的内部 IP アドレスを指定する必要はありません。 仮想ネットワーク内の VM は、指定した範囲から内部 IP アドレスを自動的に受信します。 ただし、場合によっては、特定の VM に静的 IP アドレスを指定することは理にかなっています。 たとえば、VM で DNS を実行する場合や、ドメイン コントローラーになる場合です。 静的内部 IP アドレスは、停止/プロビジョニング解除状態であっても VM に保持されます。
重要
Azure には、リソースの作成と操作に関して、2 種類のデプロイ モデルがあります。Resource Manager とクラシックです。 この記事では、クラシック デプロイ モデルの使用方法について説明します。 Microsoft では、ほとんどの新しいデプロイで Resource Manager デプロイ モデルを使用することをお勧めします。
Azure PowerShell Service Management モジュールをインストールする
次のコマンドを実行する前に、 Azure PowerShell Service Management モジュール がマシンにインストールされていることを確認します。 Azure PowerShell Service Management モジュールのバージョン履歴については、 PowerShell ギャラリーの Azure モジュールを参照してください。
特定の IP アドレスが使用可能かどうかを確認する方法
TestVnet という名前の vnet で IP アドレス 10.0.0.7 が使用可能かどうかを確認するには、次の PowerShell コマンドを実行し、IsAvailable の値を確認します。
Test-AzureStaticVNetIP –VNetName TestVNet –IPAddress 10.0.0.7
IsAvailable : True
AvailableAddresses : {}
OperationDescription : Test-AzureStaticVNetIP
OperationId : fd3097e1-5f4b-9cac-8afa-bba1e3492609
OperationStatus : Succeeded
注
安全な環境で上記のコマンドをテストする場合は、「 仮想ネットワーク (クラシック) を作成する」 のガイドラインに従って TestVnet という名前の vnet を作成し、 10.0.0.0/8 アドレス空間を使用していることを確認します。
VM の作成時に静的内部 IP を指定する方法
次の PowerShell スクリプトは、 TestService という名前の新しいクラウド サービスを作成し、Azure からイメージを取得した後、取得したイメージを使用して新しいクラウド サービスに TestVM という名前の VM を作成し、 その VM を Subnet-1 という名前のサブネットに設定し、VM の静的内部 IP として 10.0.0.7 を設定します。
New-AzureService -ServiceName TestService -Location "Central US"
$image = Get-AzureVMImage|?{$_.ImageName -like "*RightImage-Windows-2012R2-x64*"}
New-AzureVMConfig -Name TestVM -InstanceSize Small -ImageName $image.ImageName `
| Add-AzureProvisioningConfig -Windows -AdminUsername adminuser -Password MyP@ssw0rd!! `
| Set-AzureSubnet –SubnetNames Subnet-1 `
| Set-AzureStaticVNetIP -IPAddress 10.0.0.7 `
| New-AzureVM -ServiceName "TestService" –VNetName TestVnet
VM の静的内部 IP 情報を取得する方法
上記のスクリプトで作成した VM の静的内部 IP 情報を表示するには、次の PowerShell コマンドを実行し、 IpAddress の値を確認します。
Get-AzureVM -Name TestVM -ServiceName TestService
DeploymentName : TestService
Name : TestVM
Label :
VM : Microsoft.WindowsAzure.Commands.ServiceManagement.Model.PersistentVM
InstanceStatus : Provisioning
IpAddress : 10.0.0.7
InstanceStateDetails : Windows is preparing your computer for first use...
PowerState : Started
InstanceErrorCode :
InstanceFaultDomain : 0
InstanceName : TestVM
InstanceUpgradeDomain : 0
InstanceSize : Small
HostName : rsR2-797
AvailabilitySetName :
DNSName : http://testservice000.cloudapp.net/
Status : Provisioning
GuestAgentStatus : Microsoft.WindowsAzure.Commands.ServiceManagement.Model.GuestAgentStatus
ResourceExtensionStatusList : {Microsoft.Compute.BGInfo}
PublicIPAddress :
PublicIPName :
NetworkInterfaces : {}
ServiceName : TestService
OperationDescription : Get-AzureVM
OperationId : 34c1560a62f0901ab75cde4fed8e8bd1
OperationStatus : OK
VM から静的内部 IP を削除する方法
上記のスクリプトで VM に追加された静的内部 IP を削除するには、次の PowerShell コマンドを実行します。
Get-AzureVM -ServiceName TestService -Name TestVM `
| Remove-AzureStaticVNetIP `
| Update-AzureVM
既存の VM に静的内部 IP を追加する方法
上記のスクリプトを使用して作成した VM に静的内部 IP を追加するには、次のコマンドを実行します。
Get-AzureVM -ServiceName TestService000 -Name TestVM `
| Set-AzureStaticVNetIP -IPAddress 10.10.0.7 `
| Update-AzureVM