How-to-reduce-EBS-volume-size-in-AWS

How to reduce EBS volume size in AWS

Sometimes we attach large volumes while launching AWS EC2 instance, later to realise only that we don’t need large size and need to decrease it.

There’s no option in AWS console to perform the same but with a small trick we can achieve the same.

In this article, we’ll see detailed steps to do that. The task follow below steps.

  1. Take snapshot the current volume (let’s say it’s 9 GB for this article)
  2. Create a new smaller EBS volume (let’s say it’s 7 GB for this article)
  3. Attach the new (smaller) volume
  4. Mount the new (smaller) volume
  5. Copy data from old (larger) volume to the new (smaller) volume
  6. Detach and unmount old (larger) volume

 

In below screen, we can see that we already have volume attached to instance and size is 9 GB.

You can see that volume is mounted in a server under /mnt/Big_Volume and have some dummy files in it also.

Showing fstab entry for this volume.

NOW WE WANT TO REDUCE THE SIZE FROM 9 GB TO 7 GB.

Create another volume of 7 GB and attach it to the instance. It’s needless to say that you have to create another volume in the same region.

Attach this volume to an already running instance.

Now login into the instance and execute below command :

  • $ sudo fdisk -l

Next step is to create the filesystem. Use below command.

  • $ sudo mkfs -t xfs /dev/xvdg

Create any Directory where you want to mount this Volume. i.e. : /mnt/New_Small_Volume

Using blkid and /etc/fstab complete your mount process.

  • $ sudo blkid

Copy the UUID of xvdg and edit your /etc/fstab.

Next is to prepare the volume for mount : $ sudo mount -a

And using lsblk command we can verify our smaller volume.

Next step is to copy the date from larger volume to smaller volume.

  • $ sudo rsync -HAXxSPa /source/ /Target
  • i.e : sudo rsync -HAXxSPa /mnt/Big_Volume/ /mnt/New_Small_Volume

you can see data is available in smaller volume.

Now we need to delete the /etc/fstab entry for larger volumer and then we can detach is from console and delete it.

Make sure you delete the entry from the fstab otherwise instance will not be able to start again once it’s stopped.

Conclusion

We cannot decrease the size of EBS volume directly but we can create a new smaller volume and move the data.

Hope this article will help! Please write your suggestions/feedback in comment section.