CloudFront 只是靠近用户的缓存集合。每个边缘位置独立运行。
默认情况下,CloudFront 遵循您的 http 缓存控制标头。如果您将标头设置为文件不会在一年内过期,CloudFront 将继续为该文件提供一年的服务,而不会检查回您的原始服务器。
由于每个边缘位置独立运行,在您的示例中,纽约将继续提供文件,但莫斯科将文件作为已删除 (404)。正如您所想象的,这可能会导致不同的用户看到不同的内容。
有一些策略可以避免这个问题。
来自 CloudFront 文档 ( http://aws.amazon.com/cloudfront/#details ):
对象版本控制和缓存失效 您有两个选项来更新缓存在 Amazon CloudFront 边缘站点的文件。您可以使用对象版本控制来管理对内容的更改。要实现对象版本控制,您在源服务器中为文件的每个版本创建一个唯一的文件名,并使用与网页或应用程序中正确版本相对应的文件名。使用此技术,Amazon CloudFront 可以缓存您想要的对象版本,而无需等待对象过期才能提供更新的版本。
您还可以通过调用失效 API 随时从所有 Amazon CloudFront 边缘站点中删除文件的副本。无论您在源服务器上为该文件设置的到期期限如何,此功能都会从每个 Amazon CloudFront 边缘站点中删除该文件。如果您需要一次删除多个文件,您可以在 XML 文档中发送文件列表(最多 1,000 个)。失效功能旨在用于意外情况,例如,纠正您上传的视频的编码错误或对您网站的 CSS 文件的意外更新。但是,如果您事先知道您的文件会经常更改,建议您使用对象版本控制来管理文件的更新。