亚马逊AWS官方博客
莉莉丝《远光 84》项目组在 AWS 成本优化的技术实践
关于莉莉丝
莉莉丝游戏是中国中生代游戏公司代表,在中国游戏市场保持领先地位。莉莉丝游戏自主研发运营多款精品游戏,包括《远光 84》、《战火勋章》、《剑与远征》、《万国觉醒》、《剑与家园》、《艾彼》等。2020 年 4 月,根据第三方统计机构 AppAnnie 、SensorTower 发布的数据,莉莉丝游戏在“中国游戏公司收入榜”中位列第三。同年 1 月 – 4 月,莉莉丝在“中国游戏公司出海收入榜”排行榜稳居冠军宝座。2022 年 4 月 25 日,莉莉丝游戏宣布,在新加坡成立发行公司 Farlight Games,总部设于新加坡,为莉莉丝游戏的全球发行提供支持和服务。
关于《远光 84》
《远光 84》是一款多端互通的大逃杀英雄射击游戏。相较于传统吃鸡游戏,Farlight 84 会通过其独特的喷气背包、英雄技能、武装载具、局内成长系统和多次复活机会,为大家带来上手更快、节奏更紧凑、更加“横冲直撞”的对局体验——在这里,相比于“苟”在角落里,你将看到更多激情“刚枪”的身影。Your Farlight, Your Highlight!
远光 84 项目组在 AWS 上的成本优化实践
远光 84 项目组采用 AWS 承载游戏中心服务器和战斗服务器,通过持续优化基础架构,确保游戏运行稳定高效。同时,项目组采用敏捷的成本管控策略,建立成本意识,持续分析,并结合业务发现问题、及时整改,实现高效的成本管理。每一笔投入都经过了精心规划和严格把控,确保资金使用精准有效,为游戏提供强有力的支持。
AWS 提供了丰富全面的服务和产品,但计费规则也相对精细复杂。这对于初学者而言,确实存在一定的学习门槛。然而,通过持续的实践和学习,我们逐步掌握了成本优化的诀窍。这一诀窍,不仅适用于 AWS 上,而在云资源的高效利用方面,具有普适性,帮助我们快速有效地提高其他云产品的资源利用率。
建立成本技术思维
如何在 AWS 上实现资源的高效利用、降本增效,第一步也是至关重要的一步是建立成本技术思维。在传统思维中,成本与技术无关,只需关注单价、总量、折扣率既能计算出总体成本。但这一方式,在云上运营时,会碰到一定的问题,比如:面对不断变化的访问流量,总成本是否可以具备一定的弹性;新技术迭代的时候,我们如何去衡量新技术在成本上的影响。云技术发展日新月异,从成本角度,我们也需要形成成本技术思维,以技术手段不断优化成本,持续迭代,打造成本优化的长效机制。
成本技术思维,主要涵盖以下几个要点:
- 建立业务成本模型:将核心业务指标与成本相关联
- 成本可视化:以最直观的方式监控成本以及成本变化
- 持续迭代:杜绝浪费、定期评估、拥抱新技术新方案
成本优化工具与机制
为了让成本技术思维发挥实效,我们必须建立一套行之有效的成本优化工具与机制。与传统 IT 基础设施不同,云计算提供了灵活性和可扩展性。AWS 提供了按需购买和使用各种资源的机会。作为项目组,需要对资源使用情况负责,并确保资源利用率最大化,以降低成本。理解 AWS 的计费模型对于优化资源使用至关重要。AWS 采用按使用量付费的模式,为不同的服务提供不同的计费选项。深入了解这些计费模式,可以帮助我们选择最佳的资源配置,满足项目需求并节省开支。除普通的按需模式外,AWS 还提供了例如 spot、预留实例等计费方式。同时,不同的产品的计费模式也不尽相同,例如 Graviton 系列机器性价比较高,S3 的分层存储等,都是可以通过简单操作基于现有业务进行立竿见影优化的方式。
为了实现资源预置和优化,AWS 提供了多种工具和服务:
AWS Cost and Explorer 可以监控和分析云支出,并提供费用预测和优化建议。对不同业务类型的资源成本进行系统管控,了解投资回报率,优化项目规划及预测。
AWS Cost and Usage Report 提供了基于每一个资源 id 的精细成本使用报告,借助数据可视化及分析工具(Quicksight/Athena)可极大提升成本可见性,方便了解每笔支出的来源并及时进行调整。例如,对于某些写入较频繁的数据库,通过 CUR 发现 I/O 费用占比较高,结合产品手段及时进行优化。
AWS Trusted Advisor 针对现有用量,基于最佳实践进行资源扫描,分析目前使用模式,发现可能导致不必要支出的情况,如闲置资源、过剩预留实例等,并给出优化建议。尤其是基于 7 天或 14 天的 EC2 空闲资源资源进行批量扫描并提出建议,避免手动检查机器使用指标,运维人员可进行检查及时优化。
AWS CloudWatch 收集并提供了 AWS 服务的大量使用指标,除了对关键指标的监控预警外,同样可以监测资源利用率,将使用量与实际需求相匹配,最大限度降低过度预置。同时,对于可灵活弹性调配资源的场景,可结合使用率指标进行动态扩缩容,提升架构弹性。
在成本优化机制上,项目组与 AWS 企业服务团队合作,建立了一套完成的工作机制:
- 每周固定时间进行成本 review,与历史数据对比,及时发现成本异常点和风险点,及时止损。
- 每月月度服务汇报中,涵盖成本分析,以月度的形式,对总体成本进行分析,把握成本发展趋势。
- 定期进行技术交流,将业务优化、技术优化与成本优化相结合。
成本优化操作原则
在实际进行成本优化操作时,面对纷繁复杂的成本项,如何切入、如何深化,是摆在我们面前的一道选择题。如何进行选择,则是成本与技术之间的平衡。根据项目组的经验,我们遵循了几个原则:
- 由大到小
解决问题要抓住问题的主要方面,对于成本问题,主要方面就是数字的大或小。在成本优化时,我们建议首先聚焦在成本占比比较大的几项产品上,当这类产品的优化空间已经较小时,再对其他占比较小的产品进行优化。以一个三层架构的网站为例,主要成本项为 EC2 和 RDS,次要成本项是 EBS 和 ALB,我们建议先检查 EC2/RDS 是否超配、是否购买 RI/SP,然后再检查是否可以对 EBS 磁盘容量进行缩容。掌握好主次关系,对成本优化可以起到立竿见影的效果。
- 由粗到细
AWS 的计费规则粒度比较细,对于一项产品,AWS 可能会有几个计费维度。在对单个产品进行成本优化时,我们建议采用由粗到细的原则。以最常用的 EC2 为例,我们可以先聚焦在实例数量与规格是否有浪费,再细化到该类实例的 RI/SP 覆盖率利用率,最后再细化到单个实例的流量费是否有优化空间。掌握好颗粒度,我们可以从容控制成本优化的节奏。
- 由易到难
从项目组经验上,在经过多轮由大到小、由粗到细的成本优化后,我们感觉到普通手段能提供的成本优化空间已经不多了;为了进一步优化成本,我们必然会将业务优化、技术优化与成本优化相结合,希望通过采用新技术、新架构的方式来优化成本。而这一实践,则是由易到难原则的直观体现。还是以 EC2 为例,对比 RI/SP,Spot 实例用更深的折扣,但也面临实例被回收的风险。如何利用 Spot 的回收告警消除因 Spot 实例回收对业务造成的影响,则是利用技术改造实现成本大幅降低的关键。秉承由易到难的原则,我们可以实现业务优化与成本优化的相互配合。
多层优化实践
基于对 AWS 服务及计费模式的理解,从游戏网络接入层至后端服务数据库等业务,我们进行了持续分析及优化:
service | 业务 | 成本观测 | 成本优化方式 | 实施方式 | 优化效果 |
AWS Savings Plans for Compute usage | 游戏服务层 | •Cost explorer | 针对现有稳定状态使用的计算资源进行承诺,折扣灵活适配 | 产品计费模式调整 | 节省 30% 以上 |
AWS DocumentDB | 游戏服务层 | •Cost explorer •CloudWatch |
IO optimization 节省 IO 费用(对于 IO 需求大的场景) | 产品计费模式调整 | 节省 50% 以上 |
db.r6g 机型更具有性价比 | 业务适配 | ||||
读写分离,均衡 workload | 业务适配 | ||||
Drop unused index/data | 业务适配 | ||||
垂直拆表,将冷数据导入 S3 中进行存档 | 业务升级改造 | ||||
AWS EC2-Instances | 游戏服务层 | •Cost explorer •CloudWatch •Trusted Advisor |
预留实例/节省计划 | 产品计费模式调整 | 节省 50% 以上 |
Graviton 机型 | 业务适配 | ||||
Spot 实例 (2 折)配合业务场景 | 业务适配 | ||||
战斗服采用弹性伸缩部署 | 业务升级改造 | ||||
AWS Elastic Container Service for Kubernetes | 游戏服务层 | •Rancher | 配合 pod memory/CPU 监控进行最佳配比,由 c 系改 m 系 | 业务适配 | 节省 15% 以上 |
AWS EC2-Other(EBS/Data transfer) | 游戏服务层 | •CUR data •Trusted Advisor |
gp2 转 gp3 | 业务适配 | 节省 20% 以上 |
业务调整,采集点频率调整,数据费用减少 | 业务升级改造 | ||||
AWS ElastiCache | 游戏服务层 | •Cost explorer •CloudWatch |
预留实例 | 产品计费模式调整 | 节省 20% 以上 |
节点扩缩容 | 业务升级改造 | ||||
AWS OpenSearch Service | 游戏服务层 | •Cost explorer •CloudWatch |
冷热数据存储 | 业务适配 | 节省 20% 以上 |
预留实例 | 产品计费模式调整 | ||||
AWS S3 | 游戏服务层 | •Cost explorer •CloudWatch |
生命周期 | 业务适配 | 节省 10% 以上 |
AWS CloudFront | 接入服务层 | •Cost explorer | 静态资源:特别商务折扣 | 产品计费模式调整 | 节省 90% 以上 |
动态资源:通过深度了解计费模式,结合业务进行优化。对于来自客户端上报的的打点日志请求,优化为直接走公网传输,按字节进行计费 | 业务升级改造 |
经验总结
远光 84 项目组在 AWS 开展的持续成本优化实践,本着业务稳定与成本优化并重的宗旨,基于对业务优化和成本技术优化的深刻理解,实现了 50% 以上的成本节约成果。
合作经验
AWS 拥有复杂但透明的成本体系,在项目组与 AWS 深度合作的过程中,高效的云上资源成本管理,使得项目组从更敏捷精准地对资源实现精细化管控及降本增效中获益,为业务提供强有力支持。
《远光 84》主程张星评语:“在我们与 AWS 长期合作的过程中,我们的观念发生了翻天覆地的变化。曾经认为 AWS 产品价格昂贵,如今却深信 AWS 产品性价比极高。这种转变不仅源于 AWS 产品的卓越稳定性,更得益于 AWS 提供的诸多优化成本工具和手段。再加上 AWS 技术团队对我们业务的持续精进支持,我们自豪地宣称:我们所使用的 AWS 产品实在是物有所值!”
《远光 84》运维负责人范茂晨评语:“AWS 作为领先的云服务提供商,从运维角度来看其提供的云服务具有高度可扩展性和可靠性。其全球分布式架构和弹性计算能力使得用户可以根据实际需求轻松地扩展或缩减资源,而无需担心硬件更新、性能瓶颈、资源不足等问题。在成本优化方面,AWS 提供了多种灵活的定价模式和成本管理工具,帮助用户降低运维成本,。同时 AWS 技术支持团队不仅仅提供了全面的文档、支持服务,更会协助用户从业务角度以最佳实践去使用各类产品,解决运维过程中遇到的问题,确保业务平稳运行,提高运维效率。你值得拥有!”