本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 VPC Lattice 参考架构
发布日期:2023 年 10 月 16 日 (图表历史)
Amazon VPC Lattice 是一项应用层服务,可持续连接、监控和保护您的服务之间的通信。本系列展示了多AWS 账户 环境的不同连接模式。
组件图
VPC Lattice 为您提供了一种一致的方式来连接、保护和监控您的服务之间跨 AWS 计算服务(实例、容器和无服务器函数)的通信。此图将向您展示VPC Lattice中的不同组件以及它们如何相互作用。
-
服务网络是服务集合的逻辑边界。可以授权与网络关联的服务,用于发现、连接、可访问性和可观测性。要向网络中的服务发出请求,客户端必须位于与服务网络关联的 VPC 中。
-
服务代表一个可独立部署的软件单元,用于提供特定的任务或功能。每个服务都有一个监听器,该监听器使用规则来定位一个或多个目标组。目标可以是亚马逊弹性计算云 (Amazon EC2) 实例、IP 地址、AWS Lambda函数、应用程序负载均衡器或 Kubernetes Pod。
-
当一项服务关联到服务网络时,它允许客户端向该服务发出请求,但前提是客户端所在的 VPC 也与服务网络关联且策略允许。
-
当您与服务网络建立 VPC 关联时,它会使该 VPC 中的所有目标成为客户端,并与服务网络中的其他服务通信。可以将安全组连接到该关联以控制来自 VPC 的网络访问,而服务网络或服务策略可用于应用细粒度的访问控制。
-
您可以在服务网络或服务中使用身份验证策略来配置访问控制。
交通流量图
VPC Lattice 旨在帮助您轻松有效地发现、保护、连接和监控其中的所有服务。Amazon Route 53 VPC 解析器在消费者 VPC 内用于解析 VPC Lattice 服务的域名,解析为链接本地地址以将流量发送到服务网络。
-
放置在亚马逊弹性计算云(亚马逊 EC2)实例中的消费者应用程序查询亚马逊 Route 53 VPC 解析器以获取 serv ice 1 的域名解析。
-
DNS 解析决定流量应发送到服务网络(链接本地地址)。第一个流量控制措施是连接到 VPC 关联的安全组(您可以连接多个安全组)。
-
如果请求的 VPC Lattice 服务与与消费者 VPC 关联的服务网络相关联,并且服务网络策略允许与其通信,则流量将转发到特定目标。
-
在此示例中,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 生成的域名之间进行映射,请创建与您的消费者 VPC 关联的私有托管区域。该托管区域将包含执行此映射的 ALIAS 记录。
-
或者,要处理 HTTPS 请求,在设置自定义域名时,必须在 AWS Certificate Manager (ACM) 中准备好自己的 SSL/TLS 证书。
-
放置在亚马逊 EC2 实例中的消费者应用程序查询 VPC 解析器,以获取 serv ice 1.example.com 的域名解析。Route 53 解析器解析别名记录,直接返回相应的 VPC Lattice 终端节点 IP 地址,从而无需对 VPC 解析器进行额外的 DNS 查询。
-
应用程序将流量转发到 VPC 莱迪思服务网络 VPC 协会。
-
由于请求的 VPC Lattice 服务与消费者 VPC 关联的服务网络相关联,并且服务网络的策略允许与其通信,因此流量将转发到特定目标。
-
在此示例中,s ervice1 只有一个目标组(默认路由),即自动缩放组。流量将转发到该组中的一个 Amazon EC2 实例。
Multi-Account 集中式单一服务网络图
中央帐户可以拥有服务网络的所有权,该网络由相同或不同内部的其他 AWS 帐户共享(使用 AWS 资源访问管理器) AWS Organizations。此外,提供商账户还可以使用 AWS 资源访问管理器共享其服务。
-
放置在 Amazon EC2 实例中的消费者应用程序查询 VPC 解析器以获取 serv ice 2 的域名解析。
-
DNS 解析决定流量应发送到服务网络。
-
在此示例中,服务网络和服务级别的策略都允许使用者向目标(Auto Scaling 组)发送流量,因此 Amazon EC2 实例中的应用程序可以使用 s ervice2 。
-
消费者应用程序获得 s ervice1 的域名解析。
-
VPC 解析器将以服务网络作为下一跳进行解析。但是,在示例中,服务网络或服务级别的策略都不允许消费者使用 service1(Lambda 函数),因此流量被丢弃。
Multi-Account 集中式多服务网络图
一个中央帐户可以拥有多个服务网络的所有权,这些网络在相同或不同(与服务相同)内与其他 AWS 账户网络共享 AWS Organizations (使用 AWS 资源访问管理器)。使用多个服务网络可以对服务进行细分,这也可以通过使用策略来实现或补充。
-
放置在 VPC 中的AWS Lambda函数可以在 VPC 关联后访问服务网络。在这种情况下,位于 Lambda 函数中的消费者服务向 VPC 解析器查询 service1 的域名。
-
DNS 解析决定流量应发送到服务网络 2。
-
服务网络和服务级别的策略都允许使用者向目标(Auto Scaling 组)发送流量,因此消费者应用程序可以使用该服务。
-
放置在 Amazon EC2 实例中的消费者应用程序查询 VPC 解析器以解析该服务的域名2。这解决了在 VPC Lattice 链路本地地址中将流量发送到服务网络的问题。
-
由于 s ervice2 与服务网络 1 无关,因此流量会丢弃。
Multi-Account 分布式服务网络图
每个提供商都 AWS 账户 拥有自己的服务,并在相同或不同的内部与其他 AWS 账户提供商共享这些服务 AWS Organizations。由于 VPC 只能与一个服务网络相关联,因此消费者可以拥有自己的服务网络并选择他们想要使用的服务。
-
置于亚马逊 EC2 实例中的消费者应用程序向 VPC 解析器查询 serv ice 1 的 DNS 解析。
-
DNS 解析决定流量应发送到服务网络 1。
-
服务网络和服务级别的策略都允许来自消费者向目标(Lambda 函数)的流量,因此消费者应用程序可以使用 service1。
-
放置在 VPC 中的 Lambda 函数可以在与 VPC 关联后访问服务网络。在这种情况下,位于 Lambda 函数中的消费者服务向 VPC 解析器查询 service2 的 DNS 解析。
-
DNS 解析决定流量应发送到服务网络 2。
-
服务网络和服务级别的策略都允许使用者向目标(Auto Scaling 组)发送流量,因此消费者应用程序可以使用 s ervice2 。
延伸阅读
有关其他信息,请参阅
贡献者
此参考架构图的贡献者包括:
-
Pablo Sánchez Carmona,亚马逊网络服务专业解决方案架构师
-
亚当·帕尔默,亚马逊网络服务高级专家解决方案架构师
图表历史
要获得有关此参考架构图更新的通知,请订阅 RSS 提要。
| 变更 | 说明 | 日期 |
|---|---|---|
图表已更新 | 更新了图表并添加了新的用例。 | 2023 年 10 月 16 日 |
初次发布 | 参考架构图首次发布。 | 2023 年 4 月 17 日 |
注意
要订阅 RSS 更新,必须为正在使用的浏览器启用 RSS 插件。