ELB及其公共DNS的CloudFormation

我正在使用Cloudformation来构build一个负载平衡的堆栈。

我担心的是,每次重新创build堆栈时,ELB公共URL都会发生变化,这将需要更改网站的路由53域别名,以指向新的ELB URL。

我可以添加Cloudformationconfiguration来自动执行此操作,但是我担心由于DNS传播问题,每次重build堆栈时,网站都会closures几分钟。

据我了解,R53会在约60秒内更新别名,但cachingDNS服务器可能不服从TTL,并可能需要几分钟才能更新。

一个选项是一起运行旧的和新的堆栈,但是每个VPC中的RDS实例需要以某种方式同步。

此外,似乎在Cloudformation中没有选项将现有的ELB与堆栈关联起来,因此保持ELB独立于堆栈似乎不是一种select。

那么正确的解决scheme是什么? 用新build的CF堆栈replace生产堆栈时,如何避免任何明显的停机时间。

您可以使用堆栈策略来防止堆栈更新更新ELB资源。

文档在这里: http : //docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html

例:

{ "Statement" : [ { "Effect" : "Deny", "Action" : "Update:*", "Principal": "*", "Resource" : "*", "Condition" : { "StringEquals" : { "ResourceType" : ["AWS::ElasticLoadBalancing::LoadBalancer"] } } }, { "Effect" : "Allow", "Action" : "Update:*", "Principal": "*", "Resource" : "*" } ] }