简介:
欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,让大家零基础5分钟通过这篇文章就能完全学会亚马逊云科技一个经典的服务开发架构方案。
我将每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿云开发/架构技术基础解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS最佳实践,并应用到自己的日常工作里。本次我将介绍如何分析和预估再亚马逊云科技上的成本,利用Price Calculator和AWS的成本模型合理评估所需云资源价格、发现降本机会并采购。
方案所需基础知识
什么是亚马逊云科技 Price Calculator?
亚马逊云科技 Price Calculator(AWS Pricing Calculator)是亚马逊云科技提供的一个网页工具,帮助用户估算使用 AWS 服务的成本。用户可以根据自己计划使用的服务,输入相关配置和使用量,生成详细的成本预估报告,包括计算、存储、数据库、网络等,可以为企业和个人用户提供准确的成本预测。
为什么需要对云资源成本进行预估?
成本管理
预算控制:
通过预估云资源的使用成本,企业可以更好地制定和控制预算,避免超支情况的发生。了解不同配置和使用量对成本的影响,可以帮助企业优化资源配置。
费用分摊:
对于需要在不同部门或项目之间分摊云资源成本的企业,预估成本可以提供准确的费用分摊依据,确保各部门或项目的成本负担合理、公正。
资源规划
资源优化:
通过预估不同配置和使用模式的成本,企业可以优化资源使用,选择性价比最高的配置和服务,提升资源利用率,降低不必要的开支。
规划与调整:
预估成本可以帮助企业在实施云迁移或扩展计划时进行科学规划。了解不同方案的成本,可以帮助企业在规划阶段做出更明智的决策,并在需要时及时调整资源配置。
投资回报分析:
预估成本是进行投资回报分析的重要步骤。企业可以通过比较预估成本和预期收益,评估云项目的经济效益,做出更有价值的投资决策。
风险管理
规避风险:
通过详细的成本预估,企业可以提前识别和规避潜在的成本风险,避免由于资源使用过度或不合理配置带来的高额费用。
决策支持:
预估成本提供了决策支持的数据基础,帮助企业在进行云服务选择、配置调整和扩展计划时做出更稳妥的决策,降低决策风险。
本方案包括的内容:
1. 创建Price Group成本单元,对某一类的成本统一预估和计算
2. 预估EC2服务器的周成本、月成本和年成本
项目搭建具体步骤:
- 首先我们在网页打开AWS Pricing Calculator, 创建一个成本预估Estimate
- 接下来我们创建一个Price Group, 用来对同一类的一组服务资源成本统一分析
- 接下来我们为这个Group添加服务资源。
- 以我们添加EC2服务为例,我们点击配置我们要添加的EC2信息
- 我们先选择我们EC2所在的区域,如"US East (Virginia)".
6. 接下来我们添加我们要创建的EC2服务器配置。如操作系统为"Linux", WorkLoad类型为"每日会流量突增",EC2开启的日期为每周周一到周五。
- 添加EC2自动扩容的信息,平常为2台,高峰期为4台,高峰期持续8小时,
8. 接下来配置服务器的大小类型,2核CPU,4GiB内存,类型为t2.medium。
- 付款类型选用即用即付,用多少交多少的On Demand形式。
10. 服务器硬盘类型为gp3,IOPS为30。
- 由于在亚马逊云科技上,出系统的流量请求需要收费,我们这里需要添加出系统每月的流量大小。如 1TB per month。
- 最终我们即可看到最后的计算结果,总成本为每个月99.33刀美元
代码创建Pricing Calculator Estimator
我们利用AWS boto3 SDK同样可以利用Python调用Pricing Calculator API进行成本的预估。示例代码如下:
python
import json
import boto3
def handler(event, context):
instance_type = event['queryStringParameters']['instance_type']
region = event['queryStringParameters']['region']
hours = int(event['queryStringParameters']['hours'])
pricing_client = boto3.client('pricing', region_name='us-east-1')
response = pricing_client.get_products(
ServiceCode='AmazonEC2',
Filters=[
{'Type': 'TERM_MATCH', 'Field': 'instanceType', 'Value': instance_type},
{'Type': 'TERM_MATCH', 'Field': 'location', 'Value': region}
]
)
price_per_hour = json.loads(response['PriceList'][0])['terms']['OnDemand'][list(json.loads(response['PriceList'][0])['terms']['OnDemand'].keys())[0]]['priceDimensions'][list(json.loads(response['PriceList'][0])['terms']['OnDemand'][list(json.loads(response['PriceList'][0])['terms']['OnDemand'].keys())[0]]['priceDimensions'].keys())[0]]['pricePerUnit']['USD']
total_cost = float(price_per_hour) * hours
return {
'statusCode': 200,
'body': json.dumps({'total_cost': total_cost})
}
以上就是在亚马逊云科技上利用Price Calculator对于云平台上的服务器成本进行预估的全部步骤。欢迎大家关注0基础5分钟上手AWS系列,未来获取更多国际前沿的AWS云开发/云架构方案!