Skip to main content

RDS gp2 to gp3 Storage Migration Tutorial

Overview

This tutorial demonstrates how to migrate an Amazon RDS instance from gp2 to gp3 storage to achieve 20% cost savings while improving performance. The migration is free, non-disruptive, and can be completed in minutes through the AWS Console.

Prerequisites

  • An AWS account with access to the RDS console
  • An existing RDS instance using gp2 storage
  • Appropriate IAM permissions to modify RDS instances

Cost Impact

Migrating from gp2 to gp3 provides:

  • 20% cost savings: gp2 costs $0.115/GB-month vs gp3 at $0.092/GB-month
  • Better baseline performance: gp3 provides consistent 3,000 IOPS vs gp2's burstable IOPS
  • Example savings:
    • 100 GB database: $2.30/month ($27.60/year)
    • 500 GB database: $11.50/month ($138/year)
    • 1 TB database: $23/month ($276/year)

Step 1: Navigate to RDS Console

Navigate to the RDS console in the us-east-1 region: https://us-east-1.console.aws.amazon.com/rds/home?region=us-east-1#databases:

RDS Instance List

Step 2: Locate and Select Your RDS Instance

Click on the database instance you want to migrate (in this example, remediation-rds-gp2-to-gp3-db) to view its details.

Step 3: Verify Current Storage Type

Navigate to the Configuration tab to view the current storage settings. In the Primary storage section, you'll see:

  • Storage type: General Purpose SSD (gp2)
  • Storage cost: $0.115/GB-month

Current Storage - gp2

Step 4: Initiate Storage Modification

Click the Modify button in the top right corner to begin changing the storage configuration.

Step 5: Change Storage Type to gp3

Scroll to the Storage section and click on the Storage type dropdown. Select General Purpose SSD (gp3).

Select gp3 Storage

This change will:

  • Reduce storage costs by 20% (from $0.115 to $0.092 per GB-month)
  • Provide better baseline performance (3,000 IOPS consistently vs gp2's burstable IOPS)

Step 6: Review gp3 Storage Settings

After selecting gp3, you'll see the default gp3 settings:

  • Provisioned IOPS: 3,000 IOPS (baseline included at no extra cost)
  • Storage throughput: 125 MiBps (baseline included at no extra cost)

gp3 Settings

For most workloads, the baseline performance is sufficient. You can increase IOPS or throughput if needed by allocating more than 400 GiB of storage.

Step 7: Continue to Summary

Scroll to the bottom of the page and click Continue to proceed to the summary page.

Step 8: Apply Immediately

On the summary page, you'll see a table showing the storage type change from gp2 to gp3.

Select Apply immediately to perform the storage modification now. This will:

  • Apply the change as soon as possible (typically within minutes)
  • Cause a brief I/O pause (typically under 1 minute) during conversion
  • Keep the database available during the process

Apply Immediately

Alternatively, you can select "Apply during the next maintenance window" to schedule the change.

Step 9: Confirm Modification

Review the summary showing:

  • Attribute: Storage type
  • Current value: General Purpose SSD (gp2)
  • New value: General Purpose SSD (gp3)

Click Modify DB instance to confirm and initiate the modification.

Confirm Modification

Step 10: Monitor Modification Progress

After confirming, you'll be returned to the Databases list. A notification banner will appear indicating that the modification is in progress:

"Modifying remediation-rds-gp2-to-gp3-db. This process might take a few minutes."

Modification In Progress

The database status will change to Modifying. The storage conversion happens in the background and typically completes within minutes. Your database remains available during this process, though there may be a brief I/O pause.

Step 11: Verify Successful Migration

Once the status returns to Available, navigate back to the database details and click on the Configuration tab. In the Primary storage section, verify:

  • Storage type: General Purpose SSD (gp3)
  • Provisioned IOPS: 3,000 IOPS (or your configured value)
  • Storage throughput: 125 MiBps (or your configured value)

Your RDS instance is now using gp3 storage with 20% lower costs and better baseline performance.

Alternative Approaches

AWS CLI

For automated or scripted migrations, use the AWS CLI:

aws rds modify-db-instance \
--db-instance-identifier your-db-instance-name \
--storage-type gp3 \
--apply-immediately \
--region us-east-1

Infrastructure as Code

CloudFormation:

Resources:
MyDatabase:
Type: AWS::RDS::DBInstance
Properties:
StorageType: gp3
# ... other properties

Terraform:

resource "aws_db_instance" "default" {
storage_type = "gp3"
# ... other properties
}

Bulk Migration

For migrating multiple RDS instances, create a script:

#!/bin/bash
# Get all gp2 instances
aws rds describe-db-instances --query 'DBInstances[?StorageType==`gp2`].DBInstanceIdentifier' --output text | \
while read instance; do
echo "Migrating $instance to gp3..."
aws rds modify-db-instance \
--db-instance-identifier "$instance" \
--storage-type gp3 \
--apply-immediately
done

Summary

Migrating from gp2 to gp3 storage is a straightforward process that provides immediate cost savings and performance improvements. The migration is:

  • Free: No migration fees
  • Non-disruptive: Database remains available
  • Quick: Typically completes in minutes
  • Reversible: Can be changed back if needed

For a 100 GB database, you'll save $2.30/month ($27.60/year), and the savings scale proportionally with larger databases.