Skip to content

How do I the change storage type from gp2 to gp3 for Amazon RDS for SQL Server instances with minimal downtime and optimal IOPS?

4 minute read
0

I want to change the storage type from gp2 to gp3 for Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server instances with minimal downtime and optimal input/output operations per second (IOPS).

Short description

When you change your General Purpose SSD storage type from gp2 to gp3, there's no downtime. You also don't need to reboot your RDS database (DB) instance. For more information, see Settings for DB instances.

After you modify a storage type, the DB instance transitions to the storage-optimization status. Latencies might increase during this period by less than 10 milliseconds. The DB instance continues to operate normally throughout the storage modification.

After you modify the DB instance, it immediately begins to use gp3 performance characteristics. 

For information about the differences between gp3 and gp2, see Comparing Amazon Elastic Block Store (Amazon EBS) volume types gp2 and gp3.

Resolution

Plan for optimal IOPS

Before you modify IOPS, analyze your current workload with Amazon CloudWatch metrics, including ReadIOPS, WriteIOPS, ReadLatency, and WriteLatency. Also, analyze your SQL Server Dynamic Management View (DMV). For more information, see sys.dm_io_virtual_file_stats on the Microsoft website.

Target read and write latencies below 5 milliseconds. To accommodate workload spikes, provision IOPS at 1.2x your peak so that you don't overprovision and incur unnecessary costs.

Note: Instance-level IOPS has limitations based on the DB instance class type. Each RDS DB instance class has a maximum supported IOPS and throughput that's defined by its Amazon EBS-optimized performance. If you provision storage IOPS beyond the instance's performance limit, then cost increases and performance doesn't improve. Before you increase provisioned IOPS, check your instance class limits.

Modify the storage type

Note: If you receive errors when you run AWS Command Line Interface (AWS CLI) commands, then see Troubleshooting errors for the AWS CLI. Also, make sure that you're using the most recent AWS CLI version.

To change the storage type from gp2 to gp3, you can use the Amazon Aurora and RDS console or the modify-db-instance AWS CLI command.

Example of the modify-db-instance command:

aws rds modify-db-instance \  
--db-instance-identifier database-1 \  
--storage-type gp3 \  
--apply-immediately  
"DBInstance":{  
"DBInstanceIdentifier": "database-1",  
"DBInstanceClass": "db.t3.xlarge",  
"Engine": "sqlserver-se",  
"DBInstanceStatus": "available",  
"MasterUsername": "admin",  
"Endpoint": {  
"Address": "database-1.cddnbefjamva.us-east-1.rds.amazonaws.com",  
"Port": 1433,  
"HostedZoneId": "Z2R2ITUGPM61AM"  
},  
"AllocatedStorage": 20,  
"InstanceCreateTime": "2025-08-19T03:25:42.905000+00:00",  
"PreferredBackupWindow": "05:17-05:47",  
"BackupRetentionPeriod": 7,  
"DBSecurityGroups": [],  
"VpcSecurityGroups": [  
{  
"VpcSecurityGroupId": "sg-0bbe2b1398eb7cd4f",  
"Status": "active"  
},

Note: After Amazon RDS begins to modify your DB instance storage, you can't submit another request to change storage size, performance, or type for 6 hours. For more information, see Modifying an Amazon RDS DB instance.

Implement best practices

When you change the storage type, implement the following best practices:

  • Confirm that your DB instance class supports the gp3 storage type in your AWS Region.
  • Before you apply changes to your production environment, create a test environment to validate the storage modification behavior.
  • Although there's no downtime, schedule your modification during low-traffic periods. When you modify a DB instance during periods of reduced activity, you minimize potential effects from increased latencies.
  • Before you modify the DB instance, make sure that you have a recent backup of the DB instance.
  • Use CloudWatch to monitor database performance before and after the change.
  • Document your rollback procedure in case you must reverse the changes.

Review modification history

You can use the Aurora and RDS console to review the modification timeline for your RDS DB instance in the Recent events table. Or, call the ModifyDBInstance API operation in AWS CloudTrail.

Example timeline:

2025-01-23 06:13:03 UTC  Finished applying modification to allocated storage  
2025-01-23 06:08:54 UTC  Applying modification to allocated storage

Note: If you have Amazon RDS SQL Server instances that have read replicas with fewer resources than the source instance, then replication might be temporarily affected.

Related Information

Why is my Amazon RDS DB instance in the storage-optimization state for a long time?

Working with storage for Amazon RDS DB instances

Working with DB instance read replicas

AWS OFFICIALUpdated 15 days ago