Difficulty: Medium
Description
We identified Global Secondary Indexes (GSIs) in your DynamoDB tables that appear to be unused based on their read activity metrics. Unused GSIs continue to incur costs for storage and write operations even when not being accessed. Deleting these unused GSIs provides immediate cost savings.
Selection Criteria
The GSI has 0 read operations (
ConsumedReadCapacityUnits) over the last 30 days.The GSI has a meaningful associated cost (minimum threshold: $10/year).
Expected Saving
100% of the GSI's annualized storage and write costs, calculated as follows:
Storage savings: 100% of the storage allocated to the GSI (based on projected attributes size)
Write savings: 100% of write capacity costs
Provisioned mode: based on
ProvisionedWriteCapacityUnitsmetricsOn-Demand mode: based on
ConsumedWriteCapacity
Saving varies depending on the GSI's projected attribute set, table size, and capacity mode.
Operational Impact
Downtime (table): None — deleting a GSI does not interrupt read or write operations on the parent table. Other indexes remain unaffected during deletion.
Breaking change (application): YES — CRITICAL ⚠️
Any application query that uses this GSI will immediately return an error after deletion. It is mandatory to validate with the development team that no production code references this GSI before proceeding. This must be an explicit customer approval step.
Deletion is permanent: A deleted GSI cannot be restored. Recreating it requires a full reindex of the table, which consumes significant WCU and time depending on table size.
AWS constraint: Only one GSI can be deleted per UpdateTable API call.
