我通常使用 S3 上的前端单页应用程序和服务器上的后端 API 来开发我的应用程序,通常是弹性 beantalk(所以 ELB + EC2)。我对将什么放在我的 ELB 和 S3 前面的好选择感到困惑 - 主要是 CloudFront 或 API 网关。我现在的主要需求是缓存和性能(减少服务器负载)。当然成本也会是奖金。就我而言,流量通常仅限于一个地区/国家(新加坡)。
所以假设我想保留一个域,我想我肯定会需要 CloudFront?因此 CloudFront 将有 2 个来源 S3 和 ELB。S3 源可以配置长缓存 TTL 和 ELB 较短的缓存,只是为了处理峰值。这是一个好主意吗?
但是如果某些 API,尤其是列表 API 不应该被缓存呢?如果我将 TTL 设置为 0,它不会缓存,但我的理解是它更慢?如何最好地处理这些?
也就是说,我什么时候使用 API 网关?假设我不需要所有 SDK 的东西并且我当前的系统仍在 ELB/EC2 上。在我的情况下,它似乎只是一个代理和缓存系统,就像 cloudfront 一样?