使用Amazon ECS和AWS API网关实现微服务架构

在现代云计算环境中,微服务架构因其灵活性和可扩展性而受到青睐。Amazon ECS(Elastic Container Service)是一个旨在简化容器化应用程序的部署、管理和扩展的服务。与此同时,Amazon API Gateway是AWS提供的一个服务,专门用于创建、发布、维护、监控和保护REST、HTTP和WebSocket API,适用于任何规模。本文将探讨如何结合使用Amazon ECS和AWS API网关来实现微服务架构。

创建带有应用负载均衡器的ECS

默认情况下,当在AWS中创建一个VPC(虚拟私有云)时,它会设置四个子网,其中两个是公共的,两个是私有的。出于安全考虑,建议在私有子网中部署ECS(Elastic Container Service)和负载均衡器。

首先,让创建一个应用负载均衡器(ALB)。由于它不需要公开访问,所以在创建时选择“内部”类型。选择VPC,并确保选择了私有子网。配置一个HTTPS监听器,确保选择了正确的SSL证书。在HTTPS监听器设置中,将其设置为转发流量到一个新的目标组。创建一个新的目标组,选择IP地址作为目标类型,并使用HTTP协议。不要忘记指定健康检查路径。关键在于HTTPS监听器将流量转发到一个HTTP目标组。

现在,当创建一个ECS集群时,配置负载均衡与之前创建的ALB和目标组。确保ECS网络安全组允许来自与应用负载均衡器相关联的安全组的所有TCP流量。

AWS HTTP网关

接下来,让创建一个AWS HTTP网关。AWS API网关提供了REST网关和HTTP网关选项,其中HTTP网关是更快、更经济的选择。要建立私有集成,将HTTP API路由连接到VPC中的资源,例如应用负载均衡器或Amazon ECS基于容器的应用程序,可以使用VPC链接。VPC链接在API网关和VPC资源之间提供了安全的连接。它们可以在不同的路由和API之间重复使用。

要设置这个:

  1. 导航到AWS管理控制台中的API网关。
  2. 选择VPC链接,并为HTTP API添加一个VPC链接。选择用于ECS和ALB的VPC和子网。
  3. 现在,继续创建一个HTTP API。在这个阶段,不需要添加集成;只需提供一个API名称,其他所有设置保持默认。一旦API创建完成,添加一个路由Any->/{proxy+}。
  4. 现在,转到集成,选择Attach integrations to routes,并创建并附加一个集成。选择集成类型为Private Resource,手动选择集成方法,并选择ALB/NLB。在下拉列表中,选择之前创建的ALB。对于监听器,选择HTTPS:443,因为ALB只有一个HTTPS监听器。最后,从VPC链接下拉列表中选择之前创建的VPC链接。附加集成后,将在$default阶段生成一个调用URL。

现在,可以使用这个调用URL作为基础URL来测试API,例如{invoke URL}/health。如果收到一个400 Bad Request — The plain HTTP request was sent to the HTTPS port,那是因为忘记了在集成中设置安全主机。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485