使用每个区域中的S3存储桶进行多区域主动-主动

时间:2018-10-14 09:32:05

标签: amazon-web-services amazon-s3 amazon-cloudfront amazon-route53

我正在尝试为“简单”问题设计架构,但是目前我没有找到解决方案。

问题:

我有一个S3 bucket(每个区域都有一个桶复制,以便在每个桶中具有相同的内容),并且我想在其前面有一个CloudFront来缓存对象。

我的需要:在显示S3存储桶中的对象时,世界上每个用户的等待时间都最低。

我想在每个S3存储桶的前面都有一个CloudFront分配,并有一个Route53根据延迟到最近的CF进行路由。问题在于,对于同一个cname,我们不能有很多分布。

以下是我到目前为止拥有的架构( 这不好 )。

enter image description here

有什么想法要实现吗?

谢谢。

抄送

4 个答案:

答案 0 :(得分:0)

只需保留您的一个存储桶,AWS CloudFront就会为您完成所有存储桶。

CloudFront如何向您的用户提供内容

在将CloudFront配置为交付内容之后,这是用户请求您的对象时发生的事情:

1 -用户访问您的网站或应用程序并请求一个或多个对象,例如图像文件和HTML文件。

2 - DNS将请求路由到最能满足请求的CloudFront边缘位置(通常是在延迟方面最接近的CloudFront边缘位置),然后将请求路由到该边缘位置

3 -在边缘位置,CloudFront检查其缓存中是否有请求的文件。如果文件在缓存中,CloudFront会将它们返回给用户。如果文件不在缓存中,则会执行以下操作:

  • CloudFront将请求与您的规范进行比较 分发并将对文件的请求转发到适用的 相应文件类型的原始服务器,例如 用于图像文件的Amazon S3存储桶,以及用于HTML的HTTP S服务器 文件。
  • 原始服务器将文件发送回CloudFront边缘
    位置。

  • 第一个字节从源头开始到达CloudFront
    开始将文件转发给用户。 CloudFront还添加了
    下次有人将文件存储到边缘位置的缓存中
    请求这些文件。

    enter image description here

有关更多信息,请阅读以下文档:

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html

为了以较低的延迟向最终用户交付内容,Amazon CloudFront在29个国家/地区的63个城市中使用138个存在点的全球网络(127个边缘位置和11个区域边缘缓存)。 Amazon CloudFront Edge位置位于:

enter image description here

答案 1 :(得分:0)

@Reza Mousavi提供的答案似乎非常详尽。 AWS CloudFront分发的重点是在全球范围内的Edge位置上缓存对象(请参阅配置附加快照时的选项)。
最佳实践(至少我现在做的-到目前为止没有抱怨)是为每个应用程序来源配置一个分发。配置时的选项为您提供了根据客户来源选择的区域。

enter image description here

答案 2 :(得分:0)

您可以做的一件事是,您可以创建一个CloudFront分配,并且可以将Lambda @ Edge附加到它,并使用它来重写请求中的主机标头。在Lambda内,您可以访问所有标头,并且可以根据所需逻辑任意重写它们。当您重写主机标头时,该请求将发送到另一个区域中的另一个存储桶。 我们使用此解决方案从两个区域的复制存储桶构建了多区域主动-主动交付。 最初的想法来自这里:https://medium.com/buildit/a-b-testing-on-aws-cloudfront-with-lambda-edge-a22dd82e9d12 对于不同的问题,这似乎是相同的解决方案:https://aws.amazon.com/blogs/apn/using-amazon-cloudfront-with-multi-region-amazon-s3-origins/

我们在今年的柏林AWS峰会上介绍了我们的解决方案,但尚未在任何地方发布它。

答案 3 :(得分:0)

AWS解决方案推出了新的解决方案,以解决跨区域的S3复制。

例如,您可以在俄勒冈州创建对象,在新加坡重命名它们,然后在都柏林删除它们,然后将所做的更改复制到所有其他区域。该解决方案专为可承受丢失事件和复制速度变化的工作负载而设计。

https://aws.amazon.com/solutions/multi-region-asynchronous-object-replication-solution/