-
Notifications
You must be signed in to change notification settings - Fork 8.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Enhancement]: aws_db_instance
- Validate whether IOPS meets gp3 baseline
#28382
Comments
Community NoteVoting for Prioritization
Volunteering to Work on This Issue
|
Hey @cdl-danielchapman 👋 Thank you for taking the time to raise this! Given the numbers you're referencing, I'm sure you're familiar with the gp3 storage baselines, but I wanted to touch on that first, in case you or anyone in the future needs the info. The error message received is because once you cross over the 400GiB mark, the baseline for IOPS is 12000, rather than 3000, so setting an That said, I think the more important bit here is why there's a difference in behavior when starting with 100 GiB of allocated storage and changing it to +400 vs starting with +400 GiB. The key point here is that the Because of this On subsequent runs of |
aws_db_instance
- Validate whether IOPS meets gp3 baseline
@justinretzolk - your explanation makes perfect sense and thank you for responding. Hopefully the enhancement can come to production, if there is anything we can do to help please reach out |
Is it possible to have an additional field called |
@justinretzolk - Your answer is very helpful. I have been looking through a lot of documentation and I cannot find the answer to the following: We can also set max_allocated_storage - In the case where allocated_storage is < 400gb, but max allocated storage is > 400gb, and we set IOPs to 3k What happens when our storage goes above 400gb? will the IOPs be scaled automatically to 12k? What will happen in subsequent TF plans? |
Terraform Core Version
v1.3.5
AWS Provider Version
v4.46.0
Affected Resource(s)
No response
Expected Behavior
Storage increased beyond 400GB and IOPS/Throughput changed to match defaults of GP4
Actual Behavior
We have an issue where if we build an RDS instance at 100GiB specifying GP3 storage then the module dynamically sets IOPS to 3000 and throughput to 125MiB as expected
However, if we change the allocated_storage to 400GiB or more and apply that the apply fails with the below error
Error: updating RDS DB Instance (pg-prod-team-gp3): operation error RDS: ModifyDBInstance, https response error StatusCode: 400, RequestID: 970841cc-a412-4147-820c-700cb17e27fd, api error InvalidParameterCombination: Invalid iops value for engine name postgres and storage type gp3: 3000
If we build an RDS instance from a 100GiB snapshot but specify 400GiB in the terraform code at initial build it does the modification as expected and increases the storage/IOPS/throughput
But if we modify it after the instance has been built it errors. Ideally if it could dynamically lookup the values for IOPS/throughput that would be great. If they've been set in the code then set them to that but if they're null or not set to use the defaults i.e <400GiB 3K IOPS/125 MiB/S or >=400GiB 12K IOPS 500MiB/s
Relevant Error/Panic Output Snippet
No response
Terraform Configuration Files
Steps to Reproduce
Build an RDS Postgres database with 100G allocated storage and GP3 as the storage type. Do not specify IOPS/throughput and this uses the defaults 3k/125Mb/s
Once built and available Increase the storage beyond 400G.
Debug Output
Error: updating RDS DB Instance (pg-prod-team-gp3): operation error RDS: ModifyDBInstance, https response error StatusCode: 400, RequestID: 970841cc-a412-4147-820c-700cb17e27fd, api error InvalidParameterCombination: Invalid iops value for engine name postgres and storage type gp3: 3000
Panic Output
No response
Important Factoids
No response
References
No response
Would you like to implement a fix?
None
The text was updated successfully, but these errors were encountered: