Skip to main content

Export comprehensive AWS cost data for analysis and optimization

Project description

AWS Cost Export

Export comprehensive AWS cost data for analysis and optimization.

Installation

pip install awscostexport

Quick Start

# Export last 6 months of data (default)
awscostexport

# Export last 3 months
awscostexport --months 3

# Use specific AWS profile
awscostexport --profile prod-account

# Get help
awscostexport --help

That's it! Your data will be exported as a zip file.

What You Get

The script exports comprehensive AWS cost data:

  • Service breakdown - Top 10 services (marketplace excluded)
  • EC2 analysis - Purchase options, instance types, Savings Plans vs RIs
  • Database details - RDS engines, ElastiCache, DynamoDB configurations
  • Reservation analysis - Complete RI/SP coverage for all eligible services
  • Storage breakdown - EBS volume types (GP2, GP3, IO1)
  • Network costs - Data transfer, NAT gateways
  • Marketplace tracking - Separated from main costs
  • Optimization metrics - Coverage %, utilization, on-demand opportunities

Output: Single zip file with 10+ CSV files ready for analysis.

Prerequisites

  • Python 3.7 or later
  • AWS credentials with Cost Explorer read access

AWS Credentials

The tool uses the standard AWS credential chain:

  1. Environment variables

    export AWS_ACCESS_KEY_ID="your-access-key"
    export AWS_SECRET_ACCESS_KEY="your-secret-key"
    export AWS_SESSION_TOKEN="optional-session-token"
    
  2. AWS credentials file (~/.aws/credentials)

    [default]
    aws_access_key_id = your-access-key
    aws_secret_access_key = your-secret-key
    
    [production]
    aws_access_key_id = prod-access-key
    aws_secret_access_key = prod-secret-key
    
  3. AWS SSO

    aws sso login --profile production
    awscostexport --profile production
    
  4. IAM Instance Profile (when running on EC2)

Required IAM Permissions

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ce:Get*",
        "ce:Describe*",
        "cur:Describe*"
      ],
      "Resource": "*"
    }
  ]
}

## Output

The script creates a **zip file** containing all your cost data:

| File | Description |
|------|-------------|
| 01_service_breakdown.csv | Top 10 services by cost (excludes marketplace) |
| 02_ec2_purchase_options.csv | EC2 on-demand vs reserved vs Savings Plans |
| 02a_ec2_instance_types.csv | EC2 instance types (if EC2 in top 10) |
| 03_rds_breakdown.csv | Database configurations |
| 03a_rds_engines.csv | Database engines |
| 04_savings_status.csv | Overall Savings Plans & RI coverage metrics |
| 05_container_services.csv | ECS/EKS/Fargate data (if in top 10) |
| 06_data_transfer_nat.csv | Network costs |
| 07_ebs_volumes.csv | Storage volume types |
| 08_marketplace_spend.csv | AWS Marketplace costs (separated) |
| 09_reservation_analysis.csv | **Comprehensive RI/SP analysis for all services** |
| AWS_COST_EXPORT_SUMMARY.md | Summary report |

## Troubleshooting

**"Cannot access AWS Cost Explorer"**
- Check your IAM permissions include `ce:*` access
- Verify credentials: `aws sts get-caller-identity`
- Cost Explorer needs 24 hours after first activation

**"No data returned"**
- Verify you have AWS costs in the time period
- Default exports last 6 months of data

## Support

Email: david.schwartz@devfactory.com

## License

MIT License - See LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awscostexport-1.1.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awscostexport-1.1.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file awscostexport-1.1.0.tar.gz.

File metadata

  • Download URL: awscostexport-1.1.0.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.15

File hashes

Hashes for awscostexport-1.1.0.tar.gz
Algorithm Hash digest
SHA256 48c4b5b15ae15e3528a92cf5653bfaf65dc98eb47e8efb91ec24653918446915
MD5 db764f2df4d77d48e6fa2b54b98b4ca3
BLAKE2b-256 4911c90ec5d070435c6e8cf2ddccfab87a1f1e146f494445330f8aa337c3550d

See more details on using hashes here.

File details

Details for the file awscostexport-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: awscostexport-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.15

File hashes

Hashes for awscostexport-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b72f6cf94105ac7c5d05bbdf612d797ba293b9a0575f6498391d349c98eed48e
MD5 52c31b663f7b21dc56bfad34f906890c
BLAKE2b-256 33384d0ee0b3089cca13ee685ec81c6845e1b667c07f37f98550727f4dfafad5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page