ECS 停止实例

Posted

技术标签:

【中文标题】ECS 停止实例【英文标题】:ECS stop instance 【发布时间】:2018-09-27 08:09:27 【问题描述】:

我有一个 ECS 集群,为我的后端实例运行一项任务。我希望能够随时停止/启动 EC2 实例。可能吗??我试图直接停止实例,但它在停止后几秒钟后终止,并且在自动创建新实例之后。我尝试更改 Auto Scale Group 以匹配所需的=min=0 容量,但是当我这样做时,实例会自动终止。我只想在不需要使用 Ec2 实例时关闭它,但同时我希望数据在打开和关闭之间保持不变。我已经为此奋斗了几天,但无法实现我的目标。

还有如何将 EBS 卷与 docker 文件映像中的 VOLUME /root/.local/share/XYZ 链接起来,以保存 XYZ 文件夹中的数据

【问题讨论】:

【参考方案1】:

我建议您在自动缩放组中进行修改,当您想要关闭实例时将 0 放入自动缩放中以及当您想要打开自动缩放中的更改值时,

...您可以使用 aws cli 来做到这一点,您也可以通过将 aws cli 命令放入 cron 作业中来调整期间

【讨论】:

【参考方案2】:

启动/停止实例和自动缩放并不真正适合在一起。

Auto-scale 专门用于解决 scalein/scaleout 问题。

解决此问题的一种方法是使用customized termination policy(但我从未在 ECS 设置中尝试过)。

但请注意,如果您的自定义终止策略从不终止实例并且您继续添加实例以始终保留,您可能会收到大量 EC2 账单。

【讨论】:

明白了。谢谢。虽然当我将集群缩小到 0 并返回到 1 时,数据会在 ec2 实例终止之间保留吗?如果它会持续下去,那么我很好。但不知道如何尝试 当实例终止时,默认情况下数据不会被持久化(假设您已启用在终止时删除 EBS)。您需要添加自定义脚本来附加/分离 EBS 卷,这是一种复杂的方法。【参考方案3】:

我建议使用 EFS。这是 AWS 的一篇文章,介绍了如何使用 EFS 从 ECS 容器中持久化数据。

Using Amazon EFS to Persist Data from Amazon ECS Containers

【讨论】:

EFS 是解决方案之一。但这会影响您的 IO 性能,即使您有 High IOPS EFS,它也无法处理体面的流量。相反,请尝试使用 NFS 进行 gluster-fs。 我已遵循本指南并设法部署了我的后端,但仍然无法保存数据。我不太确定我是否以正确的方式进行操作。 IO性能也没有那么重要。停止ECS EC2实例的方法是什么?我觉得做ASG的desired=min=0是不合适的。

以上是关于ECS 停止实例的主要内容,如果未能解决你的问题,请参考以下文章

ECS

阿里云ECS操作演示

在 Beanstalk 部署或 ECS 任务不使用时安排 EC2 实例的停止/启动?

阿里云ECS重新安装步骤

ECS 容器实例生命周期

阿里云如何更换操作系统?