AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

如何为 SAP 应用选择合适的 EC2

  • 2019-09-29
  • 本文字数:1966 字

    阅读完需:约 6 分钟

如何为SAP应用选择合适的EC2

需求背景

我们在前两篇文章中分别分享了如何为迁移上云的服务器选择机型以及如何在每年对云上的服务器进行优化。在这篇文章中,我们要讨论一下 SAP 的服务器问题。SAP 是企业中广泛使用的 ERP 系统,SAP 应用系统的上云也已经是大势所趋,相对于其他应用系统来说,SAP 的机型选择要相对苛刻一写。首先,不是所有的 AWS EC2 机型都通过了 SAP 公司的认证;其次,就是通过了认证的机器,也不是能运行所有的 SAP 应用。SAP 公司为不同的应用认证了不同的机型。例如 m4 系列的服务器是 SAP 认证的机型,但它不是 HANA 数据库认证的机型。SAP 服务器的性能是通过 SAPS 值体现的,如果我对运行 SAP 应用的服务器进行了机型优化,我如何才能知道对 SAPS 值有何影响?

方案概述

我们在第一篇文章中介绍了环境变量 EXCLUDE_EC2_TYPE 的作用,所以在进行 SAP 服务器的选型时,我们可以通过设置 EXCLUDE_EC2_TYPE 的值来规避选择非 SAP 认证的服务器的现象发生,在这两个网站上可以查询 SAP 的何种应用认证了何种类型的 EC2:



好了,设置了 EXCLUDE_EC2_TYPE 后,我们就可以按照第二篇文章中阐述的方法对 SAP 机型进行优化了。优化完成后,怎么对比 SAPS 值呢? 我们的方案是首先从网站上抓取不同 EC2 对应的 SAPS 值,然后下载下来生成一个 Excel 表格以备后用。


Python 程序 get_ec2_saps.py 就可以完成这个工作:


第一步:下载网上的相关表格


