选择最佳定价模式
执行工作负载成本建模:考虑工作负载组件的要求并了解潜在的定价模式。定义组件的可用性要求。确定工作负载中是否存在执行功能的多个独立资源,以及工作负载随着时间推移的要求。使用默认的按需定价模式和其他适用模式比较资源成本。考虑资源或工作负载组件的任何潜在更改。
定期执行账户级别的分析:定期执行成本建模可确保能够跨多个工作负载进行优化。例如,如果总体上按需使用多个工作负载,则变更的风险较低,并且实施基于承诺的折扣可降低总体成本。建议每两周到一个月定期执行一次分析。此分析让您可以进行少量调整性采购,因此定价模式的覆盖范围会随着工作负载及其组件的变化而不断变化。
使用 AWS Cost Explorer
要为竞价型实例工作负载寻找机会,请查看总体使用情况的小时视图,并确定使用情况或弹性的定期变化周期。
定价模式:AWS 有多种定价模式
-
按需型实例
-
竞价型实例
-
承诺折扣 – 节省计划
-
承诺折扣 – 预留实例/容量
-
地理选择
-
第三方协议和定价
按需型实例:这是默认的即用即付定价模式。当您使用资源(如按需使用 EC2 实例或 DynamoDB 等服务)时,可以按小时支付固定费用,并且无需长期承诺。可以根据应用程序的需求增加或减少资源或服务的容量。按需模式有小时费率,但是根据服务的不同,可以以 1 秒为单位计费(例如 Amazon RDS 或 Linux EC2 实例)。推荐以下应用程序使用按需模式:具有定期出现峰值的短期工作负载(例如为期四个月的项目),或无法中断的不可预测工作负载。按需模式还适用于要求运行时不间断,但运行时间不够长、无法享受承诺折扣(节省计划或预留实例)的工作负载,例如预生产环境。
竞价型实例:竞价型实例
如果有队列或缓冲区,或者有多个资源独立处理请求(例如 Hadoop 数据处理),竞价型实例是理想之选。通常,这些工作负载无状态且灵活,具备容错能力,例如批处理、大数据和分析、容器化环境和高性能计算(HPC)。非关键工作负载(例如测试和开发环境)也适合使用竞价型实例。
竞价型实例也已集成到多项 AWS 服务中,例如 Amazon EC2 Auto Scaling 组、Amazon EMR、Amazon Elastic Container Service(Amazon ECS)和 AWS Batch。
如果需要回收竞价型实例,Amazon EC2 会通过 CloudWatch Events 传递的竞价型实例中断通知以及实例元数据,发送一段两分钟警告。在这两分钟内,应用程序可以利用这段时间保存其状态、耗尽运行的容器、上传最终日志文件,或从负载均衡器中删除自己。两分钟结束时,可以选择休眠、停止或终止竞价型实例。
在工作负载中采用竞价型实例时,请考虑以下最佳实践:
-
在尽可能多的实例类型之间保持灵活性:在实例类型的系列和规模方面都要灵活,以提高达到目标容量要求的可能性、获得可能的最低成本,并最大限度减小中断的影响。
-
灵活安排工作负载的运行位置:可用容量可能因可用区而异。这样做可提高实现目标容量的可能性(因为会利用多个备用容量池),并最大限度降低成本。
-
连续性设计:针对无状态和容错性设计工作负载,这样即使一些 EC2 容量被中断,也不会影响工作负载的可用性或性能。
-
我们建议将竞价型实例与按需型和节省计划/预留实例相结合,以最大限度优化工作负载成本并提高性能。
承诺折扣 – 节省计划:AWS 通过保留或承诺使用一定数量的资源并为您的资源收取折扣价,为您提供多种降低成本的方法。通过节省计划
计算类节省计划
实例节省计划
有三种付款选项:
-
无预先付款:没有预先付款;然后,每个月按逐渐减少的每小时费率为当月的总小时数支付费用。
-
部分预先付款:相比无预先付款,折扣率更高。为部分使用量预先支付费用;然后,每个月按逐渐减少的每小时费率为当月的总小时数支付费用。
-
全额预先付款:预先支付整个期间使用量的费用,在承诺涵盖的剩余使用期限内不会产生任何其他费用。
可以跨工作负载任意组合使用这三种购买选项。
节省计划先应用到购入它的账户中的使用量(从最高折扣率到最低折扣率),然后应用到所有其他账户的合并使用量(从最高折扣率到最低折扣率)。
建议在没有使用量或资源的账户(例如管理账户)中购买所有节省计划。这可以确保节省计划适用于所有使用情况下的最高折扣率,最大限度提高折扣金额。
工作负载和使用量通常会随时间而改变。建议随着时间的推移持续购买少量的节省计划承诺使用量。这样可确保您保持较高的覆盖率,以最大限度提高折扣,并且计划始终与工作负载和组织要求紧密匹配。
由于折扣可能发生变化,请不要在账户中设置目标覆盖率。覆盖率低并不一定意味着潜在节省费用高。您的账户的覆盖率可能很低,但如果使用量由小型实例组成,并且使用许可的操作系统,则节省的费用可能仅为几个百分点。相反,在节省计划建议工具中跟踪和监控可能节省的费用。经常查看 Cost Explorer 中的节省计划建议(执行定期分析),并继续购买承诺使用量,直到估计的节省额低于组织所需的折扣为止。例如,跟踪并监控潜在折扣是否保持在 20% 以下(如果高于该值,则必须购买)。
监控利用率和覆盖率,但仅用于检测更改。不要以特定的利用率或覆盖率作为目标,因为这并不一定与节省额成比例。确保购买节省计划可增加覆盖率,如果覆盖率或使用率降低,则确保对其进行量化并了解相关情况。例如,您将工作负载资源迁移到较新的实例类型,这会减少现有计划的利用率,但是性能效益胜于节省的成本。
承诺折扣 – 预留实例/承诺:与节省计划类似,预留实例
预留实例提供相同的定价选项:无预先付款、部分预先付款和全额预先付款,并且期限相同:一年或三年。
可以在某个区域或特定可用区购买预留实例。在可用区中购买时,它们提供容量预留。
虽然 Amazon EC2 具有可转换的 RI,但应该对所有 EC2 实例使用节省计划,因其增加了灵活性并降低了运营成本。
应使用相同的流程和指标来跟踪和购买预留实例。建议不要跨账户跟踪 RI 的覆盖率。同时,建议不要监控或跟踪利用率百分比,而应在 Cost Explorer 中查看利用率报告,并使用表中的净节省额列。如果净节省额是很大的负数,则必须采取措施补救未使用的 RI。
EC2 实例集:EC2 实例集
地理选择:在构建解决方案时,最佳实践是设法将计算资源放在更接近用户的位置,以提供更低的延迟和强大的数据主权。对于全球用户,您应该使用多个位置来满足这些需求。您应该选择尽可能降低成本的地理位置。
AWS Cloud 基础架构围绕区域和可用区构建。区域是指全球范围内的某个物理位置,每个区域由多个可用区组成。可用区由一个或多个分散的数据中心组成,每个都拥有独立的配套设施,其中包括冗余电源、联网和连接。
每个 AWS 区域 都在当地市场条件下运营,每个区域的资源定价可能不同。选择特定区域来运行解决方案组件或整个解决方案,以便可以在全球范围内以尽可能低的价格运行。可以使用 AWS Simple Monthly Calculator 来估算各区域中工作负载的成本。
第三方协议和定价:当您在云中使用第三方解决方案或服务时,确保定价结构与成本优化结果保持一致非常重要。定价应与其带来的结果和价值成比例。这方面的一个例子是可带来一定百分比节省额的软件,节省额(结果)越高,其价格也就越高。除非您能提供特定账单每一部分的结果,否则与账单成比例的协议通常不会与成本优化保持一致。例如,如果您使用的其他服务没有带来任何益处,提供 Amazon EC2 相关建议并按整体账单一定比例收取费用的解决方案将会变得更加昂贵。另一个示例是根据所托管资源的成本按一定百分比收费的托管服务。实例越大并不一定意味着需要更多的管理工作,但会收取更多费用。确保这些服务定价安排包括成本优化计划或服务中的功能,以提高效率。