RDS gp3 with iops at or below the included 3,000 baseline (provisions nothing)
What it checks
RDS gp3 with iops at or below the included 3,000 baseline (provisions nothing)
Where it applies
Terraform: aws_db_instance
CloudFormation: AWS::RDS::DBInstance
How to fix it
- Review the engine and allocated storage before changing IOPS. SQL Server permits 3,000-80,000 IOPS: 3,000 is valid and does not justify removal. The Amazon RDS gp3 guide gives a 400 GiB threshold for Db2/MariaDB/MySQL/PostgreSQL and 200 GiB for Oracle. At or above those thresholds, the baseline and minimum provisionable IOPS are 12,000; for a value at or below 3,000, review omission where the source dialect permits it or choose a measured requirement within 12,000-64,000. Below those thresholds the RDS table says Not applicable for provisioned IOPS; follow the dialect checks below rather than applying a universal deletion.
- For Terraform, check the pinned AWS provider version and its per-engine threshold: the provider documentation prohibits iops below that threshold. Remove an explicitly authored below-threshold value only after confirming that constraint for the target engine and provider; preserve other expressions and validate the plan. Db2 needs extra review: the RDS guide threshold is 400 GiB, while the fetched provider implementation compares against 100 GiB. Terraform Db2 acceptance in the 100-399 GiB band is not established by this finding.
- For CloudFormation, review the target engine/size and validate the template before choosing omission or a measured Iops value. The DBInstance StorageType reference says gp3 requires Iops, while the RDS gp3 table says provisioned IOPS are Not applicable below the engine's threshold. These documents conflict in that case; this finding does not establish removal or retention as the safe choice. Preserve parameter expressions and all unrelated properties. Additional provisioned performance is billed; consult current RDS pricing and workload measurements before resizing.
Frameworks
- AWS Well-Architected COST.6
These mappings are advisory, not an attestation of compliance.