云服务和虚拟机的预留 IP 地址

大家好!

我很高兴地向大家宣布,云服务和虚拟机的预留 IP 地址将自 2014 年 8 月 27 日起正式发布。在这篇博客中,我们将演示如何管理预留 IP、将预留 IP 与云服务和虚拟机关联、定价模型和一些不受支持的情况。您可以单击此处,阅读关于预留 IP 的技术文档。

什么是预留 IP 地址?何时需要预留 IP 地址?

随着最近 PowerShell 的发布,Microsoft Azure 允许用户在 Azure 订阅中预留公共 IPv4 地址。您可以将 IP 地址在订阅中保留任意时间,也可以将其与预留 IP 地址所在地区的云服务部署关联。此新公告专门针对面向公共英特网的 IP 地址。Azure平台已经支持预留内部 IP,如此处所述。

需要预留 IP 地址有多种原因

  • A-Record DNS 更简单: 由于在删除和关闭 VM 后维护同一公共 IP,因此在重启时无需根据 IP 将 DNS 或其他应用程序重新调整到新指定的 IP。
  • 内部连接安全: 现在,利用公共 IP,同时通过内部代理/防火墙访问控制并将该IP列入允许访问的列表,您可以从企业网络访问Azure 服务。您无需担心每次启动或停止 VM 时都要重新进行调整。

下图显示针对 VIP(预留 IP)的 IP 预留的工作方式。Azure 在地区范围提供预留 IP,即,可将预留 IP 用于关联使用任何角色实例大小的云服务。

如何在 Microsoft Azure 中预留 IP 地址?

从本周起,您可以使用 Azure PowerShell cmdletREST API 在 Azure 订阅中创建预留 IP 地址。您可以在除以下地区以外的任何地区预留 IP 地址。我们会尽快对这些地区提供支持。

  • 巴西(预览版)
  • 中国东部
  • 中国北部

请注意,平台不支持通过管理门户创建预留 IP 地址。下面是使用 PowerShell cmdlet 创建预留 IP 地址的一个示例:

New-AzureReservedIP – ReservedIPName
“MyWebsiteIP” –Label “WebsiteIP” –Location “Japan West”

平台不支持为现有云服务或虚拟机预留 IP 地址。我们希望在不久的未来可以宣布此支持。

如何将预留 IP 地址用于虚拟机?

在订阅中创建预留 IP 后,您就可以使用预留 IP 来创建虚拟机部署。下面是将预留 IP 用于 New-AzureVM PowerShell cmdlet 的示例。

New-AzureVMConfig -Name
"WebAppVM" -InstanceSize Small -ImageName $images[130].ImageName |
Add-AzureProvisioningConfig -Windows -AdminUsername $username -Password $password
| New-AzureVM -ServiceName "MaheshWebApp" -ReservedIPName
"MyWebSiteIP" -Location "Japan West"

有两种关键场景需要强调

  • 关闭 VM
    - 以前,当所有虚拟机实例变成关闭状态时会释放公共 IP,虚拟机实例启动时会分配新的公共 IP。然而, 随着此功能发布,如果 VM 使用预留 IP,则在重新部署 VM 时可以使用此预留 IP。
  • 删除VM
    - 删除此前使用预留 IP 的所有虚拟机时,预留 IP 会继续保留在订阅中,以便用于未来此地区的 VM 部署。

您可以参考此处的虚拟机 REST API 文档。

我如何将预留 IP 地址用于云服务 (Web Role/Worker Role)?

我们同时也宣布支持将预留 IP 用于云服务 (Web/Worker) 部署。要将预留 IP 用于云服务,您需要下载 SDK 2.3 版(2014 年 4 月发布)。下面是在您的服务配置架构 (CSCFG) 中引用预留 IP 的示例。

<?xml version="1.0" encoding="utf-8"?>

<ServiceConfiguration serviceName="ReservedIPSample" xmlns=“https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration” osFamily="4" osVersion="*" schemaVersion="2014-01.2.3">

 
<Role name="WebRole1">

<Instances count="1" />

<ConfigurationSettings>

<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />

</ConfigurationSettings>

 </Role>

 <NetworkConfiguration>

 <AddressAssignments>

 <ReservedIPs>

 <ReservedIP name="MyWebSiteIP"/>

 </ReservedIPs>

 </AddressAssignments>

 </NetworkConfiguration>

</ServiceConfiguration>

注意,删除 Web role/Worker role 部署时,与该部署关联的预留 IP 仍在订阅中存在,可用于同一地区的未来部署。

如何从订阅中释放预留 IP 地址?

请注意,未与部署(包括 VM 和云服务)关联的预留 IP 地址会产生计费成本,因此建议您释放不需要的 IP 地址。下面的 PowerShell cmdlet 显示如何从订阅中释放预留 IP。

Remove-AzureReservedIP -ReservedIPName "MyWebSiteIP" -Force

预留 IP 地址和基于关联组的虚拟网络

目前,Microsoft Azure 还不支持将与预留 IP 关联的云服务或虚拟机部署到基于关联组的虚拟网络。以下片段显示在尝试将具有预留 IP 的虚拟机部署到基于关联组的虚拟网络时将收到的错误消息示例。

New-AzureVM :BadRequest :The deployment
contains VirtualNetwork DemoVNET that belongs to an Affinity Group and
ReservedIP that belongs to a region.This combination is not allowed.

预留 IP 地址和区域虚拟网络

在此次发布中,我们还将公布对区域(基于位置的)虚拟网络的支持。有关详细信息,请单击此处访问相应博客。Microsoft Azure 支持将与预留 IP 关联的云服务或虚拟机部署到基于位置的虚拟网络。

预留 IP 地址定价

IPv4 地址是非常稀少的资源,所以 Microsoft Azure 在一些情况下会对 IP 地址进行象征性收费。请注意,云服务应至少运行一个 Web/Worker 或虚拟机实例。

在账单中,您会看到两个与预留 IP 相关的实体

  • 预留 IP 地址小时数 – 您订阅中的预留 IP 为以下情况之一时所持续的总小时数
    • 未与具有运行实例的部署(VM 或云服务)关联(或者)
    • 使用订阅中的额外预留 IP 地址。
  • 预留 IP 重新映射 – 每次 IP 地址关联到新的云服务,都被认为是重新映射。

 

本文翻译自:https://azure.microsoft.com/blog/2014/05/14/reserved-ip-addresses/