在亚马逊云科技re:Invent 2022中,亚马逊云科技介绍了Amazon VPC Lattice预览版,这是Amazon Virtual Private Cloud(Amazon VPC)的一项新功能,可通过一致的方式连接、保护和监控服务之间的通信。借助Amazon VPC Lattice,可以定义网络访问、流量管理和监控策略,以在实例、容器和无服务器应用程序之间连接计算服务。
4月10日,亚马逊云科技宣布Amazon VPC Lattice现已正式推出。与预览版相比,有以下新功能:
● 除了Amazon VPC Lattice自动生成的域名外,服务还可以使用自定义域名。使用HTTPS时,可以配置与自定义域名匹配的SSL/TLS证书。
● 可以部署开源AWS Gateway API控制器,使用带有Kubernetes原生体验的Amazon VPC Lattice。该工具使用Kubernetes Gateway API来连接多个Kubernetes集群的服务以及在EC2实例、容器和无服务器函数上运行的服务。
● 可以使用应用程序负载均衡器(ALB)或网络负载均衡器(NLB)作为服务的目标。
● IP地址目标类型现在支持IPv6连接。
使用Amazon VPC Lattice实现服务间的连接
如何使用Amazon VPC Lattice实现电子商务应用程序服务的相互通信。为简单起见,只考虑四种服务:
● 订单服务,作为Lambda函数运行。
● 库存服务,作为Amazon Elastic Container Service(Amazon ECS)部署在支持IPv6的双堆栈Amazon VPC中。
● 配送服务,作为ECS服务部署,并使用ALB向服务任务分配流量。
● 付款服务,在EC2实例上运行。
首先,创建一个服务网络。订单服务需要致电库存服务(检查商品是否可供购买)、配送服务(组织商品配送)和付款服务(转账)。这些服务在不同的亚马逊云科技账户和多个Amazon VPC中运行。Amazon VPC Lattice可以处理跨越Amazon VPC边界设置连接和跨账户权限的复杂性,因此服务间的通信就像HTTP/HTTPS调用一样简单。
订单服务在连接到Amazon VPC的Lambda函数中运行。由于图表中的所有Amazon VPC都与服务网络相关联,因此订单服务能够调用其他服务(库存、配送和付款),即使这些服务部署在不同的亚马逊云科技账户和IP地址重叠的Amazon VPC中亦是如此。
使用网络负载均衡器(NLB)作为目标
库存服务在双堆栈Amazon VPC中运行。它作为带有NLB的ECS服务部署,用于向服务中的任务分配流量。为了获取NLB的IPv6地址,在EC2控制台中查找NLB使用的网络接口。
为库存服务创建目标组时,在基本配置下,选择IP地址作为目标类型。然后,选择IPv6作为IP地址类型。
使用应用程序负载均衡器(ALB)作为目标
使用ALB作为目标甚至更容易操作。为配送服务创建目标组时,在基本配置下,选择新的应用程序负载均衡器目标类型。选择要在其中查找ALB的Amazon VPC并选择协议版本。
在下一步中,选择立即注册,然后从下拉列表中选择ALB。使用目标组使用的默认端口。Amazon VPC Lattice不为ALB提供额外的运行状况检查。但是,负载均衡器已经配置自己的运行状况检查。
为服务使用自定义域名
要调用这些服务,使用自定义域名。例如,在Amazon VPC控制台中创建付款服务时,选择指定自定义域配置,输入自定义域名,然后为HTTPS侦听器选择SSL/TLS证书。自定义SSL/TLS证书下拉列表显示来自AWS Certificate Manager(ACM)的可用证书。
保护服务间通信
现在已经创建目标组,看看如何保护服务间的通信。为了实现零信任身份验证和授权,使用AWS Identity and Access Management(IAM)。创建服务时,选择AWS IAM作为身份验证类型。
选择仅允许经过身份验证的访问策略模板,因此服务请求需要使用签名版本4进行签名,这与AWS API使用的签名协议相同。通过这种方式,服务之间的请求由其IAM证书进行身份验证,并且不必管理密钥来保护它们的通信。
或者,可以更精确地使用身份验证策略,该策略仅提供对某些服务或服务特定URL路径的访问权限。例如,可以将以下身份验证策略应用于订单服务,为Lambda函数提供这些权限:
● 对库存服务/stock URL路径的只读访问权限(GET方法)。
● 对配送服务/delivery URL路径的完全访问权限(任何HTTP方法)。
使用Amazon VPC Lattice,快速配置电子商务应用程序服务之间的通信,包括安全和监控。现在,可以专注于业务逻辑,而不是管理服务之间的通信方式。
Amazon VPC Lattice现已在以下亚马逊云科技区域推出:美国东部(俄亥俄州)、美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)和欧洲地区(爱尔兰)。
亚马逊云科技设计Amazon VPC Lattice的目的是允许随着时间的推移逐步加入更多团队。您组织中的每个团队都可以选择是否以及何时使用Amazon VPC Lattice。其他应用程序可以使用HTTP和HTTPS等标准协议连接到Amazon VPC Lattice服务。通过使用Amazon VPC Lattice,您可以专注于应用程序逻辑,通过对实例、容器和无服务器计算的一致支持来提高生产力和部署灵活性。
使用Amazon VPC Lattice简化连接、保护和监控服务的方式。