本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Elastic Beanstalk 进行蓝/绿部署
因为 AWS Elastic Beanstalk 在您更新应用程序版本时执行就地更新,所以应用程序可能会对用户短时间不可用。为避免这种情况,请执行蓝/绿部署。如要执行此操作,将新版本部署到独立的环境,然后交换两个环境的别名记录,从而将流量立即重新导向到新版本。
如果您希望将环境更新为不兼容的平台版本时,还需要蓝/绿部署。有关更多信息,请参阅 更新 Elastic Beanstalk 环境的平台版本。
当应用程序使用生产数据库时,蓝/绿部署要求您的环境独立于生产数据库运行。如果您的环境中包含 Elastic Beanstalk 代表您创建的数据库,除非您执行特定操作,否则系统不会保留该环境的数据库和连接。如果您有想要保留的数据库,请使用以下 Elastic Beanstalk 数据库生命周期选项之一。在解耦数据库后,可以选择 Retain(保留)选项以保持数据库和环境的运行状态。有关更多信息,请参阅本指南配置环境章节中的数据库生命周期。
有关如何将您的应用程序配置为连接到 Amazon RDS 实例(非 Elastic Beanstalk 托管)的说明,请参阅将 Elastic Beanstalk 和 Amazon RDS 结合使用。
执行蓝/绿部署
打开 Elastic Beanstalk 控制台
,然后在 Regions(区域)列表中选择您的 AWS 区域。 -
克隆当前环境,或启动运行所需平台版本的新环境。
-
向新环境部署新应用程序版本。
-
在新环境上测试新版本。
-
在环境概述页面上,选择 Actions(操作),然后选择 Swap environment URLs(交换环境 URL)。
-
对于 Environment name(环境名称),请选择当前环境。
-
选择 Swap(交换)。
Elastic Beanstalk 交换旧环境和新环境的别名记录,以将流量从旧版本重定向到新版本。
Elastic Beanstalk 完成交换操作之后,验证在您尝试连接到旧环境 URL 时新环境是否响应。但是,在传播 DNS 更改并且您的旧 DNS 记录过期之前,请勿终止旧环境。DNS 服务器不总是会基于您在 DNS 记录中设置的存活时间(TTL)来清除其缓存中的旧记录。