Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 我可以在Route53上使用两个S3存储桶进行主故障切换和辅助故障切换吗?_Amazon Web Services_Amazon S3_Amazon Route53 - Fatal编程技术网

Amazon web services 我可以在Route53上使用两个S3存储桶进行主故障切换和辅助故障切换吗?

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

我想设置Route53,这样当人们访问xyz.mydomain.com时,他们将访问我用S3复制设置的两个S3存储桶中的一个

我已经在Route53上配置了一个Bucket,但我不知道如何配置第二个Bucket,比如我为alias目标设置了什么


谢谢。

我们在停机时遇到了同样的负载平衡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命名为2
xyz.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