如果想要了解按需、保留和竞价实例间的区别,可能是因为发生了下列两件事中的一件。
要么是正在启动一个新项目,并试图找出确保团队有足够云容量以完成工作的方法;
要么是刚被令人瞠目结舌的云账单弄得措手不及,正在疯狂寻找控制成本的方法。
无论是什么导致了对云实例的探究,此探究方向都没有错。
幸运的是,实例的类型,以及竞价、按需、预留实例间的利弊,都很容易理解。
关键是找到一种实例类型,为你和你的项目带来成本、稳定性与灵活性间的完美平衡。
按需实例是什么?
按需实例本质上是在需要时才购入的实例。可以看作是“随用随付型”实例,按小时或按秒收费。云计算容量可按需购买、随时购买,无长期承诺。不再需要时,撤回工作负载并取消实例即可,可随着计算需求的变更,增加或减少云容量。
按需实例的优势
按需实例的劣势
何时该使用按需实例?
对稳定性和灵活性有需求时,可调用按需实例。运行工作负荷不均衡的进程时,无法在不中断应用程序的情况下中断进程,这通常意味着用户不会使用按需实例。
尽量坚持在短期项目中使用按需实例,因为难以预测任何特定时间所需的容量。如果项目运行时间较长,或者可以在某种程度上准确预测计算需求,那么使用预留实例将更具成本效益。
预留实例是什么?
预留实例配置与按需实例配置几近相同。唯一的区别是,不是在需要时申请实例,而是将实例“预留”一或三年。
因为与按需实例相比,预留实例具有极大折扣,因此这种承诺是有回报的。
预留实例有两种类型:
可转换预留实例显然更为灵活,但相较标准预留实例而言稍显昂贵。
预留实例的优势
预留实例的劣势
预留实例分配于特定可用性区域,所以如果用户需要在全球范围内控制应用程序性能,这可能是一个缺点。
何时该使用预留实例
预留实例最适合具有相当均匀、可预测计算需求的项目。
如果用户打算承诺使用预留实例(并为其付费)一到三年,其应该比较确定将在整个预订期内的大部分所用容量。如此一来,用户便能放心。因为其已经持有全部所需容量,而且不会把钱浪费在最终只使用一次或两次的实例上。
竞价实例是什么?
云计算供应商需要保留一些可用空间容量,以防客户需求大增——但在大部分时间里,这些备用容量只是闲置着。
购买竞价实例,实际是在一定时期内从云供应商那里借用多余容量。“借用”在这里是一个关键词。如果需求增加,而云供应商需要额外容量,他们将会回收容量——通常在清除工作负荷前不到一分钟才会通知。
但这并不意味着应该完全避免使用竞价实例——只是意味着应该战略性地使用它们。
竞价实例的优势
竞价实例的劣势
何时该使用竞价实例
一般来说,建议用户将竞价实例用于运行短期任务的无状态、容器化应用程序。随着云使用方式的发展,以及团队对更灵活、独立的云构建的寻求,竞价实例的使用前景将会极为明朗。竞价实例是 CI 构建等项目的完美选择,仅需低廉的成本即可获得不错的灵活性(点击此处,浏览更多关于如何在 AWS 上使用 GitHub Runner 的内容)。
总的来说,应该避免在竞价实例上运行关键业务的应用程序——如此一来,即使应用程序发生故障,也不会对客户造成干扰。
然而,也有一些方法可以解决这个问题。如果想在更广泛的项目中使用竞价实例,而不为应用带来风险,可以尝试使用 Spot Fleet 的云优化服务——将竞价实例组合的集合。如果其中一个竞价实例遭到撤销,可以切换到另一个。
选择实例类型并不是要找到一种类型的实例后不再变更;大多数团队会意识到自己正在使用全部三种类型的组合,视情况而定。
云实例的类型一开始看起来似乎很混乱,但一旦深入挖掘,它们就会变得很简单。就像开发人员在优化支出和理顺进程时所面临的大多数问题一样,这一切都与平衡有关——在成本、灵活性和可靠性之间找到“最佳击球点”,并选择适合自己的组合。