dio*_*ton 7 production-environment amazon-web-services amazon-elastic-beanstalk
我最近使用交换环境URL来升级我的Elastic Beanstalk应用程序,使用两个环境.我在映射到beanstalk URL的不同URL上有一个CNAME记录.然后我尝试推送到生产环境(现在是测试URL),然后再次交换,但这似乎无法正常工作.
我希望交换将测试环境映射到生产URL,这意味着当我以前推送到测试环境进行测试时,现在我应该推送到生产环境,然后交换以进行另一次零停机升级.这可能非常令人困惑,因此我希望有人可以阐明这一点,因为似乎有关于Elastic Beanstalk和交换URL的信息.
请注意这里讨论的是哪个“交换 URL”功能...如果您指的是 AWS Elastic Beanstalk“操作”| “交换环境的网址”功能,我的经验是,这个功能有什么做DNS和没有做与路线53。
据我所知,AWS EB Swap URL只是交换了您 beanstalk 环境的面向公众的 URL...让您根本不必更改 DNS。
例子:
假设您有两个 EB 环境:
EB URL 为“quality-qq443224.elasticbeanstalk.com”的“quality”
EB URL 为“quality-patched1.elasticbeanstalk.com”的“quality-patched1”
如果您选择“quality-patched1”实例并选择“Swap Environment URL's”与您的“quality”实例......所有会发生的是它们现在将被列为:
EB URL 为“quality-patched1.elasticbeanstalk.com”的“quality”
“quality-patched1” EB URL 为“quality-qq443224.elasticbeanstalk.com”
因此,您现有的 DNS CNAME(假设在 Route 53 中并假设指向 /quality-qq443224.../)根本不必更改...它们将被定向到您的新补丁实例。
URL交换是在两个绿色/就绪环境之间交换CNAME的简单操作.它与Route 53(或任何其他DNS)无关.它唯一能做的就是交换两个CNAME.例如,您有一个foo-1具有CNAME的环境foo-1.example.com,另一个foo-2具有CNAME的环境foo-2.example.com.交换操作后环境foo-1会响应http://foo-2.example.com.
需要此操作才能以零停机时间部署新版本的应用程序.您的DNS指向你www.example.com来foo-1,这是由几个的秒掉CNAME飞改变.如果您的应用程序知道如何共享资源(例如,数据库),用户将看不到任何延迟.
你可以看看jcabi-beanstalk-maven-plugin(我是开发人员).这个Maven插件以完全自动化的方式完成了这个CNAME交换操作.
| 归档时间: |
|
| 查看次数: |
4297 次 |
| 最近记录: |