亚马逊AWS官方博客
AWS 云端运行 SAP 工作负载的优化技术:成本节约指南
简介
在当前的经济环境下,许多企业都将成本优化视为重中之重。当公司对其 SAP 实施进行现代化改造之后,通过优化 SAP 工作负载的运行成本,可以释放出资源用于创新。这篇博文利用 AWS Well-Architected Framework 之 SAP 详解中的最佳实践,深入剖析了优化 SAP 工作负载成本和运营的方法与策略。
准备工作
在开始之前,您需要为预期成果设定明确的目标,确定总成本,并查看 SAP on AWS 成本估算指南。
在运行 SAP 工作负载的所有账户中运行 AWS Cost Explorer 成本管理服务。找出并记录使用量最大的服务,对于 SAP 来说,这些服务通常是 Amazon Elastic Compute Cloud(Amazon EC2)、Amazon Elastic Block Store(Amazon EBS)、Amazon Simple Storage Service(Amazon S3)、Amazon EBS 快照和 Amazon Elastic File Store(Amazon EFS)。本博文重点针对这些服务提供最佳实践和优化指导,以降低成本并优化 SAP 工作负载的运行。
Amazon EC2
让我们从 Amazon EC2 开始。为 SAP 工作负载选择 Amazon EC2 实例时,务必要在经过认证的 Amazon EC2 实例类型上运行 SAP NetWeaver 和 SAP HANA 实例。
1. 合理调整大小
合理调整大小是指以尽可能低的成本,选择与您工作负载的性能和容量要求相匹配的实例类型和大小的过程。
要合理调整 Amazon EC2 实例的大小,应该根据过去三个月的实际使用量(包括业务高峰期和季末结算期)来进行。为此,请利用 Amazon CloudWatch 和 SAP Early Watch Reports 进行使用情况分析。
激活 AWS Compute Optimizer 的增强型基础设施指标功能,使用 3 个月的 Amazon CloudWatch 数据来生成建议。(默认情况下,AWS Compute Optimizer 存储和使用最多 14 天的 Amazon CloudWatch 指标历史记录来生成建议。) 将该建议与 SAP EarlyWatch Alert 报告进行比较,以提高准确性。根据分析结果,将运行的实例替换为合适的 SAP 认证 NetWeaver 或 HANA 实例。
注意:虽然 Compute Optimizer 通常是可靠的,但偶尔也可能会为 SAP 工作负载生成并非最优的建议,尤其是对于空闲 SAP 应用程序服务器的建议。之所以发生这种情况,是因为它没有考虑到工作进程使用的预留内存。因此,建议对照 SAP 认证实例来验证 Compute Optimizer 的建议,以获得最佳性能。
2. 利用节省计划
节省计划提供了灵活的定价模式,通过承诺为期一年或三年的每小时支出金额,换取折扣价格,与按需价格相比最高可节省 72%。
检查是否有按需运行的 Amazon EC2 实例,对于这样的实例,如果工作负载和实例使用情况稳定,可将其添加到节省计划中(例如:与弗吉尼亚北部的按需运行实例相比,使用 3 年预付节省计划的 u-3tb1 Linux 实例的价格要低 60% 以上)。AWS Trusted Advisor 和 AWS Cost Explorer 成本管理服务可以为您提供当前的节省计划使用情况和建议。
此措施需要定期(每月左右)进行审查,以避免可预测工作负载上产生按需实例成本。
3. 实施 Amazon EC2 实例系列标准化以享受尽可能高的折扣
实例系列标准化可充分提高利用率,并尽可能减少与预留管理相关的工作量。
有许多 Amazon EC2 实例系列和类型经过了 SAP 认证。为了充分利用节省计划以及考虑到 AWS Marketplace 订阅成本,请对实例系列和实例类型进行标准化。例如,对于小型实例(ASCS、SCS 或 WebDispatchers),请使用 Amazon EC2 C6i 或最新一代实例;对于 SAP 应用程序服务器,请使用 Amazon EC2 M6i 或最新一代实例;对于不超过 1 TB 的 HANA 数据库实例,请使用 Amazon EC2 R6i 或最新一代实例。
4. 自动启动和停止非生产 Amazon EC2 实例
与开发、训练、沙盒以及与项目相关的实例对正常运行时间的要求可能较低(每天几个小时,或仅在特定日期运行),或者在项目周期中运行的时间可能很短,对于这些实例,购买节省计划可能不具备成本效益。在这种情况下,您可以利用 AWS Systems Manager 或 Landscape Management,根据正常运行时间要求来安排实例的停止和启动,从而节省成本。
通过自动启动和停止非关键型 SAP 工作负载实例,您可以节省 AWS 成本。仅在需要时运行实例,可以避免空闲实例产生的费用。
5. 迁移到最新一代的 Amazon EC2 实例
迁移到新一代实例类型可以提高 SAP 工作负载的性价比。这是因为新一代实例具有更高的 SAPS,并且价格更低。因此,您可以使用更少或更小的实例来获得相同的性能水平,或者改为使用相同大小的最新一代实例类型来应对工作负载的增长。例如,从 m5 迁移到 m6i 系列后,可以提升高达 15% 的 CPU 处理能力、增加高达 20% 的内存带宽和 25-100% 的网络带宽,具体取决于实例类型、操作系统和区域。
6. 取消未使用的按需容量预留(ODCR)
按需容量预留使您可以在特定可用区中,为您的 Amazon EC2 实例预留任意时间段的计算容量。
您可能已经为节省计划中的特定实例类型创建了按需容量预留(ODCR),以确保在出现实例重启的情况时有 Amazon EC2 实例可供使用。在合理调整大小、实施 Amazon EC2 实例系列标准化或迁移到不同的实例类型之后,需要取消现有的 ODCR,并针对调整大小后的实例创建新的 ODCR。例如,将实例从 u-3tb1.56xlarge 更改为 r6i.32xlarge 时,您需要取消先前的 ODCR,并为 r6i.32xlarge 创建新的 ODCR。实施流程,定期检查未使用的 ODCR。
7. 根据恢复时间目标(RTO)和恢复点目标(RPO),使用 AWS 弹性灾难恢复来优化灾难恢复架构
企业可以借助 AWS 弹性灾难恢复(AWS DRS),轻松快速地实施新的灾难恢复计划或将现有灾难恢复计划迁移到 AWS。通过将源系统复制到暂存区的复制服务器,即可使用经济实惠的存储、共享服务器以及尽可能少的计算资源来维持持续复制,从而优化灾难恢复成本。
如果可以实现所需的 RTO 和 RPO,则应该使用 AWS DRS(适用于 SAP 应用程序服务器和数据库)取代双活架构进行灾难恢复(DR)。如果您的 RTO 和 RPO 选项不同,可以考虑评估其他设计模式来管理 SAP on AWS 系统韧性。
8. 利用云服务的灵活性根据需要构建临时系统
AWS Launch Wizard 提供了一种指导方法,用于针对第三方应用程序(例如基于 HANA 的 SAP 系统)配置和部署 AWS 资源,以及调整资源大小。
借助 AWS Launch Wizard,根据需要从亚马逊机器映像(AMI)(采用强化流程在支持的操作系统版本基础之上构建而成)构建临时系统(基于 SAP HANA),而不是让它们保持开启状态或将其关闭。这是因为即使关闭了实例,也会产生存储成本。
此外,可以使用 AWS Launch Wizard 创建 AWS Service Catalog 产品,这使得团队可以直接预置 AWS Launch Wizard 中内置的预定义 SAP 架构,从而节省时间。
Amazon EBS
为确保您满足 SAP HANA 定制数据中心集成(TDI,Tailored Data Center Integration)要求,请务必使用 SAP HANA on AWS 认证存储配置,作为运行 SAP HANA 的 EC2 实例的最低配置。这是为了实现优化的性能并满足 SAP 的存储 KPI。
1. 使用最新一代 Amazon EBS 卷类型
将 Amazon EBS 卷从 GP2 迁移到 GP3 卷类型以获得更好的性价比。
2. 使用 Amazon EBS GP3 卷类型而不是 IO2
通过 Amazon CloudWatch 查看 Amazon EBS IO2 卷的 IOPS 使用情况。如果 IOPS 使用量低于 16000,请考虑将卷从 IO2 迁移到 GP3。您也可以考虑对 GP3 卷进行条带化,以避开对 16000 IOPS 的限制,实现更高的 IOPS 和吞吐量。
注意:IO2 应该用于需要亚毫秒延迟以及更高 IOPS、吞吐量和持久性(99.999%)的关键任务工作负载。
3. 从已终止的 Amazon EC2 实例中删除未附加的 Amazon EBS 卷
在 AWS 管理控制台中检查是否有未附加的 Amazon EBS 卷,如果有这样的卷并且将来不再需要使用,则将其删除。在 Amazon EC2 实例启动时,如果没有“终止时删除”标志,那么此类实例在终止后就会产生未附加的卷。
4. 使用 AWS Backup 备份数据库,或通过 AWS Backint 代理直接备份到 AWS S3 存储
直接在 AWS S3 上配置数据库的备份和恢复(适用于 AnyDB 和 SAP HANA with HA)
EC2 上的 SAP HANA:使用 AWS Backup* 和适用于 SAP HANA 的 AWS Backint 代理
EC2 上的 Oracle:使用 Oracle Secure Backup(OSB)模块
SAP ASE 数据库:使用 AWS 文件网关异步传输数据
这可以避免保存备份(在 Amazon EFS 或 Amazon EBS 上)产生的临时存储成本
5. 优化非数据库卷的 EBS 快照
AWS Backup 是一项集中式托管服务,可实现对不同的 AWS 资源(包括 Amazon EBS 卷和 Amazon EC2 实例)的备份、还原和基于策略的保留。
数据库服务器:
- 为根卷和二进制卷启用快照
- 如果已经进行了数据库备份(使用数据库工具),则禁用数据和日志卷的快照
- 数据和日志卷的临时快照可以与 AWS Backup 结合使用,以加快大型数据库的系统更新
SAP 应用程序服务器:
- 为根卷和二进制卷(/usr/sap)启用快照
Amazon S3
1. 优化数据库备份计划和保留期(通过 AWS Backint 代理将备份保存到 S3 存储时)
为每个环境制定备份计划,结合运用完整备份和增量备份类型。这应包括生产、暂存、预生产、质量、开发、沙盒和项目环境;具体视您的部署情况而定。备份计划应基于与各个环境的恢复需求相一致的保留期,结合考虑恢复所需数据的时效性和最新性等因素。
例如,对于保留期为 30 天的沙盒环境,每月进行完整备份并每周进行增量备份应已足够,如果需要,可以使用生产/质量系统备份来构建这些系统。
2. 在 Amazon S3 中启用生命周期策略
利用 Amazon S3 分析 – 存储类分析来分析存储访问模式,帮助您利用保留期来决定何时将合适的数据过渡到合适的存储类(如上所示)。
根据各个环境的恢复需求和保留期,制定生命周期策略。例如,如果不太会需要恢复 5 天之前的生产备份,则可以将生产备份先在 Amazon S3 Standard 中存储 5 到 7 天,然后再过渡到较低的层(例如 Amazon S3 Glacier 或 Amazon S3 Glacier Deep Archive)保留 6 个月。
3. 禁用备份的版本控制
为备份禁用版本控制,启用在删除时进行多重身份验证或保管库锁,以确保安全。
4. 灾难恢复区域中的低层存储
如果启用了 Amazon S3 跨区域复制(CRR,Cross-Region Replication)以实现业务连续性和灾难恢复(BC/DR,Business Continuity and Disaster Recovery),则根据恢复时间目标(RTO)和恢复点目标(RPO),在灾难恢复(DR)区域使用较低层的存储,例如 Amazon S3 Glacier 或 Amazon S3 Glacier Deep Archive。
5. 利用 Amazon S3 而不是 Amazon EBS 或 Amazon EFS 来存储接口或存档文件
利用 Amazon S3 来存储接口或存档文件,可以通过实施生命周期策略和版本控制来降低成本。适用于 SAP ABAP 的 AWS SDK 可用于从 SAP ABAP 程序访问 Amazon S3 文件。
6. 适用于 Amazon S3 的 AWS Private Link
AWS Private Link 在虚拟私有云(VPC)、支持的 AWS 服务和本地网络之间提供私有连接,而不会将流量暴露给公共互联网。这是通过利用 Amazon VPC 端点来实现的。
预置接口端点以在 Amazon EC2 和 Amazon S3 之间建立连接。这将使用 AWS 骨干网络进行数据传输,并避免互联网出口费用。对接口端点进行保护,这可以通过端点本身的资源策略以及端点提供访问的资源的资源策略来实现。使用网关端点,您可以从 VPC 访问 Amazon S3,而无需为 VPC 使用互联网网关或 NAT 设备,也无需支付额外费用。
7. 定期清理 Amazon S3,以及在重大项目完成后进行清理
SAP 的安装和升级需要大量 Amazon S3 存储空间,用来存储数据库、内核、配置文件、SUM 目录和 SAP 软件文件的临时备份。启用具有保留期的生命周期策略,或者在项目计划中加入一项任务,在项目完成后清理 Amazon S3 存储桶。
Amazon EFS
Amazon EFS 可用于 SAP “/usr/sap/trans”、“/sapmnt” 或任何其他需要在服务器之间共享的文件系统。
*https://docs.thinkwithwp.com/efs/latest/ug/lifecycle-management-efs.html
1. 检查是否有未附加的 Amazon EFS
检查是否有任何未附加的 Amazon EFS,并在核实内容后将其删除。
2. 启用生命周期策略
使用 Amazon EFS 生命周期管理来自动管理 SAP 文件系统的经济高效的文件存储,例如 /usr/sap/trans、SARA 访问的归档、SOX 相关文件、SAP 软件、SAP 安装和升级工具以及备份。
Amazon EFS Intelligent Tiering 使用生命周期管理来监控工作负载的访问模式,其设计为在文件系统与 Infrequent Access(IA)存储类之间往返传输文件。
3. 定期清理 Amazon EFS,以及在重大项目完成后进行清理
SAP 安装和升级需要大量的 Amazon EFS 存储空间,用来存储 SAP 软件文件和 SAP 工具,例如 Software Provisioning Manager 和 Software Update Manager。
总结
遵循 SAP 和 AWS 最佳实践来优化 SAP 工作负载的成本至关重要,而对于客户来说可能会面临挑战。
您需要熟悉掌握 AWS Trusted Advisor 和 AWS Cost Explorer 成本管理服务等 AWS 服务,来分析和监控 SAP 工作负载成本、可用于 Amazon S3 和 Amazon EFS 的生命周期策略以及适用于 SAP 的认证实例和存储类型,这些都是成本优化工作中需要考虑的关键领域。利用 AWS 成本分配标签来精细地跟踪 AWS 成本,并查明哪些因素造成了更高的开支。
建立适当的流程和治理措施,以避免超出预算。
后续行动
每个季度(或根据需要)针对成本优化支柱,在 AWS Well-Architected Tool(AWS WA 工具)中自助运行 SAP 详解审查。与 AWS 技术客户经理(TAM,Technical Account Manager)或客户团队交流,获取运行 AWS WA 工具的帮助。
实施云财务管理,持续监控成本和改进成本优化
如有任何问题或需要澄清,请联系 AWS Support,并在分析期间与 AWS 技术客户经理(TAM)或 AWS 解决方案架构师交流。