首页 > 解决方案 > ec2 启动时间的行为

问题描述

我有一个用例,我们有一个非常大的计算工作,可以相当有效地分解成许多小的工作单元。m4.large对于一个实例,实际上可以说是 1,000 小时的计算工作。假设我希望在接下来的 10 分钟内返回结果,这意味着我需要 6,000 个实例才能及时完成工作。

到目前为止,我已经设置了 AWS 批处理,我只使用了m4.large您帐户附带的 20 个实例。我知道我可以增加 AWS 请求的实例数量,但我仍然不太了解如果您突然尝试预置数千个按需实例或者 AWS 是否限制您可以使用的实例数量会发生什么行为。

所以我的问题是我能够m4.large按需启动数千个实例吗?如果是这样,我会在什么时候查看所有实例以到达该Running州。

标签: amazon-ec2

解决方案


我已经用大约 100 个实例多次执行此操作,但从未在数千个实例中完成。

第 1 步:向 AWS 开具支持票证。您将需要批准您的帐户,检查信用等。我的客户是非常大的公司,因此对他们而言,信用和批准过程很容易。如果你是一个小家伙,我不知道。

第 2 步:考虑您的 VPC 设计以及如何处理这么多实例。如果有 5 个实例通过一个 NAT 网关是一回事,但一百个系统将使 Internet 连接瘫痪。

第 3 步:考虑所需的网络带宽。您需要归置组或非常高速的 Intranet 或 Internet 连接吗?

第 4 步:准备好您无法启动具有特定实例类型的所有实例(容量不可用错误)。有一系列可供您选择的实例。

第 5 步:创建您自己的软件(我使用 Python)来启动实例、执行更新、安装软件等。然后您可以使用 Boto3 EC2 API 轮询实例以确定所有实例何时运行。1,000 个实例的时间长度与 1 个实例没有太大区别。

现在对于现实世界。如果您的工作需要 1,000 小时,那么启动 1,000 个实例不会将其缩短到 1 小时,除非您拥有真正可扩展的软件设计,并且需要最少的机器间通信。一旦超过 10 个系统,网络带宽和通信开销就会成为问题。尽管 AWS 的资源非常庞大,但一个客户一次启动 1,000 个 EC2 实例并不是一个常见的启动案例。

我也不会启动 1,000 个实例来将处理时间缩短到 10 分钟。您的实例上线、更新、同步等可能需要 10 分钟。这意味着您将花费 50% 的预算用于等待时间。对于今天非常大的工作,我们更喜欢使用 Hadoop / Spark,其中扩展到数百台机器是现实的。


推荐阅读