Amazon web services 如何为不太受欢迎的网站高效地使用CloudFront?

Amazon web services 如何为不太受欢迎的网站高效地使用CloudFront?,amazon-web-services,amazon-cloudfront,cdn,Amazon Web Services,Amazon Cloudfront,Cdn,我们正在建立一个网站,其中包含了大量的图像和数据。我们已经优化了很多,使网站更快。然后,我们决定使用AWS CloudFront,以使全球所有地区的速度都更快。集成CloudFront后,应用程序运行速度更快 但后来我们发现,只有当网站请求时,数据才会加载到CloudFront缓存。因此,我们担心初始加载将花费与没有CDN时相同的时间,因为它首先从S3加载到CDN,然后再加载到用户 此外,我们使用了默认的TTL值(即24小时)。在我们的情况下,用户可能每周登录一到两次此网站。因此,在这种情况下,

我们正在建立一个网站,其中包含了大量的图像和数据。我们已经优化了很多,使网站更快。然后,我们决定使用AWS CloudFront,以使全球所有地区的速度都更快。集成CloudFront后,应用程序运行速度更快

但后来我们发现,只有当网站请求时,数据才会加载到CloudFront缓存。因此,我们担心初始加载将花费与没有CDN时相同的时间,因为它首先从S3加载到CDN,然后再加载到用户


此外,我们使用了默认的TTL值(即24小时)。在我们的情况下,用户可能每周登录一到两次此网站。因此,在这种情况下,缓存的优势也不会在这里发挥作用,因为缓存将在24小时后过期。将TTL(最大TTL)的时间提高到更大的值是否可以解决问题?这会花更多的钱吗?我还读到,增加一个较长的TTL不是一个好主意,因为它在更新s3中的数据时也有一些缺点

Cloudfront仅在第一个用户请求响应后才会缓存响应。因此,对于第一个用户来说,速度会很慢,但对于第一个用户之后的其他用户来说,速度会快得多。因此,使用Cloudfront是有意义的

使用默认的TTL值是可以的。因为大多数用户会看到相同的内容,而且网站也有很多静态组件。除了第一个用户之外,每个用户都会看到来自您网站的快速响应。您甚至可以根据您希望数据更改的频率将更改时间减少到10-12小时

增加您的TTL没有额外成本。然而,无效请求是收费的。因此,如果要删除缓存,则会增加成本。因此,我更愿意保持一个简短的TTL,因为您的数据预计会发生变化,所以您不必在数据发生变化时使现有缓存失效。同时,最大数量的用户可以从您的CDN中受益

更新:如果您只有一个用户在很长一段时间(1周左右)内使用该网站,那么使用CloudFront可能没有多大好处。CloudFront和所有缓存服务只有在多个用户请求相同资源时才有效

但是,使用CloudFront可能仍然会有一点好处,因为请求将通过AWS的主干网络从边缘位置路由到S3,而AWS的主干网络比internet快得多。但这对你来说是否划算取决于有多少用户在使用这个网站,以及它的速度有多慢


除了使用CloudFront,您还可以尝试S3跨区域复制来提高总体速度。可以在一个区域中添加存储桶时将其复制到另一个区域。这有助于减少来自其他地区的用户的延迟

是否所有用户都会在网站上看到相同的内容,还是每个用户都会在网站上看到不同的内容?此外,网站上是否有很多静态内容?像页眉或页脚图像或其他可能提供给多个用户的媒体内容一样,大多数用户将看到相同的内容。而且网站包含很多静态内容。如果只有一个用户每周从特定地区使用我的网站一次。那样的话,网站对他来说总是很慢,对吧?如果所有其他地区都是这样,我如何解决这种情况?这就是问题。根据输入更新了我的答案。不确定是否有用:)如果,我将最大TTL更新为1年,并使用无效或版本标识符进行文件更新,会怎么样?这是一个好方法还是更坏的方法?如果你愿意支付失效的费用,并且你的数据不会经常改变。在我看来,这将是一个好办法。通过将TTL增加到1年,您可以确保CloudFront能够有效地提高大多数用户(当然第一个用户除外)的速度。当您的数据发生变化时,您可以使缓存失效。但如果流量预计会非常少,我可能会寻找其他方法来优化网站并加快响应速度,而不是使用CloudFront。但是,您最了解您的网站和要求:)