写点什么

如何为 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:30817
用户头像

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

关注

评论

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

如何进步神速

Sean

学习 个人成长

高速路二维码报警定位系统开发,二维码报警定位功能

13530558032

Electronjs

Neil

Java 大前端 Electron 客户端开发

活着

GongTeng95

CentOS 7 安装 Python 3.7

wong

Python

UML练习1-食堂就餐卡系统设计

博古通今小虾米

UML

在线游戏,如何把握住1个亿以上的DAU?

博睿数据

运维 监控 AIOPS 系统 用户体验

Python基础知识(二)

Python基础

直播倒计时|30分钟带你解锁“技术写作”新技能

有只小耳朵

技术 写作 直播 技术创作 RTC征文大赛

关于手机里的IP地址,你不得不知道的“秘密”

脑极体

数字货币量化交易,量化对冲搬砖系统开发

13530558032

大数据下单集群如何做到2万+规模?

华为云开发者联盟

大数据 集群

python——自定义序列类

菜鸟小sailor 🐕

一次旅途

GongTeng95

架构师训练营结业作业

superman

Spring Cloud 微服务实践(2) - Gateway重试机制

xiaoboey

maven Spring Cloud Gateway modules 重试

算法大赛评委亲授通关秘籍,报名倒计时!

易观大数据

LeetCode题解:622. 设计循环队列,使用数组,JavaScript,详细注释

Lee Chen

大前端 LeetCode

网上赌博输了怎么办?上岸戒赌是唯一的选择

jdxj

网上赌博输了怎么办 网上赌博玩快三输了怎办 网上玩快三输了怎么回血 网赌输了怎么戒赌

USDT支付系统开发技术方案,数字货币承兑商支付

13530558032

一次压缩引发堆外内存过高的教训

AI乔治

Java kafka JVM

不想搞Java了,4年经验去面试10分钟结束,现在Java面试为何这么难

Java架构师迁哥

Spring Cloud 微服务实践(0) - 开篇闲话

xiaoboey

微服务 Spring Cloud Spring Boot Spring Framework

2020年7月云主机性能评测报告

博睿数据

云计算 测试 公有云 评测 排行榜

血的教训!千万别在生产使用这些 redis 指令

redis 学习 编程 程序员

架构师训练营大作业

叮叮董董

实践案例丨云连接CC实现跨区域多VPC与线下IDC Server互联

华为云开发者联盟

云服务 IDC

2020年8月北京BGP机房网络质量评测报告

博睿数据

测试 机房 评测 排行榜 IDC

危与机并存 保险业如何走好线上线下业务并举转型之路?

博睿数据

运维 监控 保险 AIOPS 系统

Spring Cloud 微服务实践(1) - 用Initializr初始化

xiaoboey

Spring Cloud Eureka Gateway Hoxton

Java 基础语法

InfoQ_34a83d636158

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