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.3.0.tar.gz (14.6 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.3.0-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for awscostexport-1.3.0.tar.gz
Algorithm Hash digest
SHA256 5deef404ab138eaa2849669f68f6c452776f75fea1d5300852ea8dfc199041e5
MD5 a4435064bee16db2f9ce2270f4ca54cd
BLAKE2b-256 dd7385612c671d184fcd080da040accbb665c199ff5350fc213582375b70f35c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: awscostexport-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 14.1 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41a7e5a2024484cec1871f7154fc5940d21ac8596313c6b14afef735d996cee1
MD5 bff98db2a3c6a9719d5d38e7b380c031
BLAKE2b-256 656c46299c69e1ff6b1cb5b9c5ca8e0b474673962e690cca2e2a8b4ae189e414

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