Summary
Create a DLT pipeline to ingest AWS Reserved Instances inventory data across EC2, RDS, and other services to provide comprehensive commitment tracking.
Background
While AWS is transitioning to Savings Plans, Reserved Instances remain active and important for cost analysis. Many organizations have significant RI commitments that need tracking alongside billing data.
Scope
Data Sources: Reserved Instances inventory (current state)
Starting Point: EC2 Reserved Instances, expand to RDS/ElastiCache/etc.
Granularity: Daily pipeline runs (reservations change infrequently)
Schema: Separate schema from aws_billing (e.g., aws_commitments)
Relationships: Link to CUR data via account IDs and resource identifiers
AWS APIs to Integrate
EC2 Reserved Instances (boto3.client('ec2'))
Future Expansion
- RDS:
boto3.client('rds').describe_reserved_db_instances()
- ElastiCache:
boto3.client('elasticache').describe_reserved_cache_nodes()
- Redshift:
boto3.client('redshift').describe_reserved_nodes()
Implementation Plan
Phase 1: EC2 Reserved Instances
Phase 2: Multi-Service Expansion
Phase 3: Data Enrichment
Success Criteria
Related Work
Dependencies
- Existing AWS pipeline infrastructure
- DLT and DuckDB setup
Target Phase: Phase 5 (Production Features)
Summary
Create a DLT pipeline to ingest AWS Reserved Instances inventory data across EC2, RDS, and other services to provide comprehensive commitment tracking.
Background
While AWS is transitioning to Savings Plans, Reserved Instances remain active and important for cost analysis. Many organizations have significant RI commitments that need tracking alongside billing data.
Scope
Data Sources: Reserved Instances inventory (current state)
Starting Point: EC2 Reserved Instances, expand to RDS/ElastiCache/etc.
Granularity: Daily pipeline runs (reservations change infrequently)
Schema: Separate schema from aws_billing (e.g.,
aws_commitments)Relationships: Link to CUR data via account IDs and resource identifiers
AWS APIs to Integrate
EC2 Reserved Instances (
boto3.client('ec2'))describe_reserved_instances()- Active reservationsdescribe_reserved_instances_offerings()- Available offeringsdescribe_reserved_instances_modifications()- Modification historyFuture Expansion
boto3.client('rds').describe_reserved_db_instances()boto3.client('elasticache').describe_reserved_cache_nodes()boto3.client('redshift').describe_reserved_nodes()Implementation Plan
Phase 1: EC2 Reserved Instances
aws_reserved_instances_source()DLT sourceaws_commitmentsschema./finops aws import-reserved-instancesPhase 2: Multi-Service Expansion
Phase 3: Data Enrichment
Success Criteria
Related Work
Dependencies
Target Phase: Phase 5 (Production Features)