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 default 12 months of cost data
awscostexport

# Export last 3 months
awscostexport --months 3

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

# Get help
awscostexport --help

# Use temporary credentials
awscostexport --access-key-id AKIA... --secret-access-key xxx --session-token xxx

# Filter by accounts
awscostexport --include-accounts 123456789012,234567890123
awscostexport --exclude-accounts 999999999999

# Use config file
awscostexport --config config.yaml

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": "*"
    }
  ]
}

Configuration File

Create a config.yaml file to store credentials and filters:

# AWS Credentials (optional)
credentials:
  access_key_id: AKIAXXXXXXXXXXXXXXXX
  secret_access_key: YYYYYYYYYYYYYYYYYYYY
  session_token: ZZZZZZZZZZZZZZZZZZZZ  # optional

# Account Filters (optional)
filters:
  include_accounts:
    - "123456789012"
    - "234567890123"
  exclude_accounts:
    - "345678901234"

## 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.2.tar.gz (15.0 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.2-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: awscostexport-1.3.2.tar.gz
  • Upload date:
  • Size: 15.0 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.2.tar.gz
Algorithm Hash digest
SHA256 b52d4a4b3efc89bb8bcf4d157d7a77e1a62b5e902b195e1ecd2f828a351e10be
MD5 f1019e3b6a0cbb431b340d610664c29c
BLAKE2b-256 4b27d78d164cb1455fc8969fade2e3630518e7b99c9a75affe1b22362ed7d943

See more details on using hashes here.

File details

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

File metadata

  • Download URL: awscostexport-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 14.4 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 caf12437677d2d1d0e83c7960bf5f9832085fe54336187476564da538d324400
MD5 e670e03e20115275100632e6f1860efb
BLAKE2b-256 88331a7edba93e209b78d2ab332bad1def68111bb71c8ffcb78e24720dcb2009

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