0Pricing
Cloud & IT Cert Prep · 课时

Cost Explorer、预算与成本分配标签

在 Cost Explorer 中分析支出趋势,在超支前设置预算提醒,并为资源添加标签以生成分摊和回 charge 报告

Cost Explorer、预算与成本分配标签 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

成本可见性的必要性

如果无法了解 AWS 支出情况,就不可能进行成本优化。无法衡量的内容就无法改进。AWS 提供了三种主要的成本可见性工具:用于分析历史和预测支出的 Cost Explorer,用于在支出超过阈值时主动发出警报的 AWS Budgets,以及用于按团队、项目或环境分解成本的成本分配标签。这些工具共同构成了 Well-Architected 成本优化支柱所要求的财务管理基础。

# AWS cost management tools:
# Cost Explorer:        analyse past spending, forecast
# AWS Budgets:          alert when approaching/exceeding limits
# Cost Allocation Tags: attribute costs to teams/projects
# Cost and Usage Report (CUR): granular data to S3 for BI tools
# Billing Dashboard:    high-level current month summary
# Savings Plans/RI:     analyse commitment coverage

Cost Explorer:分析支出

AWS Cost Explorer 提供可视化界面和 API,用于探索 AWS 成本和使用量数据。您可以按服务、区域、账户、资源类型、标签和时间段查看支出。Cost Explorer 还提供基于历史趋势的12 个月支出预测、RI 和 Savings Plan 覆盖率报告,以及使用 ML 的成本异常检测,在支出模式发生意外变化时向您发出警报。在 Billing console 中启用 Cost Explorer——数据需要 24 小时才能填充。

# Cost Explorer API: get last 30 days spend by service
aws ce get-cost-and-usage \
  --time-period Start=2026-05-21,End=2026-06-21 \
  --granularity MONTHLY \
  --metrics BlendedCost \
  --group-by Type=DIMENSION,Key=SERVICE \
  --query 'ResultsByTime[0].Groups[].{Service:Keys[0],Cost:Metrics.BlendedCost.Amount}' \
  --output table

# Example output:
# Amazon EC2:     $8,450
# Amazon RDS:     $2,200
# Amazon S3:      $430
# AWS Lambda:     $85

成本异常检测

AWS Cost Anomaly Detection 使用机器学习持续监控您的成本,并在成本意外增加时向您发出警报。它会学习正常的支出模式,并检测具有统计显著性的偏差。您可以配置异常监控器(要监控的对象:服务、关联账户、成本类别或标签)和警报订阅(当异常超过阈值时,通过 SNS 电子邮件或 Slack webhook 发送通知)。Anomaly Detection 对于在 Lambda 成本失控、意外启动大型 EC2 实例或产生意外数据传输费用升级之前及时发现这些问题非常有价值。

# Create Cost Anomaly Detection monitor
aws ce create-anomaly-monitor \
  --anomaly-monitor '{
    "MonitorName": "AllServicesMonitor",
    "MonitorType": "DIMENSIONAL",
    "MonitorDimension": "SERVICE"
  }'

# Create alert subscription for anomalies > $100
aws ce create-anomaly-subscription \
  --anomaly-subscription '{
    "SubscriptionName": "daily-anomaly-alert",
    "MonitorArnList": ["arn:aws:ce::123:anomalymonitor/xxx"],
    "Subscribers": [{"Address":"finops@example.com","Type":"EMAIL"}],
    "Threshold": 100,
    "Frequency": "DAILY"
  }'

AWS Budgets:主动成本警报

AWS Budgets 允许您设置自定义支出阈值,并在实际支出或预测支出超过阈值时接收警报。预算有四种类型:Cost Budget(金额)、Usage Budget(小时数、GB、请求数)、RI Utilisation Budget(使用率低于阈值时发出警报)和 Savings Plans Utilisation Budget。您可以为每个预算配置多个警报阈值(例如预算的 50%、80%、100%,以及实际支出的 110%)。通知会发送到电子邮件或 SNS,而 Budget Actions 可以自动应用 SCP 或 IAM policy,以停止进一步支出。

# Create monthly cost budget with alerts
aws budgets create-budget \
  --account-id 123456789012 \
  --budget '{
    "BudgetName": "monthly-production-budget",
    "BudgetLimit": {"Amount": "10000", "Unit": "USD"},
    "TimeUnit": "MONTHLY",
    "BudgetType": "COST"
  }' \
  --notifications-with-subscribers '[{
    "Notification": {
      "NotificationType": "ACTUAL",
      "ComparisonOperator": "GREATER_THAN",
      "Threshold": 80,
      "ThresholdType": "PERCENTAGE"
    },
    "Subscribers": [{"SubscriptionType":"EMAIL","Address":"cto@example.com"}]
  }]'

