Amazon VPC Lattice 的服务网络 - 简化微服务间通信
无需 Envoy 代理的 L7 服务网络,简化跨 VPC、跨账户的微服务间通信。介绍 IAM 认证和与 App Mesh 的选择对比。
服务网络的构成
VPC Lattice 提供应用层(L7)的服务网络,简化跨多个 VPC 和账户的服务间通信。服务网络是逻辑边界,将相关服务分组。将 VPC 关联到服务网络后,该 VPC 内的资源可以访问服务网络内的所有服务。每个服务被分配自动生成的 DNS 名称,无需 VPC Peering 或 Transit Gateway 配置即可实现跨 VPC 通信。通过 RAM(Resource Access Manager)将服务网络共享给其他账户,实现跨账户的服务间通信。
路由与认证
为服务设置监听器(HTTP 或 HTTPS),通过监听器规则定义基于请求路径、头部和方法的路由。目标组可注册 EC2 实例、IP 地址、ECS 任务、Lambda 函数和 ALB,统一处理不同的计算类型。通过加权路由将流量分配到多个目标组,实现金丝雀发布和蓝绿部署。将 IAM 认证策略应用于服务网络或服务,基于调用方的 IAM 角色进行访问控制。通过 SigV4 签名验证请求,确保只有授权的服务可以相互通信。
与 App Mesh 的选择对比
VPC Lattice 和 App Mesh 都管理服务间通信,但目标层和运维模型不同。VPC Lattice 以 AWS 托管方式提供 L7 服务网络,无需部署和管理 Envoy 代理。App Mesh 是基于 Envoy 的服务网格,可以精细控制断路器和重试策略,但有边车代理的运维负担。VPC Lattice 在跨 VPC、跨账户的服务间通信方面有优势,适合微服务分布在多个 VPC 或账户的环境。App Mesh 适合需要在单一 VPC 内精细控制流量的场景。
VPC Lattice 的定价
VPC Lattice 的定价由服务的按时计费、请求数和数据处理量 3 个要素构成。每个服务约 0.025 美元/小时,请求每 100 万次约 0.10 美元,数据处理每 GB 约 0.025 美元。与 ALB 相比,请求单价较低,但在服务数量多的环境中服务的按时计费会累积。VPC 关联到服务网络是免费的,从多个 VPC 访问服务不产生额外网络费用。将访问日志输出到 S3 分析流量模式,优化使用频率低的服务。
总结
VPC Lattice 简化了微服务间通信的网络设置,通过基于 IAM 的认证实现服务间的访问控制。通过服务网络提供无需 Envoy 代理的跨 VPC、跨账户通信,与 App Mesh 相比大幅降低运维负担。通过 L7 路由规则基于路径和头部进行流量控制,通过访问日志分析流量模式。