2

鉴于昨天发生的us-east-1 S3中断,我如何最好地构建一个使用S3存储区作为数据源的CloudFront CDN,并将存储区设置为复制到另一个区域?跨区域复制的S3存储区的CloudFront CDN

  1. 我是否安装两个独立的CloudFront的CDN中,一个与铲斗在美国东部-1为原点,另一个CloudFront的CDN与复制斗美东2为原点,然后使用一个Route53记录访问两个CDN?

  • 我可以设置一个CloudFront的CDN具有两个起源(一个在US-东-1和其他在US-东-2)和CloudFront的将自动从正在工作的S3区域拉出内容?
  • 任何其他解决方案?

    您的见解和意见非常感谢。

    干杯 伯尼

    +0

    这些解决方案亦不会达到预期效果。随着时间的推移,我会试着解释为什么(并提出替代方案)作为答案。 –

    +0

    谢谢迈克尔。期待您的解释。 –

    +1

    @ Michael-sqlbot更好的方法是在Route 53中创建CNAME,并使用Failover和Healthcheck直接指向S3 URL,然后使用CNAME创建Cloudfront CDN? –

    回答

    2

    事实证明,无论是我的建议的工作和的Cloudfront不支持S3复制和故障转移的开箱。

    下面的架构应该能够在2/28/17北弗吉尼亚S3中断中幸存下来(感谢@ Michael-sqlbot的帮助)。

    我很惊讶,虽然这AWS不提供这样一个相当常见的场景更平凡解... S3 Failover With Cloudfront

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

    我个人会选择你的第一个选择,因为S3有99.99 ..持久性,并且高度可用。因此,这是一个理想的解决方案,可确保您的复制数据保持高可用性。此外,如果数据量较高,则可以使用Amazon Glacier存储旧的复制数据。但是,这是一个权衡数据的重要性和考虑重新获得这些有价值数据的时间的权衡。因为Amazon Glacier可能需要几个小时才能将您的归档数据备份以供使用。

    +0

    我试了一下,看起来很有希望,直到我遇到了一个小障碍。 –

    +0

    我创建了两个独立的Cloudfront发行版;一个用于每个区域中的复制桶。问题是,在我设置第二个cdn的cname时,在cloudfront中出现错误,说cname已经存在。它确实已经存在,因为我在第一个cdn发行版中使用了相同的cname。不知道如何解决这个问题... –

    0

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

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

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

    +0

    这真的会工作吗?两个s3区域都存在相同的相同文件。我将如何编写一个规则说,先在源1中尝试这个文件,如果我得到一个错误,然后尝试起源2。 –