我找不到任何关于如何通过CloudFormation将WAF与ALB相关联的示例或文档.据说可能通过这个新闻公告https://aws.amazon.com/about-aws/whats-new/2017/05/cloudformation-support-for-aws-waf-on-alb/,但没有任何东西我发现这表明如何.使用CloudFront而不是ALB已有详细记录,但我没有找到关于使用ALB(通过CloudFormation)的单个示例.
更新:我不需要一个完整的示例来为我完成整个设置,但至少需要一个片段来指出WAF如何知道与ALB关联,反之亦然.链接是什么缺失.
amazon-web-services aws-cloudformation amazon-waf amazon-alb
最近我们从 aws elb 切换到 aws alb;但我们在 aws alb 中面临问题;cookie粘性根本不起作用;为每个请求(页面上的事件ajax请求)生成一个新的cookie;
如果我们再次切换回 aws elb,则 cookie 粘性工作得很好。
我了解 Apigee 可以将请求转发/负载平衡到目标服务器。但是各种云提供商出售他们的负载均衡器,如果在我的后端应用程序中我只是公开 API 并且我使用 apigee Edge,为什么我需要这些负载均衡器?我在概念上错过了什么吗?
我设置应用程序的方式是:
1 个应用程序 LoadBalancer,具有 2 个侦听器 HTTP 和 HTTPS。
对于这两个侦听器,我为每个侦听器设置了指向目标组的侦听器规则。
每个目标组都是其自己的应用程序并具有自己的域,我将其用作侦听器(主机标头)中的规则条件以进行转发。
我的问题是,因为侦听器规则必须具有唯一的优先级
鉴于我有 100 条监听器规则指向具有不同域的不同目标组,服务器响应是否会出现明显的延迟?
我担心第 100 条侦听器规则会导致其转发流量的目标组性能缓慢
最初,我认为每个 ALB 侦听器具有不同路径模式的多个服务来适当地分发 API 调用是显而易见的选择。但就健康检查而言(如果其中一项服务出现故障),我不知道有什么聪明的方法可以将该服务的流量转移到不同的区域。
如果我有一个带有加权路由 53 记录的活动设置,它将在运行状况检查时进行故障转移,那么我看不到任何其他解决方案,除了切断整个 ALB 流量并转移到另一个区域,或者忽略 1 个宕机服务并继续将流量发送到部分失败的 ALB。
ALB 与服务的一对一映射可以修复此解决方案,但会增加成本和复杂性方面的额外开销。
对于主动微服务架构,建议遵循什么模式?
amazon-web-services amazon-elb amazon-route53 microservices amazon-alb
我有两个使用gRPC进行通信的微服务。两个都是部署在ECS上的Docker应用程序。如何配置它们以使用AWS ALB?在文档中说ALB支持HTTP / 2,但是我只能看到HTTP1设置。我的应用程序在8080处具有一个gRPC端口和一个运行状况检查API。如何在ALB上进行配置?
I am trying for the simplest deploy to get an https web server up and running in Fargate.
I have used Amazon Certificate Manager to create a public certificate.
我有一个应用程序负载均衡器,它在两个端口上与 Fargate 容器通信:80 用于 http,443 用于 https
这就是问题所在:当我在端口 80 (http) 上运行我的网络服务器并通过 ALB 连接时,它工作正常(不安全,但它提供了 html)。
当我在启用 TLS 的端口 443 上运行我的网络服务器时,它不会通过 ALB 连接。
另一点是,在端口 443 上启用 TLS 的情况下运行我的网络服务器时,我没有证书或证书密钥,因此很困惑如何从 Amazon 获取它。
我的另一个问题是:我说 ELB 将通过 HTTPS 与客户端通信但 ELB 可以通过 HTTP 与容器通信是否有意义?这安全吗?
感谢您的帮助,我的网络知识非常生疏。
背景:
我们正在运行一个单页面应用程序,该应用程序通过 nginx 提供服务,并带有运行 Express 的 Node js (v12.10) 后端。它通过 ECS 作为容器运行,目前我们正在运行三个 t3a 介质作为容器实例,其中每个 API 和 Web 服务在这些实例上运行 6 个副本。我们使用 ALB 来处理请求的负载平衡/路由。我们跨 3 个可用区运行三个子网,负载均衡器与所有三个可用区关联,实例也分布在这 3 个可用区。
问题:
我们正在尝试找出前端和后端出现的一些间歇性 502 错误的根本原因。我已经下载了 ALB 访问日志,所有这些请求的有趣之处在于它们都显示以下内容。- request_processing_time:0.000 - target_processing_time:0.000(有时为 0.001 或最多 0.004) - response_processing_time:-1
在发生这些错误时,我可以看到有可用的健康目标。
现在我知道有些人遇到过这样的问题,服务器端的 keepAlive 时间比 ALB 端的要短,因此连接被强制关闭,然后 ALB 会尝试重用(这符合故障排除指南)在 AWS 上)。然而,当查看我们后端的 keepAlive 时间时,它们设置为比当前 ALB 高一倍。此外,请求本身可以通过 chrome 开发工具重播,并且成功(我不确定这是否是检查格式错误的请求的有效方法,这似乎是合理的)。
我对这个领域非常陌生,如果有人对在哪里查看或运行什么样的测试有一些建议可以帮助我查明这个问题,我将不胜感激。我在某些端点上运行了一些负载测试并重复了 502 错误,但是重负载下的错误与我在日志中看到的间歇性错误不同,因为 target_processing_time 相当高,所以在我看来,这完全是另一个问题。在这个阶段,我想了解显示 target_processing_time 基本上为零的错误。
如果我有一个 ECS 集群,其中 N 个不同的网站在所述集群上作为 N 个服务运行 - 我该如何设置负载均衡器?
我目前的做法是针对每个网站 X,
它似乎有效......但我想确保这是正确的方法
谢谢!
我创建了一个安装了 apache 的 EC2 实例,并且只允许我的系统使用 HTTP/SSH 流量。我能够使用 EC2 的公共 IP 访问网页。然后我使用相同的 SG 配置 ALB,使用 ALB 注册相同的 EC2 实例。尝试使用 ALB 的 DNS 名称访问网页,出现错误 -504 网关超时。
增加超时间隔以查看这是否解决了问题,但没有用。然后我重温了课程,并认为让 SG 中的每个人都允许 HTTP 流量(因为它在讲座中是允许的),看看它是否有效,是的,它有效。我再次将 SG 更改为仅允许我的系统的流量,但它再次失败。
从观察者的角度来看,症状与此处的问题相同 场景也相同:Angular 应用程序将预检请求发送到 REST api,并且预检请求大约需要 50% 的时间,最多 1.3 秒(插图与链接的问题)。
此外,websocket 经常超时,直到 socket-io 最终成功建立连接。问题在 Chrome 中更为明显,而在 Safari/Firefox 中则较少。
但是,我们使用的是 ALB 而不是 ELB,并且我们所有的子网都是公共的。
amazon-web-services websocket socket.io amazon-elb amazon-alb
我有一个负载均衡器 (ALB) 正在处理我的应用程序的 API 请求 (alb.domain.com) 。我还有一个 S3 存储桶,我的静态站点通过 CloudFront (domain.com) 提供服务。我已经配置了一个发行版,以便 /api 转到 ALB,其余部分转到 S3,一切正常。不过,我也可以将 API 请求直接路由到 ALB (alb.domain.com/api),而不是将 API 请求路由到 CloudFront (domain.com/api),这也可以正常工作。我不需要缓存我的 API 请求,所以我无论如何都在发行版上禁用了它。鉴于我 (1) 在路由中引入额外的连接以及 (2) 现在根据 CloudFront 定价计算我的请求,那么我通过 CloudFront 执行请求的意义何在。仅将请求直接路由到 ALB 并仅使用 CloudFront 提供静态文件是否有任何缺点?
amazon-alb ×12
amazon-elb ×6
amazon-ec2 ×2
amazon-ecs ×2
amazon ×1
amazon-acm ×1
amazon-s3 ×1
amazon-waf ×1
apigee ×1
aws-fargate ×1
express ×1
grpc ×1
grpc-java ×1
nginx ×1
port ×1
security ×1
socket.io ×1
websocket ×1