View a markdown version of this page

亚马逊 VPC Lattice 参考架构 - 亚马逊 VPC Lattice 参考架构

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

亚马逊 VPC Lattice 参考架构

发布日期:2023 年 10 月 16 日 (图表历史)

Amazon VPC Lattice 是一项应用层服务,可持续连接、监控和保护您的服务之间的通信。本系列展示了多AWS 账户 环境的不同连接模式。

组件图

VPC Lattice 为您提供了一种一致的方式来连接、保护和监控您的服务之间跨 AWS 计算服务(实例、容器和无服务器函数)的通信。此图将向您展示VPC Lattice中的不同组件以及它们如何相互作用。

该图显示了 VPC Lattice 中的不同组件以及它们如何相互作用。
  1. 服务网络是服务集合的逻辑边界。可以授权与网络关联的服务,用于发现、连接、可访问性和可观测性。要向网络中的服务发出请求,客户端必须位于与服务网络关联的 VPC 中。

  2. 服务代表一个可独立部署的软件单元,用于提供特定的任务或功能。每个服务都有一个监听器,该监听器使用规则来定位一个或多个目标组。目标可以是亚马逊弹性计算云 (Amazon EC2) 实例、IP 地址、AWS Lambda函数、应用程序负载均衡器或 Kubernetes Pod。

  3. 当一项服务关联到服务网络时,它允许客户端向该服务发出请求,但前提是客户端所在的 VPC 也与服务网络关联且策略允许。

  4. 当您与服务网络建立 VPC 关联时,它会使该 VPC 中的所有目标成为客户端,并与服务网络中的其他服务通信。可以将安全组连接到该关联以控制来自 VPC 的网络访问,而服务网络或服务策略可用于应用细粒度的访问控制。

  5. 您可以在服务网络或服务中使用身份验证策略来配置访问控制。

交通流量图

VPC Lattice 旨在帮助您轻松有效地发现、保护、连接和监控其中的所有服务。Amazon Route 53 VPC 解析器在消费者 VPC 内用于解析 VPC Lattice 服务的域名,解析为链接本地地址以将流量发送到服务网络。

该图显示了如何轻松有效地发现、保护、连接和监控其中的所有服务。
  1. 放置在亚马逊弹性计算云(亚马逊 EC2)实例中的消费者应用程序查询亚马逊 Route 53 VPC 解析器以获取 serv ice 1 的域名解析。

  2. DNS 解析决定流量应发送到服务网络(链接本地地址)。第一个流量控制措施是连接到 VPC 关联的安全组(您可以连接多个安全组)。

  3. 如果请求的 VPC Lattice 服务与与消费者 VPC 关联的服务网络相关联,并且服务网络策略允许与其通信,则流量将转发到特定目标。

  4. 在此示例中,s ervice1 只有一个目标组(默认路由),即应用程序负载均衡器 (ALB)。此 ALB 会将流量转发到相应的亚马逊 EC2 实例。

VPC Lattice 服务图的自定义域名

创建 VPC Lattice 服务时,您可以配置自定义域名,为用户提供更直观的 URL。当客户端使用您的自定义域名提出请求时,DNS 服务器会将其解析为 VPC Lattice-generated 域名(服务名称-service_id.partition_id.vpc-lattice-svcs.region.on.aws)。但是,只有当您将自定义域名映射到 VPC Lattice-generated 域名(CNAME 记录)时,才会发生这种情况。

该图显示了如何将您的自定义域名映射到 VPC Lattice-generated 域名。
  1. 要允许在您的自定义域名和 VPC Lattice 生成的域名之间进行映射,请创建与您的消费者 VPC 关联的私有托管区域。该托管区域将包含执行此映射的 ALIAS 记录。

  2. 或者,要处理 HTTPS 请求,在设置自定义域名时,必须在 AWS Certificate Manager (ACM) 中准备好自己的 SSL/TLS 证书。

  3. 放置在亚马逊 EC2 实例中的消费者应用程序查询 VPC 解析器,以获取 serv ice 1.example.com 的域名解析。Route 53 解析器解析别名记录,直接返回相应的 VPC Lattice 终端节点 IP 地址,从而无需对 VPC 解析器进行额外的 DNS 查询。

  4. 应用程序将流量转发到 VPC 莱迪思服务网络 VPC 协会。

  5. 由于请求的 VPC Lattice 服务与消费者 VPC 关联的服务网络相关联,并且服务网络的策略允许与其通信,因此流量将转发到特定目标。

  6. 在此示例中,s ervice1 只有一个目标组(默认路由),即自动缩放组。流量将转发到该组中的一个 Amazon EC2 实例。

Multi-Account 集中式单一服务网络图

中央帐户可以拥有服务网络的所有权,该网络由相同或不同内部的其他 AWS 帐户共享(使用 AWS 资源访问管理器) AWS Organizations。此外,提供商账户还可以使用 AWS 资源访问管理器共享其服务。

该图显示了中央帐户如何拥有服务网络的所有权,该网络由相同或不同内部的其他 AWS 帐户共享(使用 AWS 资源访问管理器) AWS Organizations。
  1. 放置在 Amazon EC2 实例中的消费者应用程序查询 VPC 解析器以获取 serv ice 2 的域名解析。

  2. DNS 解析决定流量应发送到服务网络。

  3. 在此示例中,服务网络和服务级别的策略都允许使用者向目标(Auto Scaling 组)发送流量,因此 Amazon EC2 实例中的应用程序可以使用 s ervice2 。

  4. 消费者应用程序获得 s ervice1 的域名解析。

  5. VPC 解析器将以服务网络作为下一跳进行解析。但是,在示例中,服务网络或服务级别的策略都不允许消费者使用 service1(Lambda 函数),因此流量被丢弃。

Multi-Account 集中式多服务网络图

一个中央帐户可以拥有多个服务网络的所有权,这些网络在相同或不同(与服务相同)内与其他 AWS 账户网络共享 AWS Organizations (使用 AWS 资源访问管理器)。使用多个服务网络可以对服务进行细分,这也可以通过使用策略来实现或补充。

该图显示了中央帐户如何拥有多个服务网络的所有权,这些网络在相同或不同(与服务相同)内共享给其他 AWS 账户服务网络 AWS Organizations (使用 AWS 资源访问管理器)。
  1. 放置在 VPC 中的AWS Lambda函数可以在 VPC 关联后访问服务网络。在这种情况下,位于 Lambda 函数中的消费者服务向 VPC 解析器查询 service1 的域名。

  2. DNS 解析决定流量应发送到服务网络 2。

  3. 服务网络和服务级别的策略都允许使用者向目标(Auto Scaling 组)发送流量,因此消费者应用程序可以使用该服务。

  4. 放置在 Amazon EC2 实例中的消费者应用程序查询 VPC 解析器以解析该服务的域名2。这解决了在 VPC Lattice 链路本地地址中将流量发送到服务网络的问题。

  5. 由于 s ervice2 与服务网络 1 无关,因此流量会丢弃。

Multi-Account 分布式服务网络图

每个提供商都 AWS 账户 拥有自己的服务,并在相同或不同的内部与其他 AWS 账户提供商共享这些服务 AWS Organizations。由于 VPC 只能与一个服务网络相关联,因此消费者可以拥有自己的服务网络并选择他们想要使用的服务。

该图显示了每个提供商如何 AWS 账户 拥有自己的服务并在相同或不同内部与其他 AWS 账户提供商共享这些服务 AWS Organizations。
  1. 置于亚马逊 EC2 实例中的消费者应用程序向 VPC 解析器查询 serv ice 1 的 DNS 解析。

  2. DNS 解析决定流量应发送到服务网络 1。

  3. 服务网络和服务级别的策略都允许来自消费者向目标(Lambda 函数)的流量,因此消费者应用程序可以使用 service1。

  4. 放置在 VPC 中的 Lambda 函数可以在与 VPC 关联后访问服务网络。在这种情况下,位于 Lambda 函数中的消费者服务向 VPC 解析器查询 service2 的 DNS 解析。

  5. DNS 解析决定流量应发送到服务网络 2。

  6. 服务网络和服务级别的策略都允许使用者向目标(Auto Scaling 组)发送流量,因此消费者应用程序可以使用 s ervice2 。

延伸阅读

有关其他信息,请参阅

贡献者

此参考架构图的贡献者包括:

  • Pablo Sánchez Carmona,亚马逊网络服务专业解决方案架构师

  • 亚当·帕尔默,亚马逊网络服务高级专家解决方案架构师

图表历史

要获得有关此参考架构图更新的通知,请订阅 RSS 提要。

变更说明日期

图表已更新

更新了图表并添加了新的用例。

2023 年 10 月 16 日

初次发布

参考架构图首次发布。

2023 年 4 月 17 日

注意

要订阅 RSS 更新,必须为正在使用的浏览器启用 RSS 插件。