针对 AWS EMR 的 AWS Glue 定价

AWS Glue pricing against AWS EMR

我正在对 AWS Glue 与 AWS EMR 进行一些定价比较,以便在 EMR 和 Glue 之间做出选择。

我考虑了 6 个 DPU(4 个 vCPU + 16 GB 内存)和 ETL 作业 运行 10 分钟,持续 30 天。假设预期的爬网程序请求比免费套餐高 100 万,并且 100 万额外请求按 1 美元计算。

在 EMR 上,我考虑过 m3.xlarge EC2 和 EMR(定价分别为 0.266 美元和 0.070 美元)和 6 个节点,运行 10 分钟,持续 30 天。

计算一个月后,我发现 AWS Glue 的计算结果约为 14.64 美元,而对于 EMR,计算结果约为 10.08 美元。我没有考虑其他额外的费用,比如 S3、RDS、Redshift 等 & DEV Endpoint 是可选的,因为我objective 是比较 ETL 工作价格收益

与 AWS Glue 相比,EMR 似乎更便宜。 EMR 定价是否正确,如果有任何遗漏,有人可以建议吗?我试过用于 EMR 的 AWS 价格计算器,但很困惑,不清楚是否计入了标准化小时数。

此致

尤瓦

是的,EMR 确实比 Glue 便宜,这是因为 Glue 是无服务器的,完全由 AWS 管理,所以用户不必担心基础设施 运行在幕后,但 EMR 需要大量配置才能设置。所以这是用户友好性和成本之间的权衡,对于更多技术用户来说,EMR 可能是更好的选择。

@user2889316 - 你检查过我提供比较数字的问题了吗?

另请注意,Glue 大约是每小时 0.44 / DPU 的工作。我认为您不会有任何预计 运行 整天都在进行的 AWS Glue 作业?您是在谈论 Glue Dev 端点还是 Job?

一项 AWS Glue 作业至少需要 2 个 DPU 到 运行,这意味着每小时 0.88,我认为大约每天 21 美元?这仅适用于 GLUE 作业,还有 S3 等额外费用,以及任何数据库/连接费用/爬虫费用等。

对应的 EMR 实例是 m3.xlarge,其费用是(定价分别为 0.266 美元和 0.070 美元)。对于每天 2 个实例,这将大约少于 16 美元?加上其他 S3、数据库费用等。我正在考虑针对 AWS Glue 作业的默认 DPU 使用 2 个 EMR 实例。

希望这能给你一个想法。

谢谢

如果您使用 Spot 个 EMR 实例而不是 On-Demand,它将花费按需价格的 1/3,而且会便宜得多。 AWS Glue 没有这种定价优势。

如果您的基础架构不需要大幅扩展(并且大部分具有固定配置),请使用 EMR。但如果需要,Glue 是更好的选择,因为它是无服务器的。只需更改 DPU,您的基础设施就可以扩展。但是在 EMR 中,您必须决定集群类型、节点数量、自动缩放规则。对于每个更改,您都需要更改集群创建脚本、测试它、部署它——基本上会增加标准发布周期的开销以进行更改。随着基础设施配置的变化,您可能需要更改 spark 配置以相应地优化作业。因此,随着基础设施配置的变化,发布新版本的时间会更长。如果加高配置入手,成本会更高。如果加入低配置启动,需要频繁修改脚本。

话虽如此,AWS Glue 对每个 DPU 都有固定的基础配置 - 例如每个内核 16GB 内存。如果您的 ETL 需要每个内核更多的内存,您可能不得不转向 EMR。但是,如果您的 ETL 的设计方式使其不会超过 11GB 驱动程序内存(1 个执行程序)或 5.5GB(2 个执行程序)(例如,在新核心上并行获取额外的数据量或将卷划分为 5gb/11gb 批次和 运行 在同一核心的 for 循环中),Glue 是正确的选择。

如果您的 ETL 很复杂,并且所有作业都会让集群全天忙碌,我建议您使用 EMR 和专门的 devops 团队来管理 EMR 基础设施。