简介:

欢迎来到小李哥谷歌云GCP云计算知识学习系列,适用于任何无云计算或者谷歌云技术背景的开发者,让大家零基础5分钟通过这篇文章就能完全学会谷歌云一个经典的服务开发架构方案。

我将每天介绍一个基于全球三大云计算平台(AWS, Azure, GCP)的全球前沿云开发/架构技术基础解决方案,帮助大家快速了解国际上最热门的云计算平台上的最佳实践和前沿技术,并应用到自己的日常工作里。本次我将介绍如何在谷歌云上对云计算采购资源成本进行分析并生成报告。

方案所需基础知识 

Google Cloud 成本管理工具介绍

Google Cloud 提供了一系列强大的成本管理工具,帮助用户有效地跟踪、控制和优化在云上的支出。这些工具旨在为企业提供透明的成本分析和预测能力,确保云资源的使用与预算和业务目标相一致。

成本分配标签

用户可以为不同项目、部门或应用程序创建自定义标签,精确跟踪和分配云资源的费用,帮助企业更好地理解各个业务单元的支出情况。

预算和警报

Google Cloud 提供了预算设置和支出警报功能,用户可以为特定项目或服务设定预算上限,并在接近或超出预算时收到自动通知,防止超支情况的发生。

成本分析报告

借助成本分析工具,用户可以生成详细的费用报告,查看历史支出趋势,识别成本驱动因素,并发现优化机会。

推荐优化建议

Google Cloud 提供了资源优化建议,帮助用户发现未充分利用的资源,并提供具体的优化措施,如调整虚拟机规模、释放闲置资源等,从而最大化成本效益。

费用预测

通过成本预测工具,用户可以基于历史使用数据预测未来的云支出,帮助企业进行更精准的财务规划和资源管理。

为什么需要对云资源成本进行预估?

成本管理

预算控制:

通过预估云资源的使用成本,企业可以更好地制定和控制预算,避免超支情况的发生。了解不同配置和使用量对成本的影响,可以帮助企业优化资源配置。

费用分摊:

对于需要在不同部门或项目之间分摊云资源成本的企业,预估成本可以提供准确的费用分摊依据,确保各部门或项目的成本负担合理、公正。

资源规划

资源优化:

通过预估不同配置和使用模式的成本,企业可以优化资源使用,选择性价比最高的配置和服务,提升资源利用率,降低不必要的开支。

规划与调整:

预估成本可以帮助企业在实施云迁移或扩展计划时进行科学规划。了解不同方案的成本,可以帮助企业在规划阶段做出更明智的决策,并在需要时及时调整资源配置。

投资回报分析:

预估成本是进行投资回报分析的重要步骤。企业可以通过比较预估成本和预期收益,评估云项目的经济效益,做出更有价值的投资决策。

风险管理

规避风险:

通过详细的成本预估,企业可以提前识别和规避潜在的成本风险,避免由于资源使用过度或不合理配置带来的高额费用。

决策支持:

预估成本提供了决策支持的数据基础,帮助企业在进行云服务选择、配置调整和扩展计划时做出更稳妥的决策,降低决策风险。

本方案包括的内容:

1. 在Billing账户中查看账单用量图表

2. 通过筛选器分析云资源用量趋势

3. 探索各个服务账单用量成本占比

4. 查看云资源成本总结

成本分析具体步骤:

1. 进入谷歌云控制台,打开Billing服务,点击Reports报告。我们可以看到本月的云资源花销,以及本月预测的花销。

2. 同时我们可以看到本月花销的趋势图,点击某天的数据点可以得到当天花销。

3. 在趋势图底部显示了按照项目划分的每个项目的花销。

 

4.我们用右侧侧边栏的筛选器,选择“invoice month”并选择6月,可以筛选出特定月份范围内的成本趋势和数据。

5. 接下来我们按照特定日期范围筛选出我们的成本趋势,并按照区域进行划分,我们可以得到在us-central1和us-west1不同区域的成本总量。

6. 接下来我们查看哪个云服务在云资源成本中占据最大的用量。我们找出趋势图中的成本增长异常的部分,在本图中为“CTO-Dev”,接下来我们选中该项目,并且点击group by “Service”,则可以看到按照服务类型划分的用量。

 7. 最后我们进入Billing中的Cost breakdown功能中,可以获得我们的特定时间段内的总成本分析报告,包括用量和抵价券使用情况。

如何利用谷歌云Python SDK获取成本分析报告?

from google.cloud import bigquery

# 创建 BigQuery 客户端
client = bigquery.Client()

# 定义你的 Billing 数据集和表的名字
dataset_id = 'your_billing_dataset_id'  # 替换为你的数据集ID
table_id = 'your_billing_table_id'      # 替换为你的表ID

# 定义查询以获取 billing 报告
query = f"""
    SELECT
        billing_account_id,
        service.description as service_description,
        sku.description as sku_description,
        usage_start_time,
        usage_end_time,
        cost,
        currency,
        project.name as project_name
    FROM
        `{dataset_id}.{table_id}`
    WHERE
        cost > 0  -- 过滤掉没有成本的行
    ORDER BY
        usage_start_time DESC
    LIMIT 100  -- 限制返回结果的数量
"""

# 运行查询
query_job = client.query(query)

# 获取结果
results = query_job.result()

# 输出查询结果
for row in results:
    print(f"Billing Account ID: {row.billing_account_id}")
    print(f"Service: {row.service_description}")
    print(f"SKU: {row.sku_description}")
    print(f"Usage Start: {row.usage_start_time}")
    print(f"Usage End: {row.usage_end_time}")
    print(f"Cost: {row.cost} {row.currency}")
    print(f"Project Name: {row.project_name}")
    print("-" * 40)

解释:

  • BigQuery 客户端:通过 bigquery.Client() 创建一个 BigQuery 客户端,用于与 BigQuery 数据库进行交互。
  • SQL 查询:在 query 变量中定义了一个 SQL 查询,用于从 GCP 的 Billing 数据表中获取相关的账单信息。查询结果包括账单账号 ID、服务描述、SKU 描述、使用时间范围、成本、货币类型和项目名称等信息。
  • 查询执行与结果处理:通过 client.query(query) 执行查询,并使用 result() 方法获取查询结果。然后通过循环将结果逐行输出。

 

以上就是在谷歌云GCP上对账单成本分析的全部步骤。欢迎大家关注零基础5分钟上手谷歌云系列,未来获取更多国际前沿的谷歌云GCP云开发/云架构方案!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