Amazon web services 我可以在Route53上使用两个S3存储桶进行主故障切换和辅助故障切换吗?
我想设置Route53,这样当人们访问xyz.mydomain.com时,他们将访问我用S3复制设置的两个S3存储桶中的一个 我已经在Route53上配置了一个Bucket,但我不知道如何配置第二个Bucket,比如我为alias目标设置了什么Amazon web services 我可以在Route53上使用两个S3存储桶进行主故障切换和辅助故障切换吗?,amazon-web-services,amazon-s3,amazon-route53,Amazon Web Services,Amazon S3,Amazon Route53,我想设置Route53,这样当人们访问xyz.mydomain.com时,他们将访问我用S3复制设置的两个S3存储桶中的一个 我已经在Route53上配置了一个Bucket,但我不知道如何配置第二个Bucket,比如我为alias目标设置了什么 谢谢。我们在停机时遇到了同样的负载平衡s3问题,下面是如何解决的 这不仅仅是一个故障切换,它还通过基于延迟的路由进行活动 我感谢艾丽卡·温迪什写了这篇精彩的文章 故障转移url的唯一缺点是它只能在http上服务,不能在https上服务 您可以通过clo
谢谢。我们在停机时遇到了同样的负载平衡s3问题,下面是如何解决的 这不仅仅是一个故障切换,它还通过基于延迟的路由进行活动 我感谢艾丽卡·温迪什写了这篇精彩的文章 故障转移url的唯一缺点是它只能在http上服务,不能在https上服务 您可以通过cloudfront将http和服务器转换为https “AWS仍在等待为该问题提供更清洁的解决方案” 理想情况下,应在多个区域上接受cnames,并自动执行故障切换或基于延迟的路由
希望能有帮助。以下是我解决问题的方法 假设
Main Region: us-east-1
Failover Region: us-west-2
S3
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
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]
云端分布
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
53号公路
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
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]
(可选)HTTPS支持
将上面的xyz.mydomain.com
替换为abc.mydomain.com
CloudFront Distribution:
Type: Web
Origin Settings:
Origin Domain Name: abc.mydomain.com
Origin Id: CrossRegionDomain
Distribution Settings:
Alternate Domain Names (CNAMEs): xyz.mydomain.com
基本原理
我们使用Route 53记录集指向的任何服务都必须能够处理该域的请求
在撰写本文时,为了托管一个带有S3的网站,bucket的名称必须是您希望S3响应的域,这就是为什么我们将S3 bucket命名为2xyz.mydomain.com
在编写本文时,Bucket名称必须是全局唯一的,因此对于S3 Bucket 1,我们将其与CloudFront发行版相结合,以便该发行版知道如何响应域。这也是为什么S3 Bucket 1的名称是一个建议
对于可选的HTTPS支持,我们将解决方案包装在CloudFront中,因为这是将S3 bucket升级为HTTPS支持的标准实践。在撰写本文时,CloudFront别名还必须是全局唯一的,这就是为什么我们要支持HTTPS,我们必须重命名域,最低限度为S3 Bucket 2。我们基本上采用了故障切换解决方案,并将其包装在CloudFront上
我想设置路由53,这样当人们访问xyz.mydomain.com时
它们将击中我用S3设置的两个S3存储桶中的一个
复制
由于AWS要求bucket名称作为Route53中的域名,因此仅使用S3和Route53无法直接实现这一点,因为您需要创建两个bucket名称(不同的名称用于在另一个区域中复制)
bucket必须与您的域或子域具有相同的名称。例如,如果要使用子域acme.example.com,则bucket的名称必须为acme.example.com
我建议的解决方案是(假设您根据法规要求进行S3的高可用性和容错复制)使两个AWS CloudFront发行版指向原始和复制的存储桶,同时针对单个CloudFront发行版的CNAME配置故障转移路由
尽管如此,AWS S3不太可能出现故障,因为S3的设计具有99.99999999%的耐用性和99.99%(AWS提供99.9%的SLA)的可用性以及内部冗余体系结构,只有在有独特的法规要求的情况下,您才需要上述设置 永远不要说S3的可用性是可靠的。由于其在美国东部1号地区不可用,我们总共损失了53万美元以上。现在,在多个地区进行复制对于业务来说是一件必须的事情。它不仅对S3有效,对AWS的所有服务都是一样的。我们复制到了其他地区,在他们经常发生的小窗口停机事件发生后的几个月内,我们得到了回报。@Kannaiyan很高兴了解关于不可用性的见解。您经历了多长时间的停机?事实上,这已经超过12个小时了,尽管AWS声称它在几个小时内就解决了。连锁反应持续的时间比可用时间长。另一件有趣的事是AWS仪表板被托管在us-east-1上,并且没有得到更新@Kannayan感谢你的警告。我是这样安排的。S3西海岸的文件,并复制到欧盟(我想是法兰克福)。然后我有53号干线指向西海岸一号,作为指向法兰克福S3复制的云锋入口的主要和次要路线。然后对这两个S3位置进行健康检查。我还有一个cloudfront条目指向route 53域,这样我就可以使用HTTPS了。如果在发生这种情况时我已经进行了此设置,我会没事吗?@casolorz如果您已经按照文档中提到的方式进行了配置,您可以将其带到CloudFront使用SSL,这将是一个与最初配置不同的域。在上面,对于路由53记录集2:我无法创建与xyz.mydomain.com同名的记录?它说xyz.mydomain.com已经有了一个CName