一个生产Web应用程序运行在四个EC2实例上,这些实例位于一个Elastic Load Balancer之后,并由AWS Elastic Beanstalk管理。开发人员需要更新平台版本(Node.js)并部署新的应用程序代码进行测试,且不能有任何停机时间。哪种部署方法能满足这些要求?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 使用不可变更新,将新代码部署到新的EC2实例;只有在通过健康检查后才将流量路由到新的实例。.
为什么这是答案
不可变更新(Immutable updates)是Elastic Beanstalk的一种部署策略,它在部署新版本时会创建一组全新的EC2实例,并在这些新实例上部署应用程序。只有当新实例通过所有健康检查后,Elastic Load Balancer才会将流量切换到这些新实例。这确保了在整个部署过程中,旧版本实例保持运行并处理流量,从而实现零停机时间。如果部署失败,新实例会被终止,旧环境不受影响。 其他选项: 克隆环境并交换URL(Swap environment URLs)虽然也能实现零停机,但它通常用于更复杂的场景,例如A/B测试或重大版本升级,且操作步骤相对较多。对于平台版本和应用代码的更新,不可变更新更为直接。 all-at-once部署会一次性更新所有现有实例,这会导致停机。 滚动部署(Rolling updates)会分批次更新现有实例,虽然减少了停机时间,但在更新过程中仍可能导致部分实例不可用,且如果某批次更新失败,可能需要回滚,无法完全保证零停机。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