我想设置Route53,以便当人们访问xyz.mydomain.com时,他们会点击我使用S3复制设置的两个S3存储桶中的一个。
我已经在Route53上配置了其中一个存储桶,但是我不知道如何配置第二个存储桶,就像我为别名目标设置了什么?
感谢。
答案 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),您需要以上设置,只有有独特的监管要求。