Route 53故障转移到s3静态Web主机无法正常工作

时间:2016-11-02 17:11:15

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

我有一个网站stage.example.com,我想为它添加一个维护页面,

所以我创建了一个名为stage.example.com的存储桶,添加了一个索引文档,然后赋予它适当的权限,现在我可以使用url stage.example.com.s3.us-east.com访问此页面。

下一步,我为healthCheck创建了一个stage.example.com,因为我的服务器和网站已经死了,healthCheck也显示它不健康,所以我认为它运行正常。

下一步我将原始记录集的路由策略更改为故障转移,将TTL更改为60秒,关联healthCheck并将此记录设置为主记录。

我创建了另一个具有相同名称的记录集,使其成为别名,选择我的s3存储桶,路由策略故障转移并使其成为辅助记录集。 由于我的网站已经关闭,但我没有重定向到我的维护页面。

我花时间搜索此问题,但找不到任何有用的信息。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

使用CloudFormation模板通过故障转移创建Route53记录时,我遇到了同样的问题。

事实证明,我在模板中使用的是整个s3终结点名称,而不仅仅是其区域部分。让我解释一下模板:

app.cmcloudlab1073.info.s3-website-us-east-1.amazonaws.com


    # Primary Alias record to ELB
    MyRecordSet1:
        Type: AWS::Route53::RecordSet
        Properties: 
            AliasTarget: 
                DNSName: a05e-MyApp-7DUO60R115J5-258585633.us-east-1.elb.amazonaws.com
                EvaluateTargetHealth: true
                HostedZoneId: Z35SXDOTRQ7X7K   
            Failover: PRIMARY
            HealthCheckId: !Ref MyR53HealthCheck
            HostedZoneId: /hostedzone/Z2ETUSKZPW2K8B
            Name: app.example.com # example domain for which record is created
            SetIdentifier: elb-primary
            Type: A

    # Secondary record - a static s3 website            
    MyRecordSet2:
        Type: AWS::Route53::RecordSet
        Properties: 
            AliasTarget:             
                DNSName: ---> MY-ISSUE-WAS-HERE <---- 
                EvaluateTargetHealth: false
                HostedZoneId: Z3AQBSTGFYJSTF # for region us-east-1                          
            Failover: SECONDARY
            HostedZoneId: /hostedzone/Z2ETUSKZPW2K8B
            Name: app.example.com # same name as for primary
            SetIdentifier: s3-secondary
            Type: A


    MyR53HealthCheck:
        Type: AWS::Route53::HealthCheck
        Properties: 
            HealthCheckConfig:                
                FailureThreshold: 1
                FullyQualifiedDomainName: a05e-MyApp-7DUO60R115J5-258585633.us-east-1.elb.amazonaws.com                
                MeasureLatency: false
                Port: 80                
                RequestInterval: 10
                ResourcePath: /
                Type: HTTP

对于DNSName中的MyRecordSet2,我将完整的s3终结点dns名称用于我的静态网站:

app.example.com.s3-website-us-east-1.amazonaws.com # <-- INCORRECT

正确的只是s3部分:

s3-website-us-east-1.amazonaws.com # <-- CORRECT

请注意,更改后,故障转移可以完美运行。不需要重新启动任何浏览器。