跨区域复制的 S3 存储桶的 CloudFront CDN

CloudFront CDN for S3 bucket which is cross region replicated

考虑到昨天的 us-east-1 S3 中断,我如何最好地构建一个 CloudFront CDN,它使用 S3 存储桶作为源并将该存储桶设置为复制到另一个区域?

  1. 我是否设置两个单独的 CloudFront CDN,一个以 us-east-1 中的存储桶为源,另一个以 us-east-2 中的复制存储桶为源的 CloudFront CDN,然后使用一个 Route53 记录来访问两个 CDN?

  1. 我能否设置一个具有两个来源(一个在 us-east-1 中,另一个在 us-east-2 中)的 CloudFront CDN,并且 CloudFront 会自动从工作的 S3 区域中提取内容?

还有其他解决方案吗?

非常感谢您的见解和评论。

干杯 伯尼

  1. 您可以使用S3跨区域复制。要做到这一点,请按照 aws 博客中的说明进行操作:s3 cross-region replication- how to
  2. 很遗憾,CloudFront 目前不支持多区域复制。但是,由于 CloudFront 使用多个缓存或边缘位置,您可以放心您的数据是安全的。

我个人 select 是您的第一选择,因为 S3 具有 99.99.. 耐用性并且可用性高。因此,这是确保复制数据保持高可用性的理想解决方案。此外,如果您的数据量很大,您可以使用 Amazon Glacier 存储旧的复制数据。但是,这是在您的数据有多重要和您为恢复这些有价值的数据考虑的时间之间进行权衡;因为 Amazon Glacier 最多可能需要几个小时来备份您的存档数据以供使用。

您可以创建跨区域复制并使用具有多个源的 CloudFront。

此外,您还需要编写明确的规则,说明如何使用多个来源路由您的内容。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern

事实证明,我的两个建议都没有奏效,而且 Cloudfront 不支持开箱即用的 S3 复制和故障转移。

以下架构应该在 2017 年 2 月 28 日北弗吉尼亚 S3 中断中幸存下来(感谢 @Michael-sqlbot 的帮助)。

虽然 AWS 没有为这种相当常见的场景提供更简单的解决方案,但我感到很惊讶......