amazon-ec2 - ec2 启动时间的行为
问题描述
我有一个用例,我们有一个非常大的计算工作,可以相当有效地分解成许多小的工作单元。m4.large
对于一个实例,实际上可以说是 1,000 小时的计算工作。假设我希望在接下来的 10 分钟内返回结果,这意味着我需要 6,000 个实例才能及时完成工作。
到目前为止,我已经设置了 AWS 批处理,我只使用了m4.large
您帐户附带的 20 个实例。我知道我可以增加 AWS 请求的实例数量,但我仍然不太了解如果您突然尝试预置数千个按需实例或者 AWS 是否限制您可以使用的实例数量会发生什么行为。
所以我的问题是我能够m4.large
按需启动数千个实例吗?如果是这样,我会在什么时候查看所有实例以到达该Running
州。
解决方案
我已经用大约 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,其中扩展到数百台机器是现实的。
推荐阅读
- c# - 如何上下左右拖动统一对象。?
- javascript - 使用递归更改笔触颜色
- graphhopper - 启用混合模式的 Graphhopper 抛出 IllegalStateException
- javascript - PHP JavaScript 刷新某些 div
- php - 使用 PHP-FPM 时在 Laravel 刀片中获取未定义的变量
- batch-file - 仅使用第一个字符的批处理文件 IF 语句
- google-apps-script - 通过 DriveApp 创建的文档副本无法通过 DocumentApp 访问
- php - SOAP 请求适用于 Postman,而不适用于 PHP
- javascript - 更新 HTML 文件文件夹中的所有 href 锚链接
- php - 使用 Godaddy 共享主机和 VPS 服务器配置 Apache solr 4.5.1