假设我有一个网站:运行在AWS上的mysite.com
,是从一个应用程序负载均衡器后面的一些EC2实例中提供的。负载平衡器通过ACM证书终止SSL。
我需要将传入的请求路由到一个URL (例如:mysite.com/{user_id}/something/here/
),使其远离负载均衡器,并将它们发送到Lambda函数(更具体地说,我只想捕获请求体并将其写入某个地方,然后返回HTTP200;这不需要通过Lambda函数完成)。
ALB允许您路由到不同的目标组,但它们似乎只能包含EC2实例。docs声明“您用目标组注册目标,例如EC2实例”--如果不仅仅是EC2实例,还可以添加什么?
我不想运行我自己的have等实例,也不想在请求通过ALB并访问web服务器之后通过nginx路由它们,因为这个练习的目的是减少我必须管理的东西,而不是增加它们!
有办法绕道吗?
发布于 2017-06-23 17:03:12
向目标组注册目标(如EC2实例)。http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html
你做了个精明的观察。这是一个有趣的词选择..。但是,至少就目前而言,EC2实例是唯一的目标。
调用Lambda函数或将其代理到API (使用Nginx或HAProxy)的EC2实例是一种合理的方法。如果您不熟悉将实例作为代理使用,那么您可能会惊讶地发现,当代理是他们所做的全部工作时,您可以通过即使是微小的实例,流量也是如此之大。(我在HAProxy中有t2.microandt2.Nano实例,它们每天代理超过100万次请求,而不超过5%的CPU)。
但是,如果你想减少你必须管理的东西,把所有东西都放在一个域中,并取走某些路径,你可以使用CloudFront在ALB前面,将某些路径模式路由到其他地方--比如到API网关。(奖金:您也可以将来自S3的静态资产集成到您的站点中。您甚至可以通过路径模式匹配将请求路由到AWS外部的服务器和服务。)CloudFront被营销为CDN,但它也恰好是一个无限可伸缩的反向代理。
https://serverfault.com/questions/857574
复制相似问题