速来报名!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:30708
用户头像

发布了 1851 篇内容, 共 119.2 次阅读, 收获喜欢 78 次。

关注

评论

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

Spring中的动态表达式SpEL

SpEL表达式 SpEL @Value

云知声多模态模型:实时多模态输入输出;独立于 Siri ,苹果或开发新 AI 用于机器人丨 RTE 开发者日报

声网

5 大场景上手通义灵码企业知识库 RAG

阿里巴巴云原生

阿里云 云原生 通义灵码

如何使用 NFTScan NFT API 在 Gravity 网络上开发 Web3 应用

NFT Research

NFT\ NFTScan API】

从构思到上线:深入解析海外1v1视频聊天应用核心功能与技术开发指南

山东布谷科技胡月

一对一视频聊天系统 海外直播 国际版社交APP 社交APP源码 聊天APP源码

DDD-15-数据库设计

南山

领域驱动设计 DDD 数据库设计

低代码开发的未来:JNPF如何改变应用构建方式

快乐非自愿限量之名

低代码 数字化

十种超赞的 MyBatis 写法!

秃头小帅oi

元宇宙游戏链游系统开发丨元宇宙游戏链游系统源码案例开发

V\TG【ch3nguang】

解锁豆包MarsCode奥秘,打造你的专属创意工坊!|动手实验室新一期又来啦

豆包MarsCode

人工智能 编程 程序员 AI 计算机

豆瓣评分7.6!Python大牛教你如何采集网络数据

我再BUG界嘎嘎乱杀

Python 编程 爬虫 后端 数据采集

豆包大模型全面落地行业,助力企业打造专属智能体

Geek_2d6073

加密游戏的未来:Telegram机器人如何彻底改变加密挖矿

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

活动回顾丨云原生开源开发者沙龙上海站回放 & PPT 下载

阿里巴巴云原生

阿里云 开源 云原生

5 大场景上手通义灵码企业知识库 RAG

阿里云云效

阿里云 云原生 通义灵码

聚合博客网址导航大全代码分享

博客趣

个人博客 博客导航 博客大全 博客趣

腾讯云入选Gartner®首份AI代码助手魔力象限报告

Geek_2d6073

DDD-12-领域事件

南山

领域驱动设计 DDD 领域事件

DDD-13-仓储设计

南山

领域驱动设计 DDD 仓储 资源库

超级自动化:流程资产开启企业数字化转型新纪元

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能

如何快速分析新代币:15 分钟内做出明智的交易决策

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

有声书音频软件平台开发:多元化商业化收入模式解析

软件开发-梦幻运营部

打造敏捷开发环境:JNPF低代码平台的实践与探索

不在线第一只蜗牛

敏捷开发 低代码

Steam全球服务器遭遇大规模DDoS攻击,崩溃细节曝光!!!

网络安全服务

服务器 DDoS steam DDoS 攻击 黑神话悟空

探究Python中的函数与模块

我再BUG界嘎嘎乱杀

Python 编程 后端 函数 开发语言

DDD-14-工厂设计

南山

领域驱动设计 DDD

DDD-17-CQRS

南山

领域驱动设计 DDD CQRS

JNPF低代码开发平台:企业数字化转型的加速器

EquatorCoco

低代码 数字化 低代码开发 数字转型

Python并发编程:多线程(threading模块)

我再BUG界嘎嘎乱杀

Python 编程 并发编程 后端 多线程

AI 驱动的产品全生命周期:从概念设计阶段到生命周期的全面管理

Altair RapidMiner

人工智能 AI 数据分析 仿真 智能制造

建筑行业项目管理新宠,10款软件助你轻松驾驭

爱吃小舅的鱼

项目管理 建筑行业

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