如何将API网关放在ALB之前,然后再到ECS / EC2?

时间:2019-04-20 08:29:41

标签: amazon-web-services aws-api-gateway amazon-elastic-beanstalk aws-elb aws-alb

我正在构建一个解决方案,其中有10-15个微服务REST应用程序在ECS容器中运行,而在EC2中将很少。我正在使用Cognito作为API网关身份验证。现在,UI应用程序会将请求发送到API网关,API网关又与REST应用程序连接并返回响应。

我尝试使用Cognito实现API网关身份验证,并且能够连接到EC2中运行的REST端点。

现在我需要一个解决方案,例如 API网关->应用程序负载平衡器->目标组-> ECS / EC2 将在公共子网中运行。

我该如何配置?

我遵循正确的方法吗?

2 个答案:

答案 0 :(得分:0)

    您需要公开您的微服务的
  • Api getway,Cognito授权者将注意身份验证和授权。

使用控制台注册实例

  • 通过https://console.aws.amazon.com/ec2/打开Amazon EC2控制台。

  • 在导航窗格上的“负载平衡”下,选择“负载平衡器”。

  • 选择您的负载均衡器。

  • 在底部窗格中,选择“实例”选项卡。

  • 选择编辑实例。

  • 选择要在负载均衡器中注册的实例。

  • 选择保存。

https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-deregister-register-instances.html

https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-load-balancer.html

https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-application-load-balancer.html

答案 1 :(得分:0)

设置API网关时,

创建具有贪婪路径{proxy +}的代理资源。 在代理资源上设置ANY方法。 将端点URL设置为您的ALB端点。

例如ENDPOINT网址: https://alb-example-123456789.us-east-1.elb.amazonaws.com/example/ {proxy}

有关更多详细信息,请参阅以下链接: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html https://docs.aws.amazon.com/apigateway/latest/developerguide/setup-http-integrations.html?shortFooter=true