用于自动响应的 Budget Actions

AWS Budget Actions 可以在预算阈值被超出时自动响应——无需人工介入。您可以配置以下操作:应用 IAM policy,拒绝启动新 EC2 实例的权限;向 AWS Organizations 目标应用 Service Control Policy (SCP);停止超出预算的 EC2 或 RDS 实例。例如,当开发账户的月度预算超过 5,000 美元时,预算可以自动停止所有 EC2 实例,从而防止遗忘的测试环境产生失控成本。

# Budget Action: stop EC2 instances when budget exceeded
aws budgets create-budget-action \
  --account-id 123456789012 \
  --budget-name monthly-dev-budget \
  --notification-type ACTUAL \
  --action-type STOP_EC2_INSTANCES \
  --action-threshold '{
    "ActionThresholdValue": 100,
    "ActionThresholdType": "PERCENTAGE"
  }' \
  --definition '{
    "SsmActionDefinition": {
      "ActionSubType": "STOP_EC2_INSTANCES",
      "Region": "us-east-1",
      "InstanceIds": ["i-dev-1","i-dev-2"]
    }
  }' \
  --execution-role-arn arn:aws:iam::123:role/BudgetActionsRole \
  --approval-model AUTOMATIC

成本分配标签

成本分配标签可以帮助您将 AWS 成本归属到具体的业务维度。标签有两种类型:AWS 生成的标签(例如 aws:createdBy)和用户定义的标签(您自定义的键值对)。您必须先在 Billing console 中激活标签,它们才会出现在成本报告中。激活后,标签会进入 Cost Explorer、CUR 和 Budgets,可用于筛选。请定义标签分类体系:Project、Environment、Team、CostCenter,并通过 AWS Organizations 中的 Tag Policies 强制执行该体系。

# Tag an EC2 instance with cost allocation tags
aws ec2 create-tags \
  --resources i-1234567890abcdef0 \
  --tags \
    Key=Project,Value=OrderService \
    Key=Environment,Value=Production \
    Key=Team,Value=PlatformEng \
    Key=CostCenter,Value=CC-1042

# Activate tag in Billing console (CLI)
aws ce create-cost-category-definition \
  --name ProjectCosts \
  --rules '[{"Value":"OrderService","Rule":{"Tags":{"Key":"Project","Values":["OrderService"]}}}]'

使用 Tag Policies 强制执行标签

只有一致应用标签,标签才有价值。AWS Organizations 中的 Tag Policies 可以在所有账户中强制执行标签键和值的格式。标签 policy 可以规定必须存在 Environment 标签,且其值必须是 Production、Staging 或 Development 之一。不合规资源会显示在标签 policy 合规报告中。将标签 policy 与 AWS Config 规则(例如 required-tags)结合使用,可以在未标记资源不断累积且无法归属成本之前,及时检测并发出警报。

# Create Tag Policy in AWS Organizations
aws organizations create-policy \
  --name RequiredTagsPolicy \
  --type TAG_POLICY \
  --content '{
    "tags": {
      "Environment": {
        "tag_key": {"@@assign": "Environment"},
        "tag_value": {"@@assign": ["Production","Staging","Development"]}
      },
      "Project": {
        "tag_key": {"@@assign": "Project"}
      }
    }
  }'

# Attach to an OU
aws organizations attach-policy \
  --policy-id p-12345 \
  --target-id ou-root-abc123

成本和使用情况报告(CUR)

AWS Cost and Usage Report (CUR) 是可用的最细粒度计费数据——它为账户中的每个资源提供按小时记录的明细项,包括资源 ID、标签、Savings Plan 覆盖情况以及混合费率和非混合费率成本。CUR 数据会以 CSV 或 Parquet 格式传送到 S3 bucket。您可以使用 Amazon Athena 查询这些数据进行自定义分析,或将其导入 Amazon QuickSight 创建控制面板。对于需要向业务部门进行精细成本展示或分摊的组织而言,CUR 至关重要。

# Create CUR definition (deliver to S3)
aws cur put-report-definition \
  --report-definition '{
    "ReportName": "my-cost-report",
    "TimeUnit": "HOURLY",
    "Format": "Parquet",
    "Compression": "Parquet",
    "AdditionalSchemaElements": ["RESOURCES"],
    "S3Bucket": "my-cur-bucket",
    "S3Prefix": "reports",
    "S3Region": "us-east-1",
    "ReportVersioning": "OVERWRITE_REPORT",
    "IncludeResourceIds": true
  }'

