如果ECS实例内存不足,我们可以用Fargate launch类型启动任务吗



我们有一个ECS集群,目前有两个实例。

很少有任务是在应用程序本身触发的基础上临时运行的。我们考虑的场景是,EC2实例上没有足够的内存来容纳临时任务。在这种情况下,我们可以用启动类型FARGATE运行这些任务,这样我们就不需要不必要地提供新的EC2了。

我担心成本是该方法背后的主要因素。如果它是临时的,并且不会是一个频繁的过程,您可以直接在fargate上运行它。

您可以探索两种主要方法:

  1. 如果您正在运行一些脚本(Python、c#、node、go(,并且该过程不到15分钟,请切换到AWS lambda。您将节省成本,并且它与您的用例相匹配。

  2. 如果您的工作量超过15分钟。使用lambda启动fargate服务,方法是将所需的计数设置为1(或多个,以匹配您的用例(,然后从容器内部调用lambda以关闭服务,并在进程完成后将计数设置为0。

我们按照步骤2为开发环境节省成本。

对于第2点,一个简单的python脚本来切换所需的count属性就可以了。

用于python(ECS(的AWS SDK:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ecs.html

假设您不知道使用/触发模式,那么这两个步骤都是有效的。

我将强调您的触发器是否已排定。您可以将fargate用于计划任务。

以上内容请参阅AWS文档。https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scheduling_tasks.html

相关内容

最新更新