概览
本指南演示了如何配置虚拟私有云(VPC)中的代理,以便将外部服务连接到您的 Amazon VPC Lattice 服务网络,从而实现公共、混合或跨区域访问。虽然 VPC Lattice 简化了 AWS 区域内的服务间消费,但如果您的应用程序位于区域之外,则需要创建和管理代理解决方案。按照本指南构建入口 VPC 并配置适当的 DNS 解析,您就可以轻松地从 VPC Lattice 服务网络建立与外部资源的连接。
工作原理
概览
此架构图展示了如何在虚拟私有云(VPC)中配置代理,以将外部服务连接到 Amazon VPC Lattice。有三种方法可以使用 Amazon VPC Lattice 实现公共、混合或跨区域访问。每种方法都将在相应的选项卡中进一步概述。
Well-Architected 支柱
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
CodePipeline 让您能够使用管道通过 NGINX 代理解决方案的构件存储库实施受控且可审计的变更,从而帮助您避免不必要的更新。此外,CloudFormation 使用基础设施即代码来部署所有资源,使您可以查看和控制创建的资源。
VPC Lattice 通过在 VPC Lattice 服务网络和服务中使用可选的授权策略来处理身份验证和授权。AWS 身份和访问管理 (IAM) 使用 AWS 上的零信任安全模型,为服务间通信建立安全的身份验证和授权机制。IAM 安全凭证可生成 AWS Signature 版本 4 签名,并将其传递给 VPC Lattice。VPC 和应用程序的常用网络安全措施增加了第二层安全控制。例如,您可以使用安全组和网络访问控制列表,NGINX 配置能够让您定义可连接到代理目标的源 IP 允许列表。
本指南在三个可用区中部署资源,为您的代理解决方案提供高可用性,该解决方案使用网络负载均衡器和 Amazon ECson Fargate 队列制作。此外,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 发送请求时尽量减少计算负荷。通过使用经过配置和测试的工作负载弹性,本指南可帮助您有效地根据需求匹配云资源利用率,避免过度预置容量,最终减少碳足迹。
自信地进行部署
为部署做好准备了吗? 查看 GitHub 上的示例代码,了解详细的部署说明,以根据需要按原样部署或进行自定义部署。
免责声明
找到今天要查找的内容了吗?
请提供您的意见,以便我们改进网页内容的质量。