1

我目前在 ec2-instance(aws) 上运行我的微服务,前面有 traefik/letencrypt。"WebBrowser" -> Internet -> (EC2 with traefik) 一切都很好。现在我想使用 AWS-WAF。但是,要使用这个 WAF 服务,我必须在我的 ec2-instance 和 WAF 服务之间插入一个应用程序负载均衡器。

"WebBrowser" -> Internet -> WAF -> ALB -> (EC2 with traefik)

第一个问题:这种方法看起来可行吗?第二个问题:有没有人有这方面的实践经验?目前,我尝试使用 terraform 构建 ALB 并收到一个错误,即至少“必须指定两个不同可用区中的两个子网”...

根据 aws 文档(https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html),这似乎是有意的:

“使用 Application Load Balancer,我们要求您启用多个可用区。”

嗯,我目前只有一台 ec2 机器来提供我所有的服务......

也许有人已经这样做了,并且可以为我指明正确的方向。

托马斯

4

2 回答 2

1

"WebBrowser" -> Internet -> WAF -> ALB -> (EC2 with traefik)

当你打算使用 ALB 时,我认为你不需要traefik/letencrypt,因为 ALB 提供了 taefik 所做的大约所有功能。您可以将AWS 证书与 ALB 一起使用,并且完全免费。

您应该终止 TLS 流量并将纯 HTTP 流量发送到实例,因为加密/解密是CPU 密集型任务

“使用 Application Load Balancer,我们要求您启用多个可用区。”

是的,您应该为您的 LB 提供两个可用区,不要将它与一个实例混合使用。

我目前只有一台具有所有服务的 ec2 机器

如果您有一个实例也没关系,您需要为 ALB 指定的区域而不是实例本身。

于 2020-07-30T08:45:32.590 回答
0

当您拥有 WAF 时,您可以选择以下各项,您可以将其应用于:

您并不完全需要 ALB,您可以将 CloudFront 添加为 CDN,而不是在您的主机前面。但是,我想说,当您尝试使用 Application Load Balancer 提高安全性并将您的应用程序实例移动到私有子网中时,这将是最好的方法。

您需要至少 2 个分布在不同可用区的子网。通过这样做,您可以在特定节点发生故障时保持负载均衡器的高可用性。您的 EC2 实例不需要位于同一子网或可用区中。事实上,AWS 采用了跨区域负载均衡

负载均衡器仅支持来自ACM的 SSL ,您可以上传自己的或使用 ACM 托管的证书,该证书将为您自动生成和更新。我会选择后一个选项,因为它将消除您旋转 SSL 的开销。

于 2020-07-30T08:54:28.203 回答