使用 Instance Fleet 灵活配置机器类型与容量

2022-04-13 10:00

在本篇文章中,我们将会探讨了基于 EMR 大数据应用场景下,如何基于 Instance Fleet 混合编排预留、按需和 Spot 实例,在满足计算能力需求的前提下,尽最大可能减少 AWS 使用成本与运维管理成本。我们一起来了解吧!



了解 Spot 计价模式

亚马逊的实例定价模式非常丰富,与按需价格相比,Spot 实例以大幅折扣提供亚马逊云中可用的备用计算容量。当 Spot 需要被回收时,亚马逊会提前两分钟通知,保证 Spot 实例上的任务完成并成功保存

通常我们会建议客户在需要大量计算资源的工作负载上使用 Spot 实例来降低成本压力,您可以将 Spot 实例用于各种容错和灵活的应用程序。包括分析、容器化、高性能计算 (HPC)、无状态 Web 服务器、渲染、CI/CD 以及其他测试和开发工作负载。


明确 Instance Fleet 应用场景

但在实际的客户经验中,我们也遇到过因为 Spot 实例不足,造成任务运行时间超出预期的情况。今天我们将介绍一种全新的实例配置模型,可让您通过一次配置,创建由按需、预留和 Spot 实例组成的队列,它叫做 Instance Fleet,实例队列。

您只需告诉 Instance Fleet 您所需的实例类型、容量和实例单位,Instance Fleet 将会为您处理所有繁重工作。Instance Fleet 将根据需要启动、管理、监控和扩展实例,无需编写代码来管理机器。


今天我们将基于大数据应用的场景来介绍如何使用 Instance Fleet:

首先我们需要明确 EMR 中的三种节点使用模式:

主节点 (Master Node)

负责任务分配,不需要很高的处理能力,但需要持续存在、长久运行;适合购买预留实例。

核心节点 (Core Node)

负责处理任务并将数据存储在 HDFS 中,需要处理能力和存储容量,也需要持续运行且具备扩展能力;适合购买最低限度的预留实例并用按需实例满足扩展性。

任务节点 (Task Node)

不存储数据,只需要处理能力,配置较为灵活。可以混合安排 Spot 实例和按需实例。

在一个典型的 EMR 使用模式中,有 30% 的应用需要长期运行;55% 的应用为无状态且没有运行时间的硬性需求;另外有 15% 左右的应用为突发需求,可能在任意时间发起并需要快速运算结束。

在这个场景下,需要将预留实例、Spot 实例和按需实例混合部署起来。如果是传统部署方式,需要手动管理多个 Instance Group 来应对计算需求,但使用 Instance Fleet 便可一站解决所有配置难题。


开始配置 Instance Fleet

我们现在假设一个工作负载,它的任务实例组需要 64G 内存的机器,一共需要 9999 个 vCPU 单位数量的机器来满足运算需求。


我们都清楚 Spot 实例有被回收的可能,使用相对较低回收率的 Spot 机器类型是必要的需求,可以使用 Spot Instance Advisor 来确认回收可能性最低的机器:

https://aws.amazon.com/cn/ec2/spot/instance-advisor/

这么大量的运算需要已经超出了通常单一 Spot 实例类型的承受范围,因此我们必须配置多种实例类型来组合满足运算需要,对于每个队列,最多可以指定 5 个实例类型。


同时为了避免整个区域的五种 Spot 实例类型都没法满足需求,我们仍可配置一个超时时间,当超过某个分钟数仍旧申请不到 Spot 实例时,可以切换到按需实例来满足需要。

基于 Instance Fleet,我们仍可配置 EMR 集群的自动扩展来实现动态资源调配,进一步增加灵活度并限制成本。例如,我们可以设置最大和最小的实例单位数,让 EMR 根据当前负载自动缩放;同时可以限制按需实例的数量上限来避免成本失控。

前文中提到核心节点也需要一定的扩展性,我们在核心实例组设置最小的核心实例单位数,在 Cluster Scaling 中设置最大的核心实例单位数,满足集群的正常运行和突增性能需求。


希望这些经验能够对您有所帮助,

并希望您如果对这种方案感兴趣,

可以联系我们取得技术支持!


云代理伙伴
扫描关注微信公众号
获取更多云端资讯
联系我们
——

模板表单-2(1)

  • 姓名*

  • 电话*

  • 邮箱*

  • 职称*

  • 公司*

  • 地址*

  • 需求*

  • * 点击提交,即表示您同意我们存储和处理您提交的个人信息,以向您提供所请求的内容,该信息仅供公司提供服务使用。您的信息受到相关法律的安全保护。