Amazon QuickSight resources to be used along with CUDOS Cloud Intelligence Dashboards to analyze AWS Cost and Usage Report (CUR) Data Exports.
This stack must be installed after CUDOS has been successfully deployed. It depends on automated CUR updates and ingestion from the Cloud Intelligence Dashboards and should be installed in the same account.
Users should follow the directions in the AWS CloudFormation User Guide to create a stack from the CloudFormation console using the cur_resource_analyzer_cloudformation.json file in this repository.
Parameter | Description | Default |
---|---|---|
CurDbName |
The name of the CUR database. This information can be found in Athena. | "cur" |
CurTableName |
The name of the CUR table. This information can be found in Athena. | "customer_all" |
CurAppNameCol |
The name of the CUR column containing application name tag info. This information can be found in Athena. Leave asproduct_servicecode if app-level tagging is unavailable. |
"product_servicecode" |
Note: See the following AWS Well-Architected Cost Optimization Workshop for help with Cost and Usage Analysis - SQL in Athena.
- Creates a QuickSight data source connected to Athena
Creates a dataset with three main SQL queries:
account_map
: Maps account IDs to account names and parent accountsresource_analyzer
: Main query extracting cost and usage dataapp_first_seen
: Tracks when applications were first seen in billing data
Creates a QuickSight analysis with two sheets:
Shows cost distribution by application. Includes visualizations for:
- Costs by date first seen
- 30-day costs by application
- 30-day costs by group
- Cost details in a pivot table
- Application dates
- Number of apps by date first seen
Shows detailed AWS product and resource information. Includes visualizations for:
- 30-day costs by operation
- 30-day costs by product family
- AWS product/resource costs in a detailed pivot table
- Interactive filtering capabilities
- Parameter controls for:
- Application
- Operation
- Product family
- Account group
- Date range filtering
- Drill-down capabilities
- Currency formatting
- Customized layouts and visual settings
Account Groups
Groups in the analysis refer to account groups that are split by grouping linked accounts that have similar names. The groupings depend on the presence of basic string delimeters and use the following QuickSight function:toLower(split(replace({account_name},':','-'),'-',1))
.
QuickSight Permissions
QuickSight users will need to be granted access to the newly created assets. Directions for this process can be found in the Amazon Quicksight User Guide - Managing assets section.
This code was created for educational purposes and should be analyzed, modified and tested in your own environment prior to any production use.