Skip to content

AWS Savings Plans Inventory Pipeline #38

@JGrubb

Description

@JGrubb

Summary

Create a DLT pipeline to ingest AWS Savings Plans inventory data to provide commitment tracking alongside billing data.

Background

Savings Plans are AWS's preferred commitment mechanism (replacing Reserved Instances). Understanding active commitments is crucial for cost optimization analysis when combined with actual usage data from CUR.

Scope

Data Sources: Savings Plans inventory (current state)
Granularity: Daily pipeline runs (commitments 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

Primary APIs (boto3.client('savingsplans'))

Implementation Plan

Phase 1: Core Pipeline

  • Create aws_savings_plans_source() DLT source
  • Implement basic inventory collection using API response payloads
  • Create tables in aws_commitments schema
  • Add CLI command: ./finops aws import-savings-plans

Phase 2: Data Enrichment

  • Add offering details and pricing rates
  • Implement state tracking (commitments rarely change)
  • Create unified view with billing data

Success Criteria

  • Daily pipeline ingests current Savings Plans inventory
  • Data structure follows AWS API response payloads
  • CLI integration matches existing AWS pipeline UX
  • Tables ready for joining with CUR data analysis

Related Work

Dependencies

  • Existing AWS pipeline infrastructure
  • DLT and DuckDB setup

Target Phase: Phase 5 (Production Features)

Metadata

Metadata

Assignees

No one assigned

    Labels

    awsAWS-related features and integrationsenhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions