本指南演示了如何配置虚拟私有云(VPC)中的代理,以便将外部服务连接到您的 Amazon VPC Lattice 服务网络,从而实现公共、混合或跨区域访问。虽然 VPC Lattice 简化了 AWS 区域内的服务间消费,但如果您的应用程序位于区域之外,则需要创建和管理代理解决方案。按照本指南构建入口 VPC 并配置适当的 DNS 解析,您就可以轻松地从 VPC Lattice 服务网络建立与外部资源的连接。
请注意:[免责声明]
架构图

-
概览
-
公共访问
-
混合访问
-
跨区域访问
-
概览
-
此架构图展示了如何在虚拟私有云(VPC)中配置代理,以将外部服务连接到 Amazon VPC Lattice。有三种方法可以使用 Amazon VPC Lattice 实现公共、混合或跨区域访问。每种方法都将在相应的选项卡中进一步概述。
第 1 步
本指南将在多个可用区(AZ)中部署虚拟私有云(VPC),其中的公共和私有子网均包含内部和外部网络负载均衡器。 -
公共访问
-
此架构图展示了在关联的 VPC 中布置代理解决方案如何通过调整 DNS 解析实现 VPC Lattice 服务的外部消费。
第 1 步
位于 AWS 外部的消费者应用程序尝试公开解析 service1 的域名。一个 Amazon Route 53 公共托管区被解析到网络负载均衡器域名。 -
混合访问
-
此架构图展示了在关联的 VPC 中布置代理解决方案如何使本地应用程序能够通过调整混合 DNS 解析实现 VPC Lattice 服务的外部消费。
第 1 步
本地消费者应用程序尝试在本地解析 service1 的域名。本地 DNS 服务器将 DNS 请求转发到位于 AWS 上的 Route 53 解析器入站端点。您可以在 AWS 上使用任何混合连接解决方案。 -
跨区域访问
-
此架构图展示了在关联的 VPC 中布置代理解决方案如何通过调整混合 DNS 解析实现 VPC Lattice 服务的跨区域消费。
第 1 步
AWS 区域 1 消费者 VPC 中的消费者应用程序通过使用 Route 53 私有托管区,利用其本地 DNS VPC 解析器解析 service1 的域名。
Well-Architected 支柱

当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
CodePipeline 让您能够使用管道通过 NGINX 代理解决方案的构件存储库实施受控且可审计的变更,从而帮助您避免不必要的更新。此外,CloudFormation 使用基础设施即代码来部署所有资源,使您可以查看和控制创建的资源。
-
安全性
VPC Lattice 通过在 VPC Lattice 服务网络和服务中使用可选的授权策略来处理身份验证和授权。AWS Identity and Access Management(IAM)使用 AWS 上的零信任安全模型,为服务间通信建立安全的身份验证和授权机制。IAM 安全凭证可生成 AWS Signature 版本 4 签名,并将其传递给 VPC Lattice。VPC 和应用程序的常用网络安全措施增加了第二层安全控制。例如,您可以使用安全组和网络访问控制列表,NGINX 配置能够让您定义可连接到代理目标的源 IP 允许列表。
-
可靠性
本指南使用网络负载均衡器和 Fargate 上的 Amazon ECS 实例集,在三个可用区中部署资源,为您的代理解决方案提供高可用性。此外,CodePipeline 使用默认情况下在区域内高度可用的托管 AWS 服务,包括 CodeCommit、CodeBuild 和 CloudFormation。
注意:本指南建立在一种假设的基础之上,即它将使用 Amazon ECS 服务的平均 CPU 指标作为维度,自动扩展和缩减。负载测试表明,根据所选任务规模的规格,随着负载的增加,指南会受到 CPU 的限制。您可以调整本指南,使用最适合应用程序配置文件和负载的指标。
-
性能效率
本指南结合使用了 AWS 原生服务和可定制选项。它使用网络负载均衡器作为入口点,因为在连接到 VPC Lattice 时,它可以提供高吞吐量、灵活的协议,以及功能支持。Fargate 上的 Amazon ECS 代理实例集可以灵活地将 VPC Lattice 生成的域名解析到链路本地地址(可能会有所不同)。实例集使用 Fargate 来获得无服务器技术的可扩展性,并简化容器管理。
-
成本优化
本指南可根据 CPU 利用率,按需自动扩展 Fargate 任务上的 Amazon ECS。Amazon ECS 的这种自动可扩展性意味着代理解决方案只会使用所需的计算容量,因此您无需为不必要的计算付费。
-
可持续性
Fargate 上的 Amazon ECS 可自动处理扩展,让您的代理解决方案能够根据 CPU 负载情况,占用最佳计算资源量。此外,这些任务使用轻量级版本的 NGINX,以便在向 VPC Lattice 发送请求时尽量减少计算负荷。通过使用经过配置和测试的工作负载弹性,本指南可帮助您有效地根据需求匹配云资源利用率,避免过度预置容量,最终减少碳足迹。
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。