Study guide
Technical reference and lesson notes
Purpose of This Lesson
AWS provides several tools for analyzing spending, producing detailed billing data, and retrieving service prices programmatically. The key exam distinction is knowing which tool is intended for interactive cost analysis, detailed data export, or automated price lookup.
Key Concepts
AWS Cost Explorer
AWS Cost Explorer is an interactive cost-analysis tool that displays spending and usage through charts, graphs, and tables. It helps organizations investigate trends and identify the sources of AWS charges.
Typical analysis dimensions include:
- AWS service
- Region and Availability Zone, where the available billing or usage data supports that dimension
- Linked account in an AWS Organizations environment
- Usage type
- Purchase option, such as On-Demand or Reserved Instances
- Tags and cost categories, when configured
- Time period and forecasted spend
Cost Explorer is useful for questions such as:
- Which AWS services account for most of the monthly bill?
- Which linked account has experienced the largest increase in spend?
- Is usage growing steadily or showing a seasonal pattern?
- How is expected spend likely to change over the forecast period?
It is primarily an exploration and visualization tool rather than a raw billing-data pipeline.
AWS Cost and Usage Report (CUR)
The AWS Cost and Usage Report provides detailed billing and usage data and delivers it to an Amazon S3 bucket. It is appropriate when an organization needs to retain, query, or transform granular billing data outside the Cost Management console.
Depending on the report configuration, the data can include dimensions such as:
- Account
- Service and product
- Region
- Usage type and operation
- Resource identifiers, where supported
- Line-item charges
- Discounts and credits
- Reservation and Savings Plans information
- User-defined cost allocation tags
A CUR-based architecture commonly uses Amazon S3 as the data lake and may add AWS Glue, Amazon Athena, Amazon Redshift, or Amazon QuickSight for cataloging, querying, dashboards, and chargeback reporting.
The report can be configured for periodic delivery and can be refreshed multiple times per day. Organizations should treat CUR as detailed billing data for analytics and governance, not as a real-time monitoring stream.
AWS Price List API
The AWS Price List API allows applications to retrieve AWS pricing information programmatically. It is useful for building internal calculators, validating architecture estimates, or detecting changes in published prices.
The API is commonly discussed as two interfaces:
- Query API: Retrieves filtered pricing information for specified products and attributes.
- Bulk API: Provides larger pricing files for download and offline processing.
Pricing data is service- and dimension-specific. A request may need to identify attributes such as Region, instance type, operating system, tenancy, or purchase model. Pricing responses can be complex, so applications should parse product attributes and terms rather than assume that one SKU represents an entire service price.
Price List API data describes published prices. It should not be confused with the account’s actual billed cost, which can be affected by discounts, credits, commitments, taxes, negotiated pricing, and usage behavior.
Applications can combine price retrieval with Amazon SNS or another notification mechanism to alert teams when relevant pricing data changes.
AWS Organizations and Linked-Account Cost Analysis
In a consolidated AWS Organizations environment, management-account users with suitable permissions can analyze spending across linked accounts. Cost Explorer can help compare account-level usage, while CUR can provide detailed records for centralized financial reporting.
Access to billing data remains subject to IAM permissions, billing-console access, and organization settings. A user being an administrator in a member account does not automatically grant access to organization-wide billing information.
Exam-Relevant Takeaways
- Use Cost Explorer for interactive visualization, trend analysis, filtering, and forecasting of AWS costs and usage.
- Use AWS Cost and Usage Reports when detailed, recurring billing records must be delivered to Amazon S3 for analysis or long-term retention.
- Use Athena, Glue, Redshift, or QuickSight with CUR when building custom cost analytics or chargeback dashboards.
- Use the AWS Price List API when an application needs published AWS prices programmatically.
- Cost Explorer answers “what are we spending and how is it trending?”
- CUR answers “what are the detailed billing line items and how can we analyze them ourselves?”
- The Price List API answers “what published price applies to this service and configuration?”
- Actual charges may differ from public list prices because of discounts, credits, commitments, taxes, and account-specific pricing.
- In AWS Organizations, linked-account cost analysis is a major use case for centralized cost governance.
Architecture Decision Guide
| Requirement | Recommended tool or design | Why |
|---|---|---|
| Quickly investigate a monthly cost increase | Cost Explorer | Interactive charts, filters, grouping, and trends |
| Forecast likely future spend | Cost Explorer | Provides forecast views based on historical usage and cost patterns |
| Build a centralized cost data lake | CUR delivered to Amazon S3 | Provides detailed billing and usage records for downstream processing |
| Run SQL queries against billing data | CUR + S3 + Athena | Serverless querying without moving the report into a database |
| Create executive or departmental cost dashboards | CUR + QuickSight, or Cost Explorer | CUR supports customized reporting; Cost Explorer supports built-in analysis |
| Allocate costs to teams or applications | CUR with cost allocation tags and account structure | Provides dimensions for chargeback or showback reporting |
| Retrieve current published prices in an estimator | Price List API | Supports programmatic price lookup |
| Download broad pricing catalogs for offline processing | Price List bulk interface | Better suited to large-scale or periodic price ingestion |
| Notify teams when pricing data changes | Price List API or bulk data + comparison logic + SNS | Enables custom price-monitoring automation |
Common Exam Traps
- Confusing Cost Explorer with CUR: Cost Explorer is a visual analysis tool. CUR is a detailed report delivered to S3.
- Confusing billing data with price data: CUR reflects usage and charges. The Price List API provides published prices and does not calculate the account’s final invoice.
- Assuming CUR is real time: Billing reports are delivered periodically and are not intended for second-by-second spend detection.
- Assuming every resource appears in CUR: Resource-level detail depends on the service and report configuration. Not every AWS charge maps cleanly to an individual resource.
- Ignoring tags: Cost allocation tags generally must be activated before they can be used consistently for cost reporting.
- Assuming member accounts automatically see all organization costs: Billing visibility requires the appropriate organization, billing, and IAM permissions.
- Using the Price List API for historical spend: Use Cost Explorer or CUR for actual usage and charges.
- Treating list price as final price: Savings Plans, Reserved Instances, enterprise agreements, credits, taxes, and other adjustments can change the final amount billed.
Real-World Engineer Notes
- Establish a dedicated central S3 bucket for CUR data and protect it with restrictive bucket policies, encryption, versioning, and lifecycle rules.
- Partition or catalog CUR data carefully when using Athena so queries remain efficient and inexpensive.
- Standardize account names, cost allocation tags, and cost categories before building chargeback reports. Poor tagging produces poor financial attribution.
- Use Cost Explorer for investigation and CUR for repeatable reporting. A dashboard built directly from ad hoc console views is difficult to audit or automate.
- Separate price-change monitoring from budget monitoring. The Price List API detects changes in published pricing, while AWS Budgets and billing alerts address account spending thresholds.
- Forecasts are estimates based on available historical behavior. They should not be treated as guarantees, especially after migrations, commitment purchases, or major workload changes.
Quick Reference Summary
- Cost Explorer: Analyze and visualize historical cost and usage; identify trends, services, accounts, and other dimensions; review forecasts.
- Cost and Usage Report: Export granular billing and usage records to Amazon S3 for custom analytics, retention, chargeback, and dashboards.
- Price List API: Query or download AWS’s published pricing data for calculators and automation.
- AWS Organizations: Provides the multi-account structure in which centralized cost analysis across linked accounts is commonly performed.
- SNS integration: Can be used by custom automation to notify subscribers about pricing changes or cost-analysis results.
Flashcards
- Q: Which AWS tool provides interactive charts for analyzing cost and usage trends?
A: AWS Cost Explorer.
- Q: Where is the AWS Cost and Usage Report delivered?
A: An Amazon S3 bucket.
- Q: Which tool should be used to build a custom cost data lake?
A: CUR delivered to Amazon S3, optionally queried with Athena or processed with Glue.
- Q: Which AWS interface provides programmatic access to published service prices?
A: The AWS Price List API.
- Q: What is the difference between the Price List API and CUR?
A: The Price List API provides published pricing data; CUR provides detailed account usage and billing records.
- Q: Can the Price List API determine an account’s final invoice?
A: No. Discounts, credits, commitments, taxes, and actual usage affect final charges.
- Q: What AWS feature helps Cost Explorer analyze spending across multiple accounts?
A: AWS Organizations with linked accounts and appropriate billing permissions.
- Q: Which report dimension can support application or department chargeback?
A: Activated cost allocation tags, account identifiers, or configured cost categories.
- Q: Is CUR intended to provide real-time spend monitoring?
A: No. It is a periodically delivered billing and usage report.
- Q: Which tool is most appropriate for a user investigating why this month’s bill increased?
A: Cost Explorer for initial interactive analysis.
Practice Questions
Question 1
A company wants analysts to run SQL queries against detailed hourly billing records and create a departmental chargeback dashboard. The solution should retain the data centrally and avoid maintaining database servers. Which design best meets the requirement?
A. Use Cost Explorer and export screenshots monthly.
B. Use the Price List API and store the results in DynamoDB.
C. Deliver the Cost and Usage Report to Amazon S3, query it with Athena, and visualize results with QuickSight.
D. Use AWS Budgets to generate the chargeback data.
Correct answer: C
Explanation: CUR provides detailed billing records in S3. Athena can query the data serverlessly, and QuickSight can present customized dashboards. Cost Explorer and AWS Budgets do not provide the same custom, detailed reporting pipeline.
Question 2
An engineering portal must calculate the current published price for an EC2 configuration selected by a user. It must retrieve pricing programmatically based on Region, operating system, and instance type. Which service should the application use?
A. AWS Cost Explorer API
B. AWS Price List API
C. AWS Cost and Usage Report
D. AWS Budgets
Correct answer: B
Explanation: The Price List API is designed to retrieve published AWS pricing based on product attributes. Cost Explorer and CUR focus on account usage and charges rather than general price lookup.
Question 3
A finance analyst needs to determine which linked account caused a recent increase in consolidated AWS spending. The analyst wants to filter and graph the data directly in the AWS console. Which tool is the best first choice?
A. Cost Explorer
B. Amazon CloudWatch Logs
C. Price List bulk data
D. AWS Migration Hub
Correct answer: A
Explanation: Cost Explorer supports interactive filtering and grouping of cost and usage data, including analysis by linked account in an AWS Organizations environment when permissions and billing configuration allow it.
Question 4
A company compares a price retrieved from the Price List API with its final invoice and finds that the amounts differ. Which explanation is most likely?
A. The Price List API contains only CloudWatch metrics.
B. CUR always reports prices before usage discounts.
C. The invoice can include discounts, credits, commitments, taxes, and account-specific pricing.
D. Cost Explorer changes the published price returned by the API.
Correct answer: C
Explanation: The Price List API exposes published pricing. The final bill reflects the account’s actual usage and applicable financial adjustments, which can differ substantially from public list prices.
Question 5
A company wants an automated notification when AWS changes the published price of a service. Which architecture is appropriate?
A. Periodically retrieve pricing through the Price List API or bulk pricing data, compare it with the previous version, and publish changes through SNS.
B. Enable CloudTrail data events for the AWS billing console.
C. Query Cost Explorer every second and treat all usage changes as price changes.
D. Use an S3 lifecycle rule to detect pricing changes.
Correct answer: A
Explanation: The Price List API or bulk pricing files provide the source pricing data. Custom comparison logic can detect changes, and Amazon SNS can distribute notifications. Cost Explorer reflects spending and usage, not necessarily a change in list price.