我需要设计一个网络应用程序,并需要我对基础部分的建议。 我已决定使用应用程序负载均衡器,但不确定是否应该使用 API 网关作为应用程序的入口点,还是将应用程序负载均衡器用作入口点?
另外,我不确定入口点是否是应用程序负载均衡器,因为它位于私有 vpc 中,如何将公共互联网中的应用程序客户端连接到它?
如果是的话,请说明在应用程序负载均衡器之前使用 API 网关的优点和必要性。
我需要设计一个网络应用程序,并需要我对基础部分的建议。我已决定使用应用程序负载均衡器,但不确定是否应该使用 API 网关作为应用程序的入口点,还是将应用程序负载均衡器用作入口点?
如果您只需要根据路径将传入请求路由到后端,ALB 就足够了。一般来说,ALB 比 APIGateway 便宜。如果您需要一些服务功能(身份验证、限制、缓存等),如果您不使用 ApiGateway,则需要在后端支持它。
另外,我不确定入口点是否是应用程序负载均衡器,因为它位于私有 vpc 中,如何将公共互联网中的应用程序客户端连接到它?
您的意思是您的后端服务主机运行在私有 VPC 中吗?如果是这种情况,ALB 无法直接将请求转发到私有 VPC 内的主机。您可以选择 1) 在您的主机前面使用 Apigateway 2) 拥有一组以 ALB 为前端的代理服务器,该代理服务器会将请求转发到私有 VPC 内的 NLB。您的实际服务主机将位于 NLB 后面。
Vishal很好地解释了问题1。因此,我要谈谈第二点。
我不确定入口点是否是应用程序负载均衡器,因为它 在私有 vpc 中,如何在公共环境中连接应用程序的客户端 互联网吗?
根据我的理解,您的 ALB 位于私有 VPC 内部,它平衡私有子网中的流量。因此,您可以在 ALB 前面设置一个 API 网关,将对您的私有 VPC 资源的访问扩展到 VPC 边界之外。然后,您应该创建某种形式的私有集成(例如,VPC 链接)(这将基于您将使用的云服务提供商)来封装 API 网关和目标 VPC 资源(在本例中为 ALB)之间的连接。