为什么 AWS ELB EC2 实例在被调度程序停止后会重新启动?
Why AWS ELB EC2 instance gets reinitiated after being stopped by a scheduler?
我正在尝试进行成本优化,通过在不使用时停止 EC2 和 RDS 实例来降低使用 AWS 资源的成本。
我设法使用 AWS CloudFormation 服务创建了一个调度程序,实例正在根据调度程序配置停止,但问题是在实例停止后,AWS 启动了另一个。
如果有办法控制或更改此行为,请提出建议。
此致。
您 不能通过停止来停止 Elastic Beanstalk (EB) 中的 个实例,因为它们 运行 在 AutoScaling Group 中。因此,一旦您停止实例,ASG 将启动一个替代实例,这是预期的。
停止自动伸缩组中实例的正确方法是detach them first, or best to set min and desired capacity to 0。最后一个选项将终止实例,但这是在不需要时降低 ASG 中 运行 个实例成本的最简单策略。
但由于您正在终止实例,您也可以终止整个 EB 环境,并在需要时启动新的环境。如果您使用 CloudFormation,这应该很容易。
我认为@Marcin 的回答就是您所需要的,但是如果您正在考虑 to stop an instance in ASG
那么也许这可以帮助您 :-
- 备用状态 :- ASG 不会对处于备用状态的实例执行健康检查。
- 分离它 :-一旦实例被分离,独立管理它们,如果实例被分离,则按数量减少 ASG 的所需容量,否则 asg 将启动新实例来替换我们分离的那些。
- 停止健康检查过程 :- 当 asg 标记实例不健康时,它会终止并启动新的一次。如果您不想更换实例,请暂停整个 ASG 的健康检查过程
感谢@Marcin 和@Jatin 的回答。
Notes:
- 分离 EC2 实例而不设置所需容量和
最小容量为 0 无济于事,因为 ASG 将推出新的
实例.
- 如果您将 Desired capacity 和 Minimum capacity 设置为 0 instance
自动终止。
- 分离 EC2 并将所需容量和最小容量设置为 0(如果允许)
将导致您的 ELB 环境和您的严重健康状况
将无法重新启动您的应用程序或重建环境,直到
您将 Desired capacity 和 Minimum capacity 设置为 1 并执行
重新处理。
- 如果达到所需容量和最小容量,则无法将 EC2 置于待机状态
设置为 0.
My approach to solving the problem:
- 在 [Auto] 中将所需容量设置为 1,将最小容量设置为 0
缩放组][1] 详情.
- 向下滚动到
Advanced configurations
并将 Terminate
添加到
Suspended processes
.
- 转到 Auto Scaling 组的
Automatic Scaling
选项卡,首先选择
策略,然后单击 Actions
菜单中的 edit
。在里面
Take the action
字段,选择 set to
而不是 remove
然后单击更新。
- 转到您需要安排的 EC2 实例并添加
调度程序
tag
到它。
如果您的项目在一个实例上运行并且您需要进行成本优化,则之前的方法将帮助您安排 ELB EC2 实例的[停止和启动]。
如果您使用多个EC2实例,您需要调整之前的配置。
我正在尝试进行成本优化,通过在不使用时停止 EC2 和 RDS 实例来降低使用 AWS 资源的成本。
我设法使用 AWS CloudFormation 服务创建了一个调度程序,实例正在根据调度程序配置停止,但问题是在实例停止后,AWS 启动了另一个。
如果有办法控制或更改此行为,请提出建议。
此致。
您 不能通过停止来停止 Elastic Beanstalk (EB) 中的 个实例,因为它们 运行 在 AutoScaling Group 中。因此,一旦您停止实例,ASG 将启动一个替代实例,这是预期的。
停止自动伸缩组中实例的正确方法是detach them first, or best to set min and desired capacity to 0。最后一个选项将终止实例,但这是在不需要时降低 ASG 中 运行 个实例成本的最简单策略。
但由于您正在终止实例,您也可以终止整个 EB 环境,并在需要时启动新的环境。如果您使用 CloudFormation,这应该很容易。
我认为@Marcin 的回答就是您所需要的,但是如果您正在考虑 to stop an instance in ASG
那么也许这可以帮助您 :-
- 备用状态 :- ASG 不会对处于备用状态的实例执行健康检查。
- 分离它 :-一旦实例被分离,独立管理它们,如果实例被分离,则按数量减少 ASG 的所需容量,否则 asg 将启动新实例来替换我们分离的那些。
- 停止健康检查过程 :- 当 asg 标记实例不健康时,它会终止并启动新的一次。如果您不想更换实例,请暂停整个 ASG 的健康检查过程
感谢@Marcin 和@Jatin 的回答。
Notes:
- 分离 EC2 实例而不设置所需容量和 最小容量为 0 无济于事,因为 ASG 将推出新的 实例.
- 如果您将 Desired capacity 和 Minimum capacity 设置为 0 instance 自动终止。
- 分离 EC2 并将所需容量和最小容量设置为 0(如果允许) 将导致您的 ELB 环境和您的严重健康状况 将无法重新启动您的应用程序或重建环境,直到 您将 Desired capacity 和 Minimum capacity 设置为 1 并执行 重新处理。
- 如果达到所需容量和最小容量,则无法将 EC2 置于待机状态 设置为 0.
My approach to solving the problem:
- 在 [Auto] 中将所需容量设置为 1,将最小容量设置为 0 缩放组][1] 详情.
- 向下滚动到
Advanced configurations
并将Terminate
添加到Suspended processes
. - 转到 Auto Scaling 组的
Automatic Scaling
选项卡,首先选择 策略,然后单击Actions
菜单中的edit
。在里面Take the action
字段,选择set to
而不是remove
然后单击更新。 - 转到您需要安排的 EC2 实例并添加
调度程序
tag
到它。
如果您的项目在一个实例上运行并且您需要进行成本优化,则之前的方法将帮助您安排 ELB EC2 实例的[停止和启动]。 如果您使用多个EC2实例,您需要调整之前的配置。