# Query with Athena:
# SELECT resource_id, sum(line_item_blended_cost)
# FROM cur_table
# WHERE resource_tags_user_project = 'OrderService'
# GROUP BY resource_id

用于逻辑分组的成本类别

AWS Cost Categories 允许您使用规则将成本和使用量映射到有意义的业务类别。例如,您可以创建名为生产环境的类别,将所有标记为 Environment=Production 的资源以及特定账户 ID 纳入其中。类别会在 Cost Explorer 中作为筛选维度显示,即使标签不一致,也可以轻松查看生产环境与开发环境的总成本。Cost Categories 支持基于规则的映射,因此可以弥补历史上不完整或不一致的标签信息。

# Create a Cost Category
aws ce create-cost-category-definition \
  --name 'EnvironmentType' \
  --rules '[{
    "Value": "Production",
    "Rule": {"Tags":{"Key":"Environment","Values":["prod","production","PROD"]}}
  },{
    "Value": "Development",
    "Rule": {"Tags":{"Key":"Environment","Values":["dev","development","test"]}}
  }]' \
  --default-value 'Untagged'

# Use in Cost Explorer to filter:
# Filter: CostCategory = Production
# See all production costs regardless of tag variations

构建 FinOps 实践

FinOps(云财务运营)是一种将云成本作为团队责任进行管理的实践,而不仅仅是财务部门的职能。关键实践包括:可见性——每个团队都可以在 Cost Explorer 中查看自己的支出;责任制——团队负责自己的成本分配和预算;优化——定期进行资源规格调整以及 RI/SP 审查;预测——使用 Cost Explorer 预测未来支出。在 AWS 上实施 FinOps,可以在 Organizations 下创建按团队划分的 AWS 账户、按团队划分的预算和标签 policy,并与工程负责人进行每月成本审查。

# FinOps implementation checklist:
# [ ] Activate cost allocation tags in Billing console
# [ ] Enable Cost Anomaly Detection
# [ ] Create monthly budgets per team/account
# [ ] Set up Budget Actions for dev accounts
# [ ] Enable CUR delivery to S3
# [ ] Create Athena tables over CUR for ad-hoc queries
# [ ] Build QuickSight dashboard for leadership
# [ ] Schedule monthly cost review meetings
# [ ] Track month-over-month cost per unit of work

成本预测与规划

Cost Explorer 预测使用历史使用模式预测未来最多 12 个月的成本。这有助于预算规划和容量规划。对于没有历史数据的新工作负载,请使用 AWS Pricing Calculator 在部署前估算成本。请始终在预测中增加 20% 至 30% 的缓冲,以应对意外增长或新增服务。对于成本结构复杂的组织,可以考虑使用 AWS Budgets** 报告,自动生成每月成本摘要并发送到电子邮件或 S3。

# Get 3-month cost forecast
aws ce get-cost-forecast \
  --time-period Start=2026-07-01,End=2026-09-30 \
  --metric BLENDED_COST \
  --granularity MONTHLY \
  --filter '{
    "Dimensions": {
      "Key": "SERVICE",
      "Values": ["Amazon EC2"]
    }
  }' \
  --query 'ForecastResultsByTime[].{Month:TimePeriod.Start,Forecast:MeanValue,Lower:PredictionIntervalLowerBound,Upper:PredictionIntervalUpperBound}'

快速检查

测试您对本课 AWS Solutions Architect (SAA-C03) 概念的理解。

课程回顾

在本课中,您学习了:Cost Explorer 可通过成本异常检测分析历史支出和预测支出;AWS Budgets 会在超出阈值时提供主动提醒并自动执行预算操作;成本分配标签可通过将成本归属到团队、项目和环境来实现成本展示和成本分摊。AWS Organizations 中的标签策略可强制统一标签规范。接下来,我们将探讨 S3 和数据传输成本优化技术。

常见问题解答

「Cost Explorer、预算与成本分配标签」课时是免费的吗?

是的 — 「Cost Explorer、预算与成本分配标签」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「Cost Explorer、预算与成本分配标签」这节课中我会学到什么?

在 Cost Explorer 中分析支出趋势,在超支前设置预算提醒,并为资源添加标签以生成分摊和回 charge 报告 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「Cost Explorer、预算与成本分配标签」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 调整资源规格与 Compute Optimizer
  2. 预留实例、Savings Plans 与 Spot
  3. Cost Explorer、预算与成本分配标签
  4. S3 与数据传输成本优化
← 返回 Cloud & IT Cert Prep