你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 2023 年 4 月 28 日,我们已宣布弃用应用程序网关 V1 SKU(标准和 WAF)。 V1 SKU 将于 2026 年 4 月 28 日停用。 有关详细信息,请参阅 在 2026 年 4 月 28 日前将应用程序网关从 V1 SKU 迁移到 V2 SKU。
迁移到 Azure 应用程序网关和 Web 应用程序防火墙 (WAF) V2 具有以下优势:
- 更好的复原能力:AZ 冗余、自动缩放
- 更好的安全性:Azure Keyvault 集成、改进的 WAF 功能、机器人保护
- 增强型监视功能:与仅具有 CPU 监视功能的 V1 不同,V2 提供对 CPU、内存和磁盘使用情况的全面监视。
- 改进的检测和自动缓解:V2 网关提供高级检测机制和自动缓解过程,这些机制可以快速准确地识别和解决问题,而无需手动干预。
- 所有新功能都针对 V2 SKU 发布。
强烈建议立即制定迁移计划。 V1 网关不会自动升级到 V2。 使用此迁移指南帮助你规划和执行迁移。
迁移分为两个阶段:
- 迁移配置
- 迁移客户端流量
本文主要帮助你完成配置迁移。 客户端流量迁移过程因环境而异。 本文提供了一些常规建议。
Prerequisites
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 现有应用程序网关 V1 标准版。
- 请确保具有最新的 PowerShell 模块,或者可以在门户中使用 Azure Cloud Shell。
- 如果在本地运行 PowerShell,则还需运行
Connect-AzAccount以创建与 Azure 的连接。 - 确保 V1 订阅中没有具有提供的 AppGW V2 名称和资源组名称的现有应用程序网关。 这会重写现有资源。
- 如果提供了公共 IP 地址,请确保其处于成功状态。 如果未提供它且提供了 AppGWResourceGroupName,请确保 V1 订阅中名为 AppGWResourceGroupName 的资源组中不存在名为 AppGWV2Name-IP 的公共 IP 资源。
- 对于 V1 SKU,需要身份验证证书才能设置与后端服务器的 TLS 连接。 V2 SKU 需要上传受信任的根证书,以实现相同的目的。 虽然 V1 允许使用自签名证书作为身份验证证书,但 V2 要求在后端使用自签名证书时生成并上传自签名根证书。
- 确保在迁移期间,V1 网关或任何关联的资源上没有规划其他操作。
Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
| 选项 | 示例/链接 |
|---|---|
| 选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 |
|
| 转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮,在浏览器中打开 Cloud Shell。 |
|
| 选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
|
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 CtrlShift+V,或在 macOS 上选择 CmdShift+V 将代码或命令粘贴到 Cloud Shell 会话中++。
选择“Enter”运行代码或命令。
注意
建议使用 Azure Az PowerShell 模块与 Azure 交互。 要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅将 Azure PowerShell 从 AzureRM 迁移到 Az。
配置迁移
配置迁移侧重于使用现有 V1 环境中的设置设置新的 V2 网关。 我们提供了两个 Azure PowerShell 脚本,旨在促进将配置从 V1(标准或 WAF)迁移到 V2(Standard_V2 或 WAF_V2) 网关。 这些脚本通过自动化密钥部署和配置任务来帮助简化转换过程。
1. 增强型克隆脚本
这是通过以下方法改进迁移体验的新体验:
- 无需手动输入前端 SSL 证书和后端受信任的根证书。
- 支持部署专用 V2 网关。
可以从 PowerShell 库下载增强型克隆脚本。
脚本的参数: 此脚本采用以下参数:
-
AppGw V1 ResourceId -Required:此参数是现有标准 V1 或 WAF V1 网关的 Azure 资源 ID。 若要查找此字符串值,请导航到 Azure 门户,选择你的应用程序网关或 WAF 资源,然后单击网关对应的“属性”链接。 资源 ID 位于该页上。
还可以运行以下 Azure PowerShell 命令来获取资源 ID:
$appgw = Get-AzApplicationGateway -Name <V1 gateway name> -ResourceGroupName <resource group Name> $appgw.Id - SubnetAddressRange -Required:CIDR 表示法中的子网地址,其中要部署应用程序网关 V2
- AppGwName -Optional:v2 应用网关的名称。 默认值 = {AppGwV1 Name}_migrated
- AppGwResourceGroupName -Optional:将在其中创建 V2 应用程序网关的资源组的名称。 如果未提供,将使用应用程序网关 V1 资源组。
- PrivateIPAddress -可选:要分配给应用程序网关 V2 的专用 IP 地址。 如果未提供,则会分配随机专用 IP。
- ValidateBackendHealth -可选:通过比较 ApplicationGatewayBackendHealth 响应进行迁移后验证。 如果未设置,将跳过此验证。
- PublicIpResourceId -Optional:公共 IP 地址的资源 ID(如果已存在)可附加到应用程序网关。 如果未提供,公共 IP 名称将为 {AppGwName}-IP。
- DisableAutoscale -Optional:禁用应用程序网关 V2 实例的自动缩放配置,默认情况下为 false
- WafPolicyName -Optional:从 WAF V1 配置生成的 WAF 策略名称,将附加到 WAF v2 网关。
如何运行脚本
若要运行该脚本,请执行以下操作:
- 使用
Connect-AzAccount连接到 Azure。 - 使用
Import-Module Az导入 Az 模块。 - 运行
Set-AzContextcmdlet,将活动 Azure 上下文设置为正确的订阅。 这是一个重要的步骤,因为迁移脚本可能会清理现有资源组(如果它在当前订阅上下文中不存在)。Set-AzContext -Subscription '<V1 application gateway SubscriptionId>' - 按照步骤安装脚本进行安装。
- 使用相应的参数运行脚本。 完成该脚本可能需要 5 到 7 分钟时间。
示例AzureAppGWClone.ps1 -resourceId <V1 application gateway Resource ID> -subnetAddressRange <subnet space you want to use> -appgwName <string to use to append> -AppGWResourceGroupName <resource group name you want to use> -privateIpAddress <private IP string> -publicIpResourceId <public IP name string> - disableAutoscale -wafpolicyname <wafpolicyname>AzureAppGWClone.ps1 ` -resourceId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyResourceGroup/providers/Microsoft.Network/applicationGateways/myv1appgateway ` -subnetAddressRange 10.0.0.0/24 ` -appgwname "MynewV2gw" ` -AppGWResourceGroupName "MyResourceGroup" ` -privateIpAddress "10.0.0.1" ` -publicIpResourceId "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyResourceGroup/providers/Microsoft.Network/publicIPAddresses/MyPublicIP" ` -enableAutoScale
Recommendations
- 脚本完成后,请查看 Azure 门户中的 V2 网关配置,并通过直接将流量发送到 V2 网关的 IP 来测试连接。
- 默认情况下,脚本在克隆期间放宽后端 TLS 验证(无证书链、过期或 SNI 验证)。 如果需要更严格的 TLS 验证或身份验证证书,客户可以在创建后更新其应用程序网关 V2,以添加受信任的根证书,并根据需要启用此功能。
- 对于 NTLM/Kerberos 直通,克隆后,在 HTTP 设置中将专用后端连接设置为“true”。
警告
- 必须为 V1 网关所在的虚拟网络中的另一个子网提供 IP 地址空间。 该脚本无法在已有 V1 网关的子网中创建 V2 网关。 如果子网已具有 V2 网关,则脚本可能仍然会工作,前提是有足够的可用 IP 地址空间。
- 如果你具有与 V2 网关子网关联的网络安全组或用户定义的路由,则为了成功迁移,请确保它们符合 NSG 要求和 UDR 要求
- 如果为 V1 网关启用了 FIPS 模式,则它不会迁移到新的 V2 网关。
- 新的 WAFV2 默认配置为使用 CRS 3.0。 但是,由于 CRS 3.0 即将被弃用,因此,我们建议在迁移后升级到最新的规则集 DRS 2.1。 有关更多详细信息,请参阅 CRS 和 DRS 规则组和规则 具有与 V2 网关子网关联的网络安全组或用户定义的路由,确保它们遵守 NSG 要求和 UDR 要求,以便成功迁移。
注意
在迁移期间,请勿尝试对 V1 网关或任何关联的资源执行任何其他操作。
2. 旧版克隆脚本
这是较旧的克隆脚本,可通过以下方式促进转换:
- 在用户指定的虚拟网络子网中创建新的Standard_V2或WAF_V2应用程序网关。
- 自动将配置从现有标准网关或 WAF V1 网关复制到新创建的 V2 网关。
- 要求客户提供 SSL 和身份验证证书作为输入,并且不支持专用 V2 网关,可以从 PowerShell 库下载此克隆脚本
脚本的参数: 旧脚本采用以下参数:
-
resourceId: [String]: 必需:此参数是现有的 Standard V1 或 WAF V1 网关的 Azure 资源 ID。 若要查找此字符串值,请导航到 Azure 门户,选择你的应用程序网关或 WAF 资源,然后单击网关对应的“属性”链接。 资源 ID 位于该页上。
还可以运行以下 Azure PowerShell 命令来获取资源 ID:
$appgw = Get-AzApplicationGateway -Name <V1 gateway name> -ResourceGroupName <resource group Name> $appgw.Id - subnetAddressRange: [String]: 必需:此参数是为包含新 V2 网关的新子网分配(或想要分配)的 IP 地址空间。 必须使用 CIDR 表示法指定地址空间。 例如:10.0.0.0/24。 无需提前创建此子网,但 CIDR 需要是 VNET 地址空间的一部分。 此脚本将为你创建它(如果它不存在),如果存在,它会使用现有子网(确保子网为空,且仅包含 V2 网关(如果有),并且具有足够可用的 IP)。
- appgwName:[字符串]:可选。 这是指定用作新 Standard_V2 或 WAF_V2 网关的名称的字符串。 如果未提供此参数,则会使用现有 V1 网关的名称并在其后追加后缀 _V2。
-
AppGWResourceGroupName: [String]: Optional。 要在其中创建 V2 应用程序网关资源的资源组的名称(默认值为
<V1-app-gw-rgname>)
注意
确保 V1 订阅中没有具有提供的 AppGW V2 名称和资源组名称的现有应用程序网关。 这会重写现有资源。
sslCertificates:[PSApplicationGatewaySslCertificate]:可选。 创建的 PSApplicationGatewaySslCertificate 对象的逗号分隔列表,这些对象表示 V1 网关中必须上传到新 V2 网关的 TLS/SSL 证书。 对于为 Standard V1 或 WAF V1 网关配置的每个 TLS/SSL 证书,可按如下所示通过
New-AzApplicationGatewaySslCertificate命令创建新的 PSApplicationGatewaySslCertificate 对象。 需要 TLS/SSL 证书文件的路径和密码。仅当没有为 V1 网关或 WAF 配置 HTTPS 侦听器时,此参数才是可选项。 如果至少安装了一个 HTTPS 侦听器,则必须指定此参数。
$password = ConvertTo-SecureString <cert-password> -AsPlainText -Force $mySslCert1 = New-AzApplicationGatewaySslCertificate -Name "Cert01" ` -CertificateFile <Cert-File-Path-1> ` Password $password $mySslCert2 = New-AzApplicationGatewaySslCertificate -Name "Cert02" ` -CertificateFile <Cert-File-Path-2> ` -Password $password在以上示例中,可以传入
$mySslCert1, $mySslCert2(逗号分隔)作为脚本中此参数的值。来自 Keyvault 的 sslCertificates: 可选。 可以下载存储在 Azure Key Vault 中的证书,并将其传递给迁移脚本。 若要将证书下载为 PFX 文件,请运行以下命令。 这些命令会访问 SecretId,并将内容另存为 PFX 文件。
$vaultName = ConvertTo-SecureString <kv-name> -AsPlainText -Force $certificateName = ConvertTo-SecureString <cert-name> -AsPlainText -Force $password = ConvertTo-SecureString <password> -AsPlainText -Force $pfxSecret = Get-AzKeyVaultSecret -VaultName $vaultName -Name $certificateName -AsPlainText $secretByte = [Convert]::FromBase64String($pfxSecret) $x509Cert = New-Object Security.Cryptography.X509Certificates.X509Certificate2 $x509Cert.Import($secretByte, $null, [Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable) $pfxFileByte = $x509Cert.Export([Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $password) # Write to a file [IO.File]::WriteAllBytes("KeyVaultcertificate.pfx", $pfxFileByte)对于从 Keyvault 下载的每个证书,可以通过此处所示的 New-AzApplicationGatewaySslCertificate 命令创建新的 PSApplicationGatewaySslCertificate 对象。 需要 TLS/SSL 证书文件的路径和密码。
//Convert the downloaded certificate to SSL object $password = ConvertTo-SecureString <password> -AsPlainText -Force $cert = New-AzApplicationGatewaySSLCertificate -Name <certname> -CertificateFile <Cert-File-Path-1> -Password $passwordtrustedRootCertificates: [PSApplicationGatewayTrustedRootCertificate]:可选。 创建的 PSApplicationGatewayTrustedRootCertificate 对象的逗号分隔列表,表示用于对 v2 网关中后端实例进行身份验证的受信任根证书。
$certFilePath = ".\rootCA.cer" $trustedCert = New-AzApplicationGatewayTrustedRootCertificate -Name "trustedCert1" -CertificateFile $certFilePath若要创建 PSApplicationGatewayTrustedRootCertificate 对象列表,请参阅 AzApplicationGatewayTrustedRootCertificate。
privateIpAddress:[字符串]:可选。 要关联到新 V2 网关的特定专用 IP 地址。 此地址必须来自为新 V2 网关分配的同一 VNet。 如果未指定,该脚本将为 V2 网关分配一个专用 IP 地址。
publicIpResourceId: [字符串]:可选。 订阅中要分配给新 V2 网关的现有公共 IP 地址(标准 SKU)资源的 resourceId。 如果提供了公共 IP 资源名称,请确保它处于成功状态。 如果未指定参数,该脚本将在同一资源组中分配一个新的公共 IP 地址。 名称是追加了“-IP”的 V2 网关名称。 如果提供 AppGWResourceGroupName 且未提供公共 IP 地址,请确保具有名称 AppGWV2Name-IP 的公共 IP 资源不存在于 V1 订阅中名为 AppGWResourceGroupName 的资源组中。
validateMigration: [switch]:可选。 在创建 V2 网关并复制配置后使用此参数让脚本执行一些基本的配置比较验证。 默认不会执行任何验证。
enableAutoScale: [switch]:可选。 在创建新的 V2 网关后使用此参数让脚本对此网关启用自动缩放。 默认禁用自动缩放。 以后,始终可以在创建新的 V2 网关后手动启用自动缩放。
如何运行脚本
若要运行该脚本,请执行以下操作:
- 使用
Connect-AzAccount连接到 Azure。 - 使用
Import-Module Az导入 Az 模块。 - 运行
Set-AzContextcmdlet,将活动 Azure 上下文设置为正确的订阅。 这是一个重要的步骤,因为迁移脚本可能会清理现有资源组(如果它在当前订阅上下文中不存在)。Set-AzContext -Subscription '<V1 application gateway SubscriptionId>' - 按照步骤安装脚本进行安装。
- 运行
Get-Help AzureAppGWMigration.ps1检查所需的参数: - 使用相应的参数运行脚本。 完成该脚本可能需要 5 到 7 分钟时间。
示例AzureAppGWMigration.ps1 -resourceId <V1 application gateway Resource ID> -subnetAddressRange <subnet space you want to use> -appgwName <string to use to append> -AppGWResourceGroupName <resource group name you want to use> -sslCertificates <comma-separated SSLCert objects as above> -trustedRootCertificates <comma-separated Trusted Root Cert objects as above> -privateIpAddress <private IP string> -publicIpResourceId <public IP name string> -validateMigration -enableAutoScaleAzureAppGWMigration.ps1 ` -resourceId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyResourceGroup/providers/Microsoft.Network/applicationGateways/myv1appgateway ` -subnetAddressRange 10.0.0.0/24 ` -appgwname "MynewV2gw" ` -AppGWResourceGroupName "MyResourceGroup" ` -sslCertificates $mySslCert1,$mySslCert2 ` -trustedRootCertificates $trustedCert ` -privateIpAddress "10.0.0.1" ` -publicIpResourceId "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyResourceGroup/providers/Microsoft.Network/publicIPAddresses/MyPublicIP" ` -validateMigration -enableAutoScale
注意事项/限制
- 新的 V2 网关使用新的公共和专用 IP 地址。 无法将与现有 V1 网关关联的 IP 地址无缝移动到 V2。 但是,可将现有的(未分配的)公共或专用 IP 地址分配到新的 V2 网关。
- 必须为 V1 网关所在的虚拟网络中的另一个子网提供 IP 地址空间。 该脚本无法在已有 V1 网关的子网中创建 V2 网关。 如果子网已具有 V2 网关,则脚本可能仍然会工作,前提是有足够的可用 IP 地址空间。
- 如果网络安全组或用户定义的路由关联到 V2 网关子网,请确保它们遵守 NSG 要求 和 UDR 要求 ,以便成功迁移。
- 应用程序网关子网中当前不支持虚拟网络服务终结点策略。
- 若要迁移 TLS/SSL 配置,必须指定 V1 网关中使用的所有 TLS/SSL 证书。
- 如果为 V1 网关启用了 FIPS 模式,则它不会迁移到新的 V2 网关。
- 如果你有仅限专用 IP 的 V1 网关,则脚本将为新的 V2 网关生成一个专用 IP 地址和一个公共 IP 地址。 仅限专用 IP 的 V2 网关目前为公共预览版。 正式发布后,客户可以利用脚本将其仅限专用 IP 的 V1 网关传输到仅限专用 IP 的 V2 网关。
- WAFv2 是在旧 WAF 配置模式下创建的;需要迁移到 WAF 策略。
- 新的 WAFv2 默认配置为使用 CRS 3.0。 但是,由于 CRS 3.0 即将被弃用,因此,我们建议在迁移后升级到最新的规则集 DRS 2.1。 有关更多详细信息,请参阅 CRS 和 DRS 规则组和规则
注意
应用程序网关 V2 支持 NTLM 和 Kerberos 直通身份验证。 有关更多详细信息,请参阅 专用后端连接。
安装脚本
注意
每次运行迁移脚本之前,运行 Set-AzContext -Subscription <V1 application gateway SubscriptionId> cmdlet。 这是将活动的 Azure 上下文设置为正确的订阅所必需的,因为迁移脚本可能会清理现有资源组(如果它在当前订阅上下文中不存在)。
根据本地 PowerShell 环境的设置和首选项,可以使用两个选项:
- 如果你尚未安装 Azure Az 模块或者不介意卸载 Azure Az 模块,最佳做法是使用
Install-Script选项运行该脚本。 - 如果需要保留 Azure Az 模块,则最佳做法是下载并直接运行该脚本。
若要确定是否安装了 Azure Az 模块,请运行
Get-InstalledModule -Name az。 如果未看到任何已安装的 Az 模块,可以使用Install-Script方法。
使用 Install-Script 方法安装(建议)
只有尚未在计算机上安装 Azure Az 模块时才能使用此选项。 如果已安装,则以下命令将显示错误。 可以卸载 Azure Az 模块,或者另一个选项手动下载并运行该脚本。
使用以下命令运行该脚本以获取最新版本:
对于增强型克隆脚本 -
Install-Script -Name AzureAppGWClone -Force对于旧版克隆脚本 -
Install-Script -Name AzureAppGWMigration -Force
此命令还会安装所需的 Az 模块。
直接使用脚本安装
如果已安装某些 Azure Az 模块并且无法卸载它们(或者不想卸载),可以使用脚本下载链接中的“手动下载”选项卡手动下载该脚本。
此脚本将作为原始 nupkg 文件下载。 若要安装此 nupkg 文件中的脚本,请参阅手动下载包。
对于旧版克隆脚本,版本 1.0.11 是迁移脚本的新版本,其中包括主要的 bug 修复。 请确保使用 PowerShell 库中的最新稳定版本
如何检查下载的脚本的版本
若要检查下载的脚本的版本,步骤如下:
- 提取 NuGet 包的内容。
- 打开文件夹中的
.PS1文件,然后检查位于顶部的 ..VERSION,以确认下载的脚本的版本
<#PSScriptInfo
.VERSION 1.0.10
.GUID be3b84b4-e9c5-46fb-a050-699c68e16119
.AUTHOR Microsoft Corporation
.COMPANYNAME Microsoft Corporation
.COPYRIGHT Microsoft Corporation. All rights reserved.
流量迁移
Prerequisites
- 首先,请仔细检查脚本是否已成功创建了一个新的 V2 网关,其中包含要从 V1 网关迁移的确切配置。 可以从 Azure 门户验证此结果。
- 另外,请通过 V2 网关发送少量的流量作为手动测试。
公共 IP 保留脚本
成功迁移配置并彻底测试新的 V2 网关后,此步骤重点介绍如何重定向实时流量。 我们提供了一个 Azure PowerShell 脚本,旨在 保留 V1 中的公共 IP 地址。
- 交换公共 IP:此脚本保留 V1 中的基本公共 IP,将其转换为标准 IP,并将其附加到 V2 网关。 这有效地将所有传入流量重定向到 V2 网关。
- 预期停机时间:此 IP 交换作通常会导致 大约 1-5 分钟的短暂停机时间。 相应地进行规划。
- 成功运行脚本后,公共 IP 将从应用程序网关 V1 移动到应用程序网关 V2,应用程序网关 V1 接收新的公共 IP。
可以从 PowerShell 库下载此公共 IP 保留脚本
脚本的参数:
此脚本需要以下必需参数:
- V1 ResourceId – V1 应用程序网关的资源 ID,其公共 IP 将保留并与 V2 关联。
- V2 ResourceId – V2 应用程序网关的资源 ID,V1 公共 IP 将被分配给该网关。 可以通过手动创建或使用任意一个克隆脚本来创建 V2 网关。
下载并安装脚本后
使用所需参数执行 AzureAppGWClone.ps1:
AzureAppGWIPMigrate.ps1
-v1resourceId <V1 application gateway Resource ID>
-v2resourceId <V2 application gateway Resource ID>
示例
./AzureAppGWIPMigrate.ps1 `
-v1resourceId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyResourceGroup/providers/Microsoft.Network/applicationGateways/myv1appgateway `
-v2resourceId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyResourceGroup/providers/Microsoft.Network/applicationGateways/myv2appgateway `
IP 交换完成后,客户应检查 V2 网关上的控制平面操作和数据平面操作。 在 V1 网关上,将禁用除 Delete 之外的所有控制平面操作。
注意
在 IP 迁移期间,请勿尝试对 V1 和 V2 网关或任何关联的资源执行任何其他操作。
注意
此脚本执行的公共 IP 交换不可逆。 启动后,无法使用脚本将 IP 还原回 V1 网关。
流量迁移建议
在以下几种情况下,当前的应用程序网关 (Standard) 可以接收客户端流量,我们针对每种情况提供了建议:
- 自定义 DNS 区域(例如 contoso.com)指向与 Standard V1 或 WAF V1 网关关联的前端 IP 地址(使用 A 记录)。 可以更新 DNS 记录,使其指向与 Standard_V2 应用程序网关关联的前端 IP 或 DNS 标签。 根据 DNS 记录中配置的 TTL,可能需要一段时间才能将所有客户端流量迁移到新的 V2 网关。
-
指向与 V1 网关关联的 DNS 标签(例如:使用 CNAME 记录指向 myappgw.eastus.cloudapp.azure.com)的自定义 DNS 区域(例如 contoso.com)。
有两种选择:
- 如果在应用程序网关上使用公共 IP 地址,则可以使用流量管理器配置文件执行受控的粒度迁移,以增量方式将流量路由到新的 V2 网关(加权流量路由方法)。
为此,可将 V1 和 V2 应用程序网关的 DNS 标签添加到流量管理器配置文件,并通过 CNAME 将自定义 DNS 记录(例如
www.contoso.com)指向流量管理器域(例如 contoso.trafficmanager.net)。 - 或者,可以更新自定义域的 DNS 记录,使其指向新 V2 应用程序网关的 DNS 标签。 根据 DNS 记录中配置的 TTL,可能需要一段时间才能将所有客户端流量迁移到新的 V2 网关。
- 如果在应用程序网关上使用公共 IP 地址,则可以使用流量管理器配置文件执行受控的粒度迁移,以增量方式将流量路由到新的 V2 网关(加权流量路由方法)。
为此,可将 V1 和 V2 应用程序网关的 DNS 标签添加到流量管理器配置文件,并通过 CNAME 将自定义 DNS 记录(例如
- 客户端连接到应用程序网关的前端 IP 地址。 更新客户端以使用与新创建的 V2 应用程序网关关联的 IP 地址。 我们建议不要直接使用 IP 地址。 请考虑使用与应用程序网关(可通过 CNAME 指向自己的自定义 DNS 区域(例如 contoso.com))关联的 DNS 名称标签(例如 yourgateway.eastus.cloudapp.azure.com)。
迁移后
一旦流量迁移成功,并且在通过 V2 网关完全验证应用程序正确运行后,可以安全地计划退役并删除旧 V1 应用程序网关资源,以避免不必要的成本。
定价注意事项
应用程序网关 V1 和 V2 SKU 的定价模型不同。 V2 根据使用量收费。 在迁移之前,请参阅应用程序网关定价以了解定价信息。
成本效益指南
V2 SKU 提供诸多优势,例如性能提升 5 倍、通过密钥保管库集成提高安全性、更快地更新 WAF_V2 中的安全规则、WAF 自定义规则、策略关联和机器人防护。 它还提供很高的可伸缩性、优化的流量路由,以及与 Azure 服务的无缝集成。 这些特性可以改进整体用户体验,防止在流量繁忙期间速度变慢,并避免代价高昂的数据违规。
V1 SKU 根据层和大小提供五种变体 - Standard_Small、Standard_Medium、Standard_Large、WAF_Medium 和 WAF_Large。
| SKU | V1 固定价格/月 | V2 固定价格/月 | 建议 |
|---|---|---|---|
| 标准中型 | 102.2 | 179.8 | V2 SKU 可以处理的请求数比 V1 网关更多,因此我们建议将多个 V1 网关合并成一个 V2 网关,以优化成本。 确保合并后不会超过应用程序网关的限制。 建议按照 3:1 的比例合并。 |
| WAF 中型 | 183.96 | 262.8 | 与标准中型相同 |
| 标准大型 | 467.2 | 179.58 | 对于这些变体,在大多数情况下,迁移到 V2 网关所带来的成本效益比使用 V1 要好。 |
| WAF 大型 | 654.08 | 262.8 | 与标准大型相同 |
注意
此处显示的计算基于美国东部区域,适用于 V1 中具有 2 个实例的网关。 V2 中的可变成本基于最常用的 3 个维度之一:新连接数(50 个/秒)、持久连接数(2500 个持久连接/分钟)、吞吐量(1 个 CU 可以处理 2.22 Mbps)。
此处所述的场景均为示例,仅用于演示目的。 若要了解你所在区域的定价,请参阅定价页。
在定价方面若有其他疑问,请咨询 CSAM,或联系我们的支持团队以寻求帮助。
常见问题
在此处可以找到有关迁移的常见问题