最大化云支出的效率

已完成

你是一位解决方案架构师,你的组织 Lamna Healthcare 已将其工作负载移动到云中。 最近,这些资源和工作流的账单增加,超过了 Lamna 的预期。 你需要确定账单增加是否是自然、有效增长的结果,或者是否可以通过提高组织的云资源效率来降低成本。

云如何改变费用

公有云和本地基础结构之间的区别之一是如何为使用的服务付费。

在本地数据中心,硬件采购是一个漫长的过程。 物理硬件的大小根据最大容量调整。 使用某些资源(例如计算机电源和存储空间)的业务部门可能不会意识到相关成本。 购买物理基础设施会限制对长期资产的投资,从而限制灵活运用资源的能力。

迁移到云后,使用按需付费成本模型,解决了维护物理基础结构所需的成本不断增长的问题。 你不再需要限制资产投资。 如果资源需求发生变化,可以通过添加、移动或删除资源来应对。

工作负载在服务之间和服务内部有所不同,需求可能无法预测,并且增长模式会随着时间的推移而发生变化。 由于只为在云中使用的内容付费,因此成本结构会随资源的变化而变化。

云基础结构可以处理波动的资源使用场景。 长时间处于非活动状态的资源在未使用和不产生任何费用的情况下,可以关闭。 随着需求的增加,资源分配可通过成功的服务自动增加,而不必等待下一个采购周期。 可以动态添加和删除其他资源,以响应可预测和不可预测的突发需求。

下图显示了为何本地基础结构不能处理所有这些波动场景。

一张显示使用本地基础结构的劣势的示意图。

在高效的体系结构中,预配资源以与符合需求。 如果虚拟机大部分时间的利用率低于 10%,那么在计算和成本方面都会浪费资源。 相反,如果虚拟机的利用率达到 90%,则可以使用大部分可用资源,并且有效地使用资金。

系统运行的利用率达到 100% 就会有引起性能问题的风险。 因此必须确保最大化效率不会对系统性能产生负面影响。 需求很少是恒定的,因此尽可能调整资源以满足需求对于确保效率非常重要。

优化 IaaS 成本

在解决方案中使用虚拟机等基础结构即服务 (IaaS) 资源时,最主要的开支通常是与 VM 相关的费用。 计算成本通常是最大的开支,其次是存储成本。 花时间优化按需付费的资源会对每月帐单的多少产生很大影响。

让我们看看降低计算成本和存储成本的最佳做法。

计算

可通过以下几种选项节约虚拟机的成本:

  • 选择更小的虚拟机实例
  • 减少虚拟机运行的小时数
  • 对计算成本使用折扣

正确调整虚拟机大小

正确调整虚拟机大小是将虚拟机大小与资源需求的相应要求匹配的过程。 如果 VM 运行时存在 25% 的空闲率,那么减小 VM 的大小将立即降低成本。 虚拟机成本在同一实例系列中呈线性关系;每增大一次大小都将使成本翻倍。 相反,将 VM 减小单个实例大小将会使成本减半。

下图显示了在同一系列中将大小降低一级可节省 50% 的成本。

一张演示通过缩小未充分利用的虚拟机来实现成本节约的示意图。

Azure 顾问可识别未充分利用的虚拟机。 Azure 顾问可监视虚拟机 14 天的使用情况,然后识别出任何未充分利用的虚拟机。 如果在 4 天或更长时间,虚拟机的 CPU 使用率都小于或等于 5% 且网络使用率小于或等于 7 MB,则会被视为未充分利用。

实现虚拟机的关闭计划

如果你的 VM 工作负载仅定期使用却持续运行,你就是在浪费资金。 可在不使用这些 VM 时将其关闭,以便在解除分配 VM 时节省计算成本。 例如,开发环境很适合在你的组织休息时间关闭,因为开发通常只在工作时间内进行。

可以使用多个选项来释放 VM。 例如:

  • 可以使用 Azure 自动化,仅在工作负载所需的时间内运行 VM
  • 可以使用虚拟机上的自动关闭功能来安排一次性自动关闭
  • 可在 Azure 门户中手动停止 VM

应始终使用 Azure 控制来停止 VM。 从 VM 内部关闭 OS 不会解除分配其 Azure 资源,因此仍将继续产生费用。

应用计算成本折扣

Azure 混合权益提供了另一种方法来优化 Windows Server 和 SQL Server 实例的成本。 借助它,可以对运行 Windows Server 或 SQL Server 的本地计算机使用许可证,同时获得软件保障,作为这些 VM 的计算成本的折扣。 然后,你可以降低或消除已启用实例上的 Windows Server 和 SQL Server 的成本。

