迁移您的经典负载均衡器 - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

迁移您的经典负载均衡器

Elastic Load Balancing 支持以下类型的负载均衡器:应用程序负载均衡器、网络负载均衡器、网关负载均衡器和经典负载均衡器。有关每种负载均衡器类型的不同功能的信息,请参阅 Elastic Load Balancing 功能

您还可以选择将 VPC 中的现有经典负载均衡器迁移到应用程序负载均衡器或网络负载均衡器。

从经典负载均衡器迁移的好处

每种类型的负载均衡器都有其独特的特性、功能和配置。查看每种负载均衡器的优点,以帮助决定哪一种最适合您。

Application Load Balancer

使用应用程序负载均衡器而不是经典负载均衡器具有以下好处:

支持:

  • 路径条件主机条件HTTP 标头条件

  • 将请求从一个 URL 重定向到另一个 URL,并将请求路由到单个 EC2 实例上的多个应用程序。

  • 返回自定义 HTTP 响应。

  • 通过 IP 地址注册目标,并将 Lambda 函数注册为目标。包括位于负载均衡器的 VPC 之外的目标。

  • 通过企业或社交身份对用户进行身份验证。

  • Amazon Elastic Container Service(Amazon ECS)容器化应用程序。

  • 独立监控每个服务的运行状况。

访问日志包含附加信息,并以压缩格式存储。

整体提高了负载均衡器的性能。

Network Load Balancer

使用网络负载均衡器而不是经典负载均衡器具有以下好处:

支持:

  • 静态 IP 地址,允许为负载均衡器启用的每个子网分配一个弹性 IP 地址。

  • 通过 IP 地址注册目标,包括位于负载均衡器的 VPC 之外的目标。

  • 将请求路由到单个 EC2 实例上的多个应用程序。

  • Amazon Elastic Container Service(Amazon ECS)容器化应用程序。

  • 独立监控每个服务的运行状况。

可以处理急剧波动的工作负载,并可以扩展到每秒处理数百万个请求。

使用迁移向导进行迁移

迁移向导使用经典负载均衡器的配置来创建等效的应用程序负载均衡器或网络负载均衡器。与其他方法相比,它减少了迁移经典负载均衡器所需的时间和精力。

注意

该向导会创建一个新的负载均衡器。该向导不会将现有的经典负载均衡器转换为应用程序负载均衡器或网络负载均衡器。您必须手动将流量重定向到新创建的负载均衡器。

限制
  • 新负载均衡器名称不能与同一区域内同类型的现有负载均衡器相同。

  • 如果经典负载均衡器的任何标签的键中包含 aws: 前缀,则不会迁移这些标签。

迁移到应用程序负载均衡器时
  • 如果经典负载均衡器只有一个子网,则必须指定第二个子网。

  • 如果经典负载均衡器具有使用 TCP 运行状况检查的 HTTP/HTTPS 侦听器,则运行状况检查协议将更新为 HTTP,并且路径设置为“/”。

  • 如果经典负载均衡器的 HTTPS 侦听器使用自定义或不受支持的安全策略,则迁移向导将使用新负载均衡器类型的默认安全策略。

迁移到网络负载均衡器时
  • 以下实例类型将不会注册到新的目标组:C1、、、、、、、 CC1、 CC2、G1 CG1 CG2 CR1、G2 CS1、、、、M1、M2 HI1 HS1、M3、T1

  • 经典负载均衡器中的某些运行状况检查设置可能无法转移到新的目标组。这些案例将在迁移向导的摘要部分中显示为更改。

  • 如果经典负载均衡器具有 SSL 侦听器,则迁移向导将使用来自 SSL 侦听器的证书和安全策略创建 TLS 侦听器。

使用迁移向导迁移经典负载均衡器
  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。

  3. 选择要迁移的经典负载均衡器。

  4. 在负载均衡器的详细信息部分,选择启动迁移向导

  5. 选择迁移到应用程序负载均衡器迁移到网络负载均衡器以打开迁移向导。

  6. 命名新的负载均衡器下,对于负载均衡器名称,输入新负载均衡器的名称。

  7. 命名新的目标组并查看目标下,对于目标组名称,输入新目标组的名称。

  8. (可选)在目标下,您可以查看将在新目标组中注册的目标实例。

  9. (可选)在查看标签下,您可以查看将应用于新负载均衡器的标签

  10. 应用程序负载均衡器的摘要网络负载均衡器的摘要下,查看并验证迁移向导分配的配置选项。

  11. 对配置摘要满意后,选择创建应用程序负载均衡器创建网络负载均衡器以开始迁移。

使用负载均衡器复制实用程序进行迁移

该 Amazon GitHub 页面上的 Elastic Load Balancing Tools 存储库中提供了负载均衡器复制工具。

手动迁移负载均衡器

以下信息提供了基于 VPC 中的现有经典负载均衡器手动创建新的 Application Load Balancer 或 Network Load Balancer 的常规说明。您可以使用 Amazon Web Services Management Console Amazon CLI、或 Amazon SDK 进行迁移。有关更多信息,请参阅 Elastic Load Balancing 入门

在迁移过程完成后,您就可以利用新负载均衡器的功能了。

步骤 1:创建新负载均衡器

创建配置等效于经典负载均衡器的负载均衡器以进行迁移。

  1. 创建具有与经典负载均衡器相同的模式(面向 Internet 或内部)、子网和安全组的新负载均衡器。

  2. 使用与经典负载均衡器相同的运行状况检查设置为负载均衡器创建一个目标组。

  3. 请执行下列操作之一:

    • 如果您的经典负载均衡器已附加到 Auto Scaling 组,请将目标组附加到 Auto Scaling 组。这样还可以向目标组注册 Auto Scaling 实例。

    • 向目标组注册您的 EC2 实例。

  4. 创建一个或多个侦听器,每个都具有将请求转发到目标组的默认规则。如果创建 HTTPS 侦听器,则可指定您为经典负载均衡器所指定的同一证书。建议您使用默认安全策略。

  5. 如果您的经典负载均衡器具有标签,请进行检查并将相关标签添加到新负载均衡器。

步骤 2:逐步将流量重定向到您的新负载均衡器

在向新负载均衡器注册您的实例后,您可以开始将流量从旧负载均衡器重定向到新负载均衡器的过程。这使您能够测试新的负载均衡器,同时将应用程序可用性风险降至最低。

逐步将流量重定向到您的新负载均衡器
  1. 将新负载均衡器的 DNS 名称粘贴到已连接 Internet 的 Web 浏览器的地址栏中。如果一切正常,浏览器会显示您应用程序的默认页面。

  2. 创建一个用于将域名与您的新负载均衡器关联的新 DNS 记录。如果您的 DNS 服务支持权重,则在新 DNS 记录中指定权重为 1;对于您的旧负载均衡器的现有 DNS 记录,指定权重为 9。这样可以将 10% 的流量定向到新负载均衡器,而将 90% 的流量定向到旧负载均衡器。

  3. 监控您的新负载均衡器,验证它能否接收流量并将请求路由到您的实例。

    重要

    DNS 记录中的 time-to-live (TTL) 为 60 秒。这意味着,解析域名的任何 DNS 服务器在其缓存中保留记录信息的时间为 60 秒,同时更改会传播。因此,在您完成上一步后,这些 DNS 服务器仍然可以在 60 秒内将流量路由到旧负载均衡器。在传输过程中,流量可以定向到任一负载均衡器。

  4. 继续更新您的 DNS 记录的权重,直到所有流量都定向到您的新负载均衡器。完成后,您可以删除旧负载均衡器的 DNS 记录。

步骤 3:更新策略、脚本和代码

如果要将经典负载均衡器迁移到 Application Load Balancer 或 Network Load Balancer,请务必执行以下操作:

  • 将使用 API 版本 2012-06-01 的 IAM 策略更新为使用版本 2015-12-01。

  • 更新使用AWS/ELB命名空间中 CloudWatch 指标的进程,以使用AWS/ApplicationELBAWS/NetworkELB命名空间中的指标。

  • 更新使用命令来使用aws elb Amazon CLI 命令的脚本。aws elbv2 Amazon CLI

  • 更新使用AWS::ElasticLoadBalancing::LoadBalancer资源来使用AWS::ElasticLoadBalancingV2资源的 Amazon CloudFormation 模板。

  • 将使用 Elastic Load Balancing API 版本 2012-06-01 的代码更新为使用版本 2015-12-01。

资源
步骤 4:删除旧负载均衡器

您可以在完成以下步骤后删除旧经典负载均衡器:

  • 您已将旧负载均衡器的所有流量重定向到新负载均衡器。

  • 已完成路由到旧负载均衡器的所有现有请求。

防止用户创建传统负载均衡器

您可以创建一个 IAM 策略来防止用户在您的账户中创建传统负载均衡器。

Elastic Load Balancing V2Elastic Load Balancing V1 都 APIs 提供了 CreateLoadBalancer API 操作。创建 Classic Load Balancer 时,您将使用 V1 API 操作,该操作会同时创建负载均衡器和侦听器。创建应用程序负载均衡器、网络负载均衡器或网关负载均衡器时,您将使用 V2 API 操作,该操作仅创建负载均衡器。V2 API 提供了一个CreateListener操作,您可以在创建负载均衡器之后使用该操作为其创建侦听器。

如果指定了监听器协议,则以下策略将拒绝用户创建负载均衡器的权限。由于在创建 Classic Load Balancer 时必须配置至少一个侦听器,因此此策略会阻止用户创建经典负载均衡器。它不会阻止用户创建其他类型的负载均衡器,因为有单独的 API 操作用于创建这些负载均衡器及其侦听器。

{ "Version": "2012-10-17", "Effect": "Deny", "Action": "elasticloadbalancing:CreateLoadBalancer", "Resource": [ "arn:aws:elasticloadbalancing:*:*:loadbalancer/*" ], "Condition": { "Null": { "elasticloadbalancing:ListenerProtocol": false } } }