【问题标题】:Cloudfront TTL: Setting max TTL to 0 to just get DDOS protection benefitsCloudfront TTL:将最大 TTL 设置为 0 以获得 DDOS 保护优势
【发布时间】:2018-10-14 04:05:55
【问题描述】:
我一直在阅读 Cloudfront 文档,我想确保我的计划是合理的。我有一个后端 API 结构为 EC2 HTTP 服务器,经常更新内容(每秒几次更改)。这是我的理解:
- 我不应该将此 HTTP 服务器直接暴露给客户端,因为这会使 EC2 服务器容易受到 DDOS 攻击
- 使用 CloudFront 边缘站点创建一个间接层有助于防御 DDOS,因为 AWS 可以在网络外部而不是在我的 EC2 实例周围部署防火墙
- 通过设置最大 TTL = 0,我确保 Cloudfront 只是一个间接层,不会尝试进行任何实际缓存,以便用户始终获得最新信息。
这些假设是否正确/我的计划听起来合理吗?从在线阅读看来,这是对 Cloudfront 的非标准使用。
【问题讨论】:
标签:
amazon-ec2
amazon-cloudfront
httpserver
ddos
【解决方案1】:
这是一个完全合理的计划。
这不是 AWS 销售 CloudFront(作为 CDN)的主要用例,但很难说这种做法不在产品的设计范围内。
Amazon CloudFront 接受短至 0 秒的到期期限(在这种情况下,Amazon CloudFront 将使用源重新验证每个查看器请求)。 Amazon CloudFront 还支持特殊的缓存控制指令,例如私有、无存储等;在交付可能未在边缘缓存的动态内容时,这些通常很有用。
https://aws.amazon.com/cloudfront/dynamic-content/
当然,如果有足够的流量,一定程度仍然足以使您的服务器超载,但是,是的,这是一个可靠的策略。
在后台,API Gateway 边缘优化端点和 S3 传输加速功能都使用完全禁用缓存的 CloudFront。在这两种情况下,您都无法在控制台中看到与这些服务相关的 CloudFront 分配,但这就是它们的工作方式。