优化并保存 “其他” 服务

作者: 王 博文 | 202 3 年

灵感来自斯蒂芬·古奇的 2022 年 re: Invent 会议 “优化他人” 粉笔谈话

如果你无法对其进行测量,你就无法对其进行管理。为了优化您的云资源效率,您需要能够查看和了解云成本和使用情况数据。通常,你会把注意力集中在支出最高的人身上,因为他们抬高了你的账单,而且很容易识别。例如,在亚马逊云科技 Cost Explorer中按服务筛选您的 A WS成本时 ,您通常会看到按服务划分的成本明细,例如 Amazon EC2 实例、 亚马逊简单存储服务 (S3) 和 亚马逊关系数据库服务 (RDS)。其余服务被归类为图表中名为 “其他” 的类别。但是,“其他” 类别的成本可能与最高成本驱动因素一样高。值得研究这些成本的来源,找出成本和性能优化的机会。在这篇博客中,我将使用一些示例来演示如何更深入地了解这些 “其他” 服务的成本要素,以及如何优化支出。

说到通常属于 “其他” 类别的服务,我想从标记为 “ EC2-其他 ” 的服务开始。“EC2-其他” 跟踪与 亚马逊 EC2 实例相关的成本,例如 亚马逊 EBS 卷 快照 弹性 IP 地址 数据传输 NAT 网关 等。您可以通过在成本管理器中按 “使用类型” 分组来查看 “EC2-其他” 支出的详细信息。诸如 亚马逊云科技 Compute Optimizer 亚马逊云科技 Trusted Advisor 之类的服务为 EBS 卷使用量提供 建议 ,包括检测未连接的 EBS 卷,以及从一种卷类型迁移到另一种卷类型,例如通用固态硬盘 (gp2) 迁移到 gp3。EBS 快照备份您的 EBS 卷中的数据,并按对 EBS 卷所做的增量数据更改收费。为了节省 EBS 快照的成本,您可以从使用 AMI(亚马逊系统映像) 创建的单个快照开始。在为现有 EC2 实例创建 AMI 时,Amazon EC2 会为您的实例的根卷和连接到您的实例的其他 EBS 卷创建 EBS 快照。但是,当您取消注册 AMI 但未选择删除快照时,该快照将保留并产生全额存储费用。 当您不再需要时,请务必取消注册 AMI 并删除关联的快照。您可以使用 亚马逊数据 生命周期管理器自动创建、保留和删除 EBS 快照和 EBS 支持的 AMI。

现在,让我们来谈谈归类为 “其他” 的服务。诸如 亚马逊 CloudWatch 、亚马逊云科技 Clou d Trail 和 亚马逊云科技 Lambda 之类的服务通常 在 清单上。 CloudWatch 监控您在 亚马逊云科技 上运行的 亚马逊云科技 资源和应用程序的性能。CloudWatch 指标使许多其他 亚马逊云科技 服务(例如 亚马逊云科技 Compute Optimizer)能够提供优化建议。但是,如果您的使用量超过 免费套餐 限制,CloudWatch 本身就会产生费用。 例如,许多 亚马逊云科技 服务免费向 CloudWatch 发送基本监控指标。开始使用这些服务后,默认情况下基本监控处于启用状态。但是,如果您选择对提供该选项的服务启用详细监控,例如,更频繁地以一分钟为间隔发送 EC2 指标,而不是在基本监控中使用的五分钟间隔,则将产生 EC2 详细监控费用(通常按每个实例每月 2.10 美元的费用收费,在最低价格套餐中降至每个实例 0.14 美元)。如果您不再需要 EC2 实例的详细监控指标,则应关闭详细监控。如果您设置了与多个指标关联的 CloudWatch 警报 ,则应意识到每个警报指标都会产生成本。此外, CloudWatch 日志 、自定义日志和供应商日志是其他资源使用类型,可能会根据采集/扫描的日志数据量产生摄取费用,或者如果您在一定保留期后忘记删除数据(日志组的默认保留策略设置为 “永不过期”),则会产生存档费用。 根据应用程序的需求主动管理您的 CloudWatch 详细指标、警报和日志的配置方式,这样您就可以降低 CloudWatch 成本。 从这篇知识中心文章 “ 如何确定为什么要向我收取 CloudWatch 使用费,然后如何降低未来的费用?” 中了解如何降低 CloudWatch 费用

当 CloudWatch 跟踪您的环境中 亚马逊云科技 服务和资源的性能时, CloudTrail 会 监控您的 亚马逊云科技 环境中进行的 API 活动,以进行管理和审计。当只有一个管理事件副本通过跟踪传输到您的 S3 存储桶时,该服务可以免费使用。但是,一些用例会产生成本,例如,如果您在组织或账户级别创建管理事件的额外副本。 当您使用CloudTrail L ake记录和分析事件,或者选择使用 CloudTrail In sights分析事件时 ,CloudTrail也会产生成本。 由于默认情况下 CloudTrail 处于启用状态,因此有可能在组织和帐户级别创建其他副本。识别任何重复的管理事件记录的一种方法是在您的 亚马逊云科技 账单上查找 CloudTrail 服务费用下的 “PaideVentsRecorded” 指标,以查看在任何特定地区是否还有其他管理事件副本(图 1)。为了有意控制要记录哪些管理和数据事件,您可以使用 CloudTrail 事件选择 器和 高级事件选择器 来指定日志标准。 与您的云卓越中心办公室合作,集中管理 CloudTrail 并确定谁拥有重复的 CloudTrails。如果您决定删除其他跟踪,请务必删除 S3 存储桶和附加到其上的对象,这样您就不会持续为不再需要的日志付费。

Image 1. CloudTrail service charge on AWS Bill

图片 1.亚马逊云科技 账单上有云端服务费

你们中的许多人都意识到利用无服务器应用程序可以节省成本,并提高持续维护和基础架构的运营效率。 亚马逊云科技 Lambda 是一项无服务器、事件驱动的计算服务,允许您在不预置或管理基础设施的情况下大规模运行代码。但是,了解其定价结构的关键组成部分很有帮助,例如请求数量、调用时长和配置的内存分配。你可以使用 亚马逊云科技 Compute Optimizer 或 亚马逊云科技 Lambda Power Tuning 来优化 Lambda 函数的内存配置。为了提高调用效率,除了对您的 Lambda 代码应用 最佳实践 外,您还可以设置实际的函数超时以防止长时间调用。为基于 arm64 的基础架构选择 Graviton2 架构,可将性能提高多达 19%,成本降低 20%。对于稳定的 Lambda 工作负载,可以考虑使用计算储蓄计划,在 1 年或 3 年期内享受高达 17% 的折扣率,并可灵活地在 EC2 和 Fargate 上应用这些权益。 了解其定价包含哪些内容,并利用服务,例如Compute Optimizer进行使用优化,并利用购买选项(储蓄计划)进行折扣。 从 这篇博客文章中了解降低 亚马逊云科技 Lambda 成本的其他技术。

结论

在博客文章中,我用了一些例子来说明如何放大通常属于 “其他” 类别的服务,并了解它们的成本要素以及降低成本的方法。让专职的 FinOps 专业人员经常审核使用效率并跨团队合作实施必要的更改会很有帮助。希望这篇博客文章可以帮助您入门并发现适合您的应用程序和业务需求的成本节省机会。