我有一个网站stage.example.com,我想为它添加一个维护页面,
所以我创建了一个名为stage.example.com的存储桶,添加了一个索引文档,然后赋予它适当的权限,现在我可以使用url stage.example.com.s3.us-east.com访问此页面。
下一步,我为healthCheck
创建了一个stage.example.com
,因为我的服务器和网站已经死了,healthCheck也显示它不健康,所以我认为它运行正常。
下一步我将原始记录集的路由策略更改为故障转移,将TTL更改为60秒,关联healthCheck并将此记录设置为主记录。
我创建了另一个具有相同名称的记录集,使其成为别名,选择我的s3存储桶,路由策略故障转移并使其成为辅助记录集。 由于我的网站已经关闭,但我没有重定向到我的维护页面。
我花时间搜索此问题,但找不到任何有用的信息。
非常感谢任何帮助。
答案 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
请注意,更改后,故障转移可以完美运行。不需要重新启动任何浏览器。