替换 AWS Elastic BeanStalk 上的特定实例?

Posted

技术标签:

【中文标题】替换 AWS Elastic BeanStalk 上的特定实例?【英文标题】:Replacing a particular instance on AWS Elastic BeanStalk? 【发布时间】:2016-01-10 16:00:45 【问题描述】:

我们在 Elastic BeanStalk 上使用多个 Docker 环境并运行 2 个实例,我们认为其中一个实例存在问题。替换该特定实例的正确方法是什么?

我正在考虑以下情况之一:

    只需通过 EC2 控制台终止该实例,然后让 Elastic BeanStalk 启动一个新实例。 将 Elastic BeanStalk 中的最小实例增加到 3,并在第三个实例启动后将其减少回 2,并终止有问题的实例。

目标是尽量减少停机时间。

【问题讨论】:

【参考方案1】:

如果您的目标是最大程度地减少停机时间,则建议使用第二个选项 - 即将实例的最小数量增加到 3 个,等待它正常运行,然后终止有问题的实例。 在将其减回到 2 之前,终止有问题的实例。这是因为默认情况下自动扩展将取决于 EC2 运行状况,即使您的应用程序运行状况不佳,您的 EC2 实例也可能运行状况良好。您最终可能会丢失一个健康的实例。所以将最小大小增加到 3,终止有问题的实例,然后缩减到 2。

另外,如果您还没有使用它,我建议您使用 Elastic Beanstalk 于 2015 年 8 月推出的增强健康报告功能。有关增强健康报告的详细信息,请参阅here。通过增强的运行状况报告,您可以获得环境和每个实例的详细运行状况。您可以获得健康状态、颜色、系统指标(CPU、内存)、应用程序延迟、错误率、故障率和原因列表,为您提供环境和实例健康状况的详细健康描述。这可能是您确定新启动的实例是否健康的附加信息。阅读此功能的快速介绍here。

如果您计划更新您的环境以增强运行状况报告,请记住您的环境中的实例将被替换,因此如果您对停机时间很敏感,那么最好先扩展 1 个实例,然后再开启滚动更新将您的健康系统类型切换为“增强型”。阅读更多关于滚动更新的信息here。

【讨论】:

根据场景,最好先在 EC2 > Target Group 中取消注册实例。这将允许在注销期间完成任何正在进行的请求。终止主动服务请求的实例可能适用于允许实例保持在线造成的损害比撕掉它更大的情况。

以上是关于替换 AWS Elastic BeanStalk 上的特定实例?的主要内容,如果未能解决你的问题,请参考以下文章

如何替换在我部署 Elastic Beanstalk 应用程序时不再工作的 AWS CLI 命令

Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本

[AWS] Elastic Beanstalk

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android