我可以在Route53上使用两个S3存储桶进行主要和次要故障转移吗?

时间:2017-10-03 01:55:35

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

我想设置Route53,以便当人们访问xyz.mydomain.com时,他们会点击我使用S3复制设置的两个S3存储桶中的一个。

我已经在Route53上配置了其中一个存储桶,但是我不知道如何配置第二个存储桶,就像我为别名目标设置了什么?

感谢。

3 个答案:

答案 0 :(得分:4)

我们遇到了在停电时负载均衡s3的相同问题,以及解决方法,

这不仅仅是故障转移,它还具有基于延迟的路由的主动 - 主动

https://read.iopipe.com/multi-region-s3-failover-w-route53-64ff2357aa30

我感谢 Erica Windisch 这篇精彩的文章。

故障转移网址的唯一缺点是它只能在http而不是https上提供。

您可以通过cloudfront将http和服务器转到https。

' AWS仍在等待为此问题提供更清晰的解决方案'

理想情况下,应该在多个区域接受cnames并自动执行基于故障转移或延迟的路由。

希望它有所帮助。

答案 1 :(得分:3)

以下是我如何解决它。

<强>假设

1 0 0 0 3 4

<强> S3

Main Region: us-east-1
Failover Region: us-west-2

CloudFront分配

S3 Bucket 1:
  Name Suggestion: xyz.mydomain.com-failover
  Region: us-west-2
  Properties:
    Versioning: Enable Versioning
    Static Website Hosting: Use this bucket to host a website

S3 Bucket 2:
  Name: xyz.mydomain.com
  Region: us-east-1
  Properties:
    Versioning: Enable Versioning
    Static Website Hosting: Use this bucket to host a website
  Management:
    Replication:
      Add rule:
        Source:
          Source: All Contents
          Status: Enabled
        Destination:
          Destination Bucket: xyz.mydomain.com-failover
        Permissions:
          Select IAM Role: Create new Role

路线53

CloudFront Distribution:
  Type: Web
  Origin Settings:
    Origin Domain Name: xyz.mydomain.com-failover.s3-website-us-west-2.amazonaws.com
    Origin Id: S3-Failover-Bucket
  Distribution Settings:
    Alternate Domain Names (CNAMEs): xyz.mydomain.com

(可选)HTTPS支持

使用Route 53 HealthCheck 1: Name: xyz.mydomain.com What to monitor: Endpoint Specify Endpoint by: Domain Name Protocol: HTTP Domain Name: xyz.mydomain.com.s3-website-us-east-1.amazonaws.com Route 53 Record Set 1: Name: xyz.mydomain.com Type: CName Value: xyz.mydomain.com.s3-website-us-east-1.amazonaws.com Routing Policy: Failover Failover Record Type: Primary Associate with HealthCheck: Yes Health Check to Associate: xyz.mydomain.com Route 53 Record Set 2: Name: xyz.mydomain.com Type: A Alias: Yes Alias Target: [CloudFront Distribution for xyz.mydomain.com]

替换上面的xyz.mydomain.com
abc.mydomain.com

<强>原理

我们使用Route 53记录集指向的任何服务都必须能够处理该域的请求。

在撰写本文时,要使用S3托管网站,存储桶的名称必须是您希望S3响应的域名,这就是我们命名为 S3 Bucket 2 {{ 1}}。

在撰写本文时,存储桶名称必须是全局唯一的,因此对于 S3 Bucket 1 ,我们将其与CloudFront分配相结合,以便分发知道如何响应域。这也是为什么S3 Bucket 1的名称是一个建议。

对于可选的HTTPS支持,我们将解决方案包装在CloudFront中,因为这是将S3存储桶升级到HTTPS支持的标准做法。在撰写本文时,CloudFront别名也必须是全球唯一的,这就是为什么我们支持HTTPS,我们必须至少重命名域 S3 Bucket 2 。我们基本上采用故障转移解决方案并将其包装在CloudFront上。

答案 2 :(得分:0)

  

我想设置Route53,以便当人们访问xyz.mydomain.com时   他们会点击我用S3设置的两个S3存储桶中的一个   复制。

由于AWS limitation需要在Route53中将存储桶名称作为域名,因此不能直接使用S3和Route53,因为您需要创建两个存储桶名称(另一个用于在另一个区域进行复制)。

  

存储桶必须与您的域或子域名相同。例如,如果要使用子域acme.example.com,则存储桶的名称必须为acme.example.com。

我建议的解决方案是(假设您正在根据法规要求对S3的高可用性和容错进行复制)使两个AWS CloudFront分发指向原始和复制存储桶,同时将故障转移路由配置为各个CloudFront发行版的CNames。

话虽如此,AWS S3的失败是极不可能的,因为S3的设计耐用性为99.999999999%,而内部冗余架构的可用性为99.99%(AWS提供了99.9%的SLA),您需要以上设置,只有有独特的监管要求。