某些虚拟机需要始终启动并运行。 也许你拥有一个用于生产工作负载的 Web 应用程序服务器场。 或者,你可能拥有支持虚拟网络上各种服务器的域控制器。 如果确定这些虚拟机将在未来一年或更长时间内持续运行,可以通过购买预留实例来进一步节省成本。

通过 Azure 虚拟机预留实例 (Azure RI),可以购买计算容量来实现一年或三年承诺使用量。 与即用即付计算资源相比,这将为你省下一大笔钱(高达 72%)。

下图显示了将本地许可证与 Azure 混合权益结合使用时实现的节省。 它还展示了将本地许可证与 Azure 虚拟机预留实例和 Azure 混合权益结合使用时实现的节省。

一张示意图,显示了将本地许可证与软件保障结合使用时实现的 Azure 产品节省。

VM 磁盘存储的成本优化

对于不需要高可靠性和高性能磁盘的工作负载,可以使用低成本的标准存储。 例如,可以选择将标准存储用于开发和测试环境,这些环境不需要与生产工作负载完全匹配。

不与 VM 关联的磁盘仍会产生存储费用,因此应确保你的环境中没有剩余的孤立磁盘。 如果已删除 VM 但未删除其关联的磁盘,可以通过从环境中识别并删除这些孤立磁盘来降低存储成本。

你应确保环境中没有剩余的孤立快照。 虽然快照的定价低于磁盘本身的定价,但是这仍是消除不必要的资源成本的不错做法。

优化 PaaS 成本

平台即服务 (PaaS) 服务通常已针对 IaaS 服务进行了成本优化。 但也会识别浪费并进行优化以最大程度地降低 PaaS 服务的成本。 让我们看看降低 Azure SQL 数据库和 Azure Blob 存储成本的几种方法。

优化 Azure SQL 数据库成本

创建 Azure SQL 数据库时,必须选择某个服务并确定性能层。 每一层都以数据库事务单位 (DTU) 或虚拟核心 (vCore) 为单位提供性能级别。

对于稳定的数据库负载,可以通过根据性能需求选择适当大小的层来轻松地进行优化。 但是,如果数据库的活动中存在不可预测的突发或高峰情况,该怎么办? 处理不可预测的工作负载时,弹性池可帮助你降低成本。

SQL 数据库弹性池是一种简单且经济高效的解决方案,用于管理和缩放具有不断变化且不可预测的使用需求的多个数据库。 同一弹性池中的所有数据库位于单个 Azure SQL 数据库服务器上,并以固定价格共享固定数量的资源。 池很适合具有特定使用模式的大量数据库。 对于给定的数据库,此模式的特征是低平均使用量与相对不频繁的使用高峰。

可以加入池的数据库越多,实现的节省就越大。 下图显示三类弹性数据库池的功能:

  • 基本层将每个数据库的 eDTU 数自动缩放到最大 5 个
  • 标准层将每个数据库的 eDTU 数自动缩放到最大 100 个
  • 高级层将每个数据库的 eDTU 数自动缩放到最大 1000 个

一张示意图,演示不同类型的弹性数据库池的自动缩放功能。

弹性池是一种跨多个数据库分摊成本的好方法。 它们可以对降低 Azure SQL 数据库成本产生重大影响。

优化 Blob 存储成本

Blob 存储是一种经济高效的数据存储方式,但随着数据量的增长,优化数据存储方式可以为你节省资金。

Azure 存储为 blob 对象存储提供三个层:

  • 热访问层:存储成本最高,但访问成本最低。 此层针对存储经常访问的数据进行了优化。

  • 冷访问层:与热存储相比,存储成本较低,访问成本较高。 此层针对存储不常访问且存储时间至少为 30 天的数据进行了优化。

  • 存档访问层:与热存储和冷存储相比,存储成本最低,但数据检索成本最高。 此层针对存储极少访问、存储时间至少为 180 天且延迟要求不严格(例如,几小时的检索延迟)的数据进行了优化。

消耗定价模型

迁移到 PaaS 服务可使即用即付模型甚至深入到真正的消耗定价模型。 Azure Functions 之类的服务能够使用消耗计划。

使用消耗计划时,会根据传入事件数自动添加和删除 Azure Functions 主机实例。 这个无服务器计划会自动缩放,仅在函数运行时才会产生计算资源费用。 在消费计划中,函数执行在可配置的时间段后超时。 计费基于执行次数、执行时间长短和使用的内存量。 函数应用内的所有函数的费用将会累加。

移动到使用消耗定价模型的服务,可以通过一种新方法节省体系结构成本。

知识检查

1.

你的企业存储着所有采购订单的 PDF 副本。 最初上传这些文件后,很少需要访问它们,且检索它们时不要求迅速响应。 以下哪一种存储层是降低长期存储成本的最佳选择?

2.

以下哪一种数据库非常适合使用弹性池?