由于最近在东海岸发生的S3宕机事件,我想询问社区实施容错S3网站托pipe解决scheme的最佳方法是什么?
根据我的理解,您需要在您的域名(例如example.com)之后命名一个存储桶。 但是这个存储区是特定于区域的,存储区名称是全局唯一的,所以我不能在另一个区域创build同一个存储区。 所以如果这个地区的S3桶倒下了,这不就是说我的网站不好吗?
简短的回答是:我找不到一个好的方法,让一个S3托pipe的静态网站在没有使用额外的逻辑或服务器的情况下经受一个区域故障。 如果有人能想出办法,我会非常感兴趣。
你可以把CloudFront放在S3网站的前面。 如果存储桶出现故障,则即使存储器陈旧,内容也将从caching中提供。 这当然依赖于最接近客户端点的caching中的内容。
您可以使用S3 跨区域复制将S3数据移动到另一个区域。 最初我以为你可以使用Route53 故障转移路由从工作桶中select,但这是行不通的。 跨区域复制必须使用不同名称的存储区,S3网站托pipe您只能从为该域命名的存储区托pipe网站。 我想知道是否有手动解决scheme,但不能重命名桶,如果第一个区域已closures,则可能无法删除具有网站名称的存储桶。
我认为CloudFront和Route53的组合可能会起作用,但是这要依靠创build两个CloudFront分配来为同一个域提供内容。 这似乎不可能。
这并不理想,但我认为你可以用EC2和Route53做到这一点。 在两个或更多区域创build服务器,使用Nginx或类似方法手动代理S3内容,并使用Route53在它们之间进行平衡。 这无疑是S3托pipe的一点,总体来说是一个可怕的想法,但如果绝对必要的话,也许可以开展工作。