Amazon Elastic Block Store (EBS) provides various volume types optimized for use cases. Changing the volume type can optimize performance, reduce costs, or adapt to changing requirements. This post will walk you through converting one EBS volume type to another on an EC2 instance.

Why Change EBS Volume Types?

Different EBS volume types cater to different performance and cost requirements:

  1. General Purpose SSD (gp2, gp3): Balances price and performance for various workloads.
  2. Provisioned IOPS SSD (io1, io2): High-performance SSD volumes for mission-critical low-latency or high-throughput workloads.
  3. Throughput Optimized HDD (st1): Low-cost HDD volume designed for frequently accessed, throughput-intensive workloads.
  4. Cold HDD (sc1): Lowest-cost HDD volume designed for less frequently accessed workloads.

Changing the volume type allows you to optimize based on your specific needs.

Steps to Convert an EBS Volume Type

Prerequisites

  • An AWS account with necessary permissions.
  • An EC2 instance with the EBS volume attached.

Step 1: Identify the Volume

First, identify the EBS volume you want to change. You can do this via the AWS Management Console or AWS CLI.

Using AWS Management Console

  1. Navigate to the EC2 Dashboard.
  2. Select “Volumes” under the “Elastic Block Store” section.
  3. Locate the volume you wish to change and note its Volume ID.

Using AWS CLI

aws ec2 describe-volumes –filters Name=attachment.instance-id,Values=

Step 2: Create a Snapshot of the Volume

Before changing the volume type, create a snapshot to avoid data loss.

Using AWS Management Console

  1. Select the volume.
  2. Click on “Actions” and select “Create Snapshot.”
  3. Provide a description and click “Create Snapshot.”

Using AWS CLI

aws ec2 create-snapshot –volume-id –description “Snapshot before changing volume type”

Step 3: Create a New Volume from the Snapshot

Now, create a new volume from the snapshot with the desired volume type.

Using AWS Management Console

  1. Go to the “Snapshots” section.
  2. Select the snapshot you just created.
  3. Click on “Actions” and select “Create Volume.”
  4. Choose the new volume type (e.g., gp3, io2).
  5. Select the same Availability Zone as your EC2 instance and click “Create Volume.”

Using AWS CLI

aws ec2 create-volume –snapshot-id –volume-type –availability-zone

Step 4: Detach the Old Volume and Attach the New Volume

Using AWS Management Console

  1. Go to the “Volumes” section.
  2. Select the original volume and click “Actions” > “Detach Volume.”
  3. Once detached, select the new volume and click “Actions” > “Attach Volume.”
  4. Attach it to the same instance and device name as the old volume.

Using AWS CLI

aws ec2 detach-volume –volume-id

aws ec2 attach-volume –volume-id –instance-id –device

Step 5: Verify the New Volume

Log in to your EC2 instance and ensure the new volume is properly attached and the data is intact.

Check the mounted filesystems and verify that everything is working as expected.

Conclusion

Converting EBS volume types can help you adapt to changing performance and cost requirements. By following the steps above, you can safely change the volume type of your EBS volumes.