import pandas as pd
saps_table = pd.read_html(‘https://aws.amazon.com/cn/sap/instance-types/’)
import pandas as pd
saps_table = pd.read_html('https://aws.amazon.com/cn/sap/instance-types/')
复制代码


第二步:对表格进行合并、清理


new_table = saps_table[0]
old_table = saps_table[1]
new = new_table[['Instance Type', 'vCPU', 'Mem (GiB)', 'SAPS']]
old = old_table[['Instance Type', 'vCPU', 'Mem (GiB)', 'SAPS']]
ec2_saps = pd.concat([new, old])
ec2_saps.replace({'\*': ''}, regex=True, inplace=True)
ec2_saps['vCPU'] = pd.to_numeric(
ec2_saps['vCPU'], downcast='integer', errors='coerce')
ec2_saps['Mem (GiB)'] = pd.to_numeric(
ec2_saps['Mem (GiB)'], downcast='float', errors='coerce')
ec2_saps['SAPS'] = pd.to_numeric(
ec2_saps['SAPS'], downcast='float', errors='coerce')
复制代码


第三步:保存到 Excel 表格里面


ec2_saps.to_excel('ec2_saps.xlsx', index=False) 
复制代码


大功告成了,让我们看看结果,由于机型过多,我们仅截取部分内容:



接下来我们要做的就是将我们得到的 SAPS 值的结果拼接到机型优化的结果中去。我们以第二篇文章中的优化结果作为例子,输入文件的格式如下:



Python 程序 add_saps.py 可以完成结果的拼接工作:


import pandas as pd
source = "blog3_output.xlsx"
sheet = 0
target = pd.ExcelWriter('result.xlsx')
for i in range(1, 6):
sheet = i
ex1 = pd.read_excel(source)
ex2 = pd.read_excel("ec2_saps.xlsx")
merge = ex1.merge(ex2, left_on="type",
right_on="Instance Type", how='left')
merge.drop(['Instance Type', 'vCPU', 'Mem (GiB)'], axis=1, inplace=True)
merge.rename(columns={'SAPS': 'source_saps'}, inplace=True)
merge = merge.merge(ex2, left_on="target_type",
right_on="Instance Type", how='left')
merge.drop(['Instance Type', 'vCPU', 'Mem (GiB)'], axis=1, inplace=True)
merge.rename(columns={'SAPS': 'target_saps'}, inplace=True)

merge.to_excel(target, sheet_name=str(sheet), index=False)
target.save()
复制代码


运行前提条件:ec2_saps.xlsx 和 blog3_output.xlsx 保存在当前目录下。


运行结果:



注意上面表格的后两列,已经标注了源和目地系统的 SAPS 值。


本文中的完整程序可从这里下载:


https://github.com/shaneliuyx/awscnprice/tree/master/examples


————


如何自动化的选择和优化EC2系列(一)利用AWS Price List API生成中国区的EC2 价格表


如何自动化的选择和优化EC2系列(二)在迁移项目中,如何自动选择最经济的EC2


如何自动化的选择和优化EC2系列(三)如何进行EC2优化,进一步优化成本


如何自动化的选择和优化EC2系列(四)如何为SAP应用选择合适的EC2(本博文)


如何自动化的选择和优化EC2系列(五)如何整合RI续购日期


作者介绍:


刘育新


AWS ProServe 团队高级顾问,长期从事企业客户入云解决方案的制定和项目的实施工作。


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/how-does-sap-choose-suitable-ec2-seriesfour/


2019-09-29 16:30776
用户头像

发布了 1913 篇内容, 共 148.4 次阅读, 收获喜欢 81 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试 | 测试开发 | 测试人生 | 毕业2年未满,0经验拿下知名互联网企业30W 年薪,他是怎么做到的?

测吧(北京)科技有限公司

软件测试 | 测试开发 | 测试人生 | 年薪超过40W,一位测试媛宝妈的 BAT 大厂逆袭之旅

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试人生 | 从功能到外企测开,工作1年半拿下年薪30万的测开 offer,这个95后小姐姐未来可期~

测吧(北京)科技有限公司

测试

聚焦指标及管理,Kyligence 发布指标中台 SaaS 产品 Zen

Kyligence

数据分析 OLAP Kyligence 指标中台

不懂 Kubernetes 实现云原生是什么体验?

北京好雨科技有限公司

云原生 #Kubernetes#

怎么合理使用索引

急需上岸的小谢

9月月更

多版本并发控制 MVCC

月明风清

EMR重磅发布智能运维诊断系统(EMR Doctor)——开源大数据平台运维利器

阿里云大数据AI技术

大数据 运维 企业号九月金秋榜 EMR

MyBatis-Plus(一、快速入门)

MySQL Mybatis-Plus 9月月更

OpenHarmony编译报错解决

坚果

OpenHarmony 9月月更

软件测试 | 测试开发 | 接口测试框架实战(二)| 接口请求断言

测吧(北京)科技有限公司

测试

阿里云云原生实时数仓升级发布,助力企业快速构建一站式实时数仓

阿里云大数据AI技术

大数据 数仓

软件测试 | 测试开发 | 接口测试框架实战 | 流程封装与基于加密接口的测试用例设计

测吧(北京)科技有限公司

测试

Nginx 模块开发

C++后台开发

nginx 后台开发 中间件 后端开发 Nginx模块开发

MobLink iOS端快速集成文档

MobTech袤博科技

ios xcode

Redis 的PSYNC命令

急需上岸的小谢

9月月更

软件测试 | 测试开发 | 接口测试框架实战(一) | Requests 与接口请求构造

测吧(北京)科技有限公司

测试

恭喜 SelectDB 三位开发者成为 Apache Doris 新晋 Committer!

SelectDB

大数据 开源项目 Committer SelectDB 企业号九月金秋榜

从低代码的前世今生,看软件开发趋势

飞算JavaAI开发助手

软件测试 | 测试开发 | 测试人生 | 折腾 6 年踩坑无数的”笨小孩“:方向对了,路就不会遥远!

测吧(北京)科技有限公司

测试

羊了个羊暴力通关玩法

大熊G

解析Stream foreach源码

华为云开发者联盟

Java 开发 企业号九月金秋榜

软件测试 | 测试开发 | Jenkins 如何参数化job ?

测吧(北京)科技有限公司

测试

科技公司内部 SaaS 工具大公开|活动回顾(含视频 & PPT)

Bytebase

创业 工具 开发者工具 SaaS

软件测试 | 测试开发 | 测试人生 | 转行测试开发,4年4“跳”年薪涨3倍,我的目标是星辰大海(附大厂面经)!

测吧(北京)科技有限公司

测试

金蝶云星空&契约锁专场直播:帮企业从小处降本,从细节增效!

IT资讯搬运工

金融

2022vivo“千镜杯”正式开赛,为守护用户安全而战!

极客天地

开源指南|如何从零开始参与 Apache 顶级开源项目?(二)

SelectDB

数据库 大数据 Doris 开源治理 企业号九月金秋榜

PSYNC 部分重同步的原理

急需上岸的小谢

9月月更

软件测试 | 测试开发 | 测试人生 | 二线城市涨薪近10万 ,还能955,这样的机会你想不想要?

测吧(北京)科技有限公司

测试

2022 DEMO CHINA创新中国峰会收官,5大专场创业者PK,投资人脱口秀别开生面

创业邦

如何为SAP应用选择合适的EC2_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章