AWS: 按需运行计算量大的进程(Windows可执行程序)

问题描述 投票:0回答:1

我需要根据一个HTTP请求运行一个Windows可执行文件。这个过程是重计算的,因此需要很大的处理能力。到目前为止,我正在使用AWS ec2实例来运行这些执行程序。C5.2xlarge,windows EC2实例。

这些请求并不频繁,但必须在没有延迟的情况下被服务。

这里的问题是

  • 我们正在浪费相当多的钱,只是为了让那个沉重的实例继续运行,以满足那些突然的请求。
  • 这个可执行文件没有Linux的替代品。

有没有可能让它的效率更高?只为执行而不是空闲时间付费。对架构的改变有什么建议吗?即使在其他云平台上也能为我们工作.注:我无法弄清楚AWS Lambda或Batch处理是否可以用于这种场景。

windows amazon-web-services azure aws-lambda batch-processing
1个回答
0
投票

我建议改变一下架构,以方便你的情况,并节省一些费用。

AWS Fargate.

他们的解决方案架构师是这样描述的。

AWS Fargate是在AWS上部署容器的一个简单方法。简单来说,Fargate就像EC2一样,但不是给你一个虚拟机,而是给你一个容器。它是一个计算引擎,允许你使用容器作为基本的计算基元,而不必管理底层实例。

Fargate服务允许你按需运行容器。有点像容器的无服务器。

假设你有容器的知识(或者可以学习)--你要做的就是创建一个基于windows的容器镜像,它将包含所有你需要的可执行文件。

一旦创建,你就把它上传到AWS ECR(Elastic Container Registry),你的镜像构建将被存储在那里,然后,在ECS Fargate(ECS = Elastic Container Service)中设置一个新的服务,指定CPU和内存需求。

一旦所有的设置都正确,所有的工作都在进行中--你将能够像使用Lambda那样启动容器。Fargate会收到你的请求,启动容器,进行计算工作,完成后就会关闭。

© www.soinside.com 2019 - 2024. All rights reserved.