如何将 Application Load Balancer 关联到我的 Lightsail 实例?

上次更新时间:2021 年 10 月 5 日

我想在我的 Amazon Lightsail 实例上使用 Application Load Balancer 的功能。该如何操作?

简短描述

您可以使用 Lightsail 负载均衡器为 Web 应用程序增加冗余或处理更多 Web 流量。您还可以使用 Lightsail 负载均衡器为托管在 Lightsail 实例中的网站安装 Amazon 提供的 SSL 证书

但与 Amazon Application Load Balancer 相比,Lightsail 负载均衡器存在局限性。Application Load Balancer 具有更好的灵活性,这包括:

  • 能够灵活地执行负载均衡器运行状况检查。
  • 能够在负载均衡器和实例实现端到端的传输中数据加密。
  • 可以使用防火墙服务,例如 AWS WAF 等。

如果要在 Lightsail 中为您的网站使用这些功能,则可以将某个 Application Load Balancer 关联到该 Lightsail 实例。要设置 Application Load Balancer,请执行以下操作:

  1. 在 Lightsail 中配置 Amazon VPC 对等连接,以允许实例连接到 Application Load Balancer 等 AWS 资源。
  2. (可选)如果要将 AWS Certificate Manager(ACM)SSL 证书关联到您的网站,则生成一个。
  3. 配置好负载均衡器,将目标组中的目标设置为 Lightsail 实例的私有 IP 地址。
  4. 将您的域指向 DNS 中的新负载均衡器。

解决方法

在 Lightsail 中配置 VPC 对等连接

有关配置 VPC 对等连接的说明,请参阅设置 Amazon VPC 对等连接以使用 Lightsail 之外的 AWS 资源

您必须为 Lightsail 实例所在的区域激活 VPC 对等连接。为此,您必须在该区域拥有一个默认 Amazon VPC 以及必要的 AWS Identity and Access Management(IAM)权限。有关更多信息,请参阅使用 VPC 对等连接在 Amazon Lightsail 和其他 AWS 服务之间建立通信所需的最低 IAM 权限是什么?

要检查您是否具有默认 VPC,请参阅查看您的默认 VPC 和默认子网

如果您没有默认的 Amazon VPC,则可以创建一个。要了解详情,请参阅创建默认 VPC

(可选)生成 ACM 证书

要将 ACM 证书关联到您的域并使用 HTTPS 访问网站,请参阅使用控制台请求公有证书

最佳实践是为证书指定两个名称。例如,example.com*.example.com。这样,主域和子域可以使用同一证书,例如 www.example.comxyz.example.com。但请记住,这不包括子域的两个级别的通配符 SSL 证书,例如 abc.xyz.example.com

另外一个最佳实践是使用 DNS 域验证,而不是电子邮件验证。与电子邮件验证相比,DNS 验证具有多项优势。

不论是使用 DNS 还是电子邮件,如果您在验证域名所有权时遇到问题,请参阅以下内容:

为负载均衡器配置目标组并注册目标

有关说明,请参阅配置目标组

配置目标时,请记住以下几点:

  • 目标类型必须选择 IP
  • 如果您的 Lightsail 实例中没有安装 SSL 证书,则确保协议为 HTTP,端口为 80。确保您的实例中没有配置任何 HTTPS 重新导向。否则,这可能会导致无限重新导向循环错误。
  • 确保协议为 HTTPS,端口为 443。如果要对从 Application Load Balancer 传输到 Lightsail 实例的数据进行加密,则应确保您的实例中安装了 SSL 证书。
  • 在 VPC 部分选择默认 VPC
  • 打开 Register target(注册目标)部分,在 Network(网络)下选择 Other Private IP addresses(其他私有 IP 地址),然后指定 Lightsail 实例的私有 IP 地址。有关获取 Lightsail 实例的私有 IP 地址的信息,请参阅实例的私有和公有 IPv4 地址

配置负载均衡器

有关说明,请参阅配置负载均衡器和侦听器

配置负载均衡器时,请记住以下几点:

  • 请确保选择默认 VPC 和至少两个可用区。您可以选择任何可用区。
  • 选择一个安全组或创建一个新的安全组。确保安全组已打开端口 80。另外,如果要将 ACM 证书附加到负载均衡器,则打开端口 443。
  • 如果要使用 ACM 证书以通过 HTTPS 访问您的网站,则添加一个新的 HTTPS 侦听器。
  • 使 HTTP 和 HTTPS 侦听器指向在上一步中创建的目标组。

更新域的 DNS 条目以指向 ALB DNS 名称

对于在网站上使用 Application Load Balancer 的域,最佳实践是使用 Amazon 名称服务器和 Amazon Route 53。这是因为 AWS 会为负载均衡器提供 DNS 名称,而不是 IP 地址。大多数名称服务器不支持为机构根网域(例如 example.com)添加主机名。他们只在子域(例如 www.example.com 或 blog.example.com)支持此功能。而 Route 53 提供别名功能,允许您直接将机构根网域 example.com 指向负载均衡器的 DNS 名称。

注意:即使您的域使用 Lightsail DNS,也必须将 DNS 切换到 Route 53。这是因为无法将机构根网域指向 Lightsail DNS 中的 Application Load Balancer DNS 名称。

如果域的名称服务器不是 Amazon,要将其更新为 Amazon,请参阅将 Route 53 设为正在使用的域的 DNS 服务

要获取负载均衡器的 DNS 名称,请参阅获取 ELB 负载均衡器的 DNS 名称

要更新 Route 53 托管区域以将域指向负载均衡器的 DNS 名称,请参阅将流量路由到 ELB 负载均衡器

注意:如果 Route 53 中已经有域的 DNS 记录指向某个 EC2 实例 IP 地址,请编辑这些记录而不是添加新记录。

最后的检查

在浏览器中访问该域并确认网站是否正确加载。现在您已将一个 Application Load Balancer 连接到您的 Lightsail 实例,可以使用 Lightsail 负载均衡器中没有的许多功能。您还可以设置防火墙服务,例如 AWS WAF。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?