ce-get_cost_and_usage_with_resources
Retrieve detailed AWS cost and usage data with individual resource-level granularity for EC2 instances, RDS databases, and S3 buckets to enable cost allocation, rightsizing analysis, and optimization opportunities.
Instructions
Retrieve detailed AWS cost and usage data with individual resource-level granularity and identification.
This tool provides the most granular cost analysis available, showing costs for individual AWS resources
such as specific EC2 instances, RDS databases, and S3 buckets. Essential for detailed cost allocation,
rightsizing analysis, and identifying cost optimization opportunities at the resource level.
**Required Parameters:**
- profile_name (str): AWS profile name from ~/.aws/credentials
- region (str): AWS region (e.g., 'us-east-1') - Cost Explorer is global but requires region
- start (str): Start date in YYYY-MM-DD format (e.g., '2024-01-01')
- end (str): End date in YYYY-MM-DD format (e.g., '2024-01-31')
* **Note:** Maximum 14 days range for resource-level data
* Hourly granularity not supported for resource-level analysis
**Optional Parameters:**
- granularity (str): Time granularity for cost breakdown. Default: 'MONTHLY'
* 'DAILY': Day-by-day resource cost breakdown (max 14 days)
* 'MONTHLY': Month-by-month resource cost breakdown (max 14 days)
* **Note:** HOURLY not supported for resource-level data
- group_by (List[Dict[str, str]]): Grouping dimensions for resource analysis
**Resource Grouping:**
[{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}] - Group by individual resources
**Service + Resource:**
[{'Type': 'DIMENSION', 'Key': 'SERVICE'}, {'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]
**Tag-based Resource Analysis:**
[{'Type': 'TAG', 'Key': 'Name'}, {'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]
[{'Type': 'TAG', 'Key': 'Environment'}, {'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]
- metrics (List[str]): Cost metrics to retrieve. Default: ['BlendedCost']
* 'BlendedCost': Cost after applying Reserved Instance and Savings Plans discounts
* 'UnblendedCost': On-demand cost without discounts
* 'NetBlendedCost': BlendedCost minus credits and refunds
* 'NetUnblendedCost': UnblendedCost minus credits and refunds
* 'UsageQuantity': Resource usage amount (hours, GB, requests, etc.)
* 'NormalizedUsageAmount': Usage normalized to equivalent units
- filter_expression (Dict[str, Any]): Advanced filtering for targeted resource analysis
**Service Filters:**
{'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Elastic Compute Cloud - Compute']}}
**Resource Type Filters:**
{'Dimensions': {'Key': 'INSTANCE_TYPE', 'Values': ['t3.micro', 'm5.large']}}
**Tag-based Resource Filters:**
{'Tags': {'Key': 'Environment', 'Values': ['production']}}
{'Tags': {'Key': 'Owner', 'Values': ['team-a', 'team-b']}}
**Complex Resource Filters:**
{'And': [{'Dimensions': {'Key': 'SERVICE', 'Values': ['EC2']}}, {'Tags': {'Key': 'Environment', 'Values': ['production']}}]}
- next_page_token (str): Pagination token from previous response
* Essential for resource-level data due to large result sets
**Common Use Cases:**
1. **EC2 instance cost analysis:**
filter_expression={'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Elastic Compute Cloud - Compute']}}
group_by=[{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]
2. **RDS database cost breakdown:**
filter_expression={'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Relational Database Service']}}
group_by=[{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]
3. **S3 bucket cost analysis:**
filter_expression={'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Simple Storage Service']}}
group_by=[{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]
4. **Team-based resource costs:**
filter_expression={'Tags': {'Key': 'Team', 'Values': ['backend', 'frontend']}}
group_by=[{'Type': 'TAG', 'Key': 'Team'}, {'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]
5. **Environment resource breakdown:**
filter_expression={'Tags': {'Key': 'Environment', 'Values': ['production']}}
group_by=[{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]
**Response includes:** Time periods, individual resource identifiers, cost amounts,
resource metadata, and grouping dimensions for granular cost analysis.
**Important Limitations:**
- Maximum 14-day date range (AWS limitation for resource-level data)
- Large result sets require pagination
- Not all services provide resource-level cost data
- Higher API costs compared to standard cost analysis
**Best Practices:**
- Use specific service filters to reduce data volume
- Implement pagination for comprehensive analysis
- Focus on high-cost services for optimization
- Combine with tagging strategies for better insights
- Use for detailed cost allocation and chargeback reporting
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| profile_name | Yes | ||
| region | Yes | ||
| start | Yes | ||
| end | Yes | ||
| granularity | No | MONTHLY | |
| group_by | No | ||
| metrics | No | ||
| filter_expression | No | ||
| next_page_token | No |