We hope you find this tutorial helpful. In addition to guides like this one, we provide simple cloud infrastructure for developers. Learn more →

How To Downgrade DigitalOcean Droplets

Posted Oct 22, 2014 39.1k views DigitalOcean FAQ


To downsize a Droplet's CPU, RAM, disk, or overall plan, follow the steps below.

As you create and use your Droplets, you may find that the plan you’ve chosen for any given Droplet is above your needs at this time, and downsizing is appropriate. This guide will help you accomplish this quickly and with your data intact. We do not provide this feature through our interface, as data integrity, sizing, and authentication between Droplets can be complex.


One source Droplet that you wish to downsize (noted here as

Step One – Creating a New Small Droplet

Log in to your DigitalOcean control panel and create a destination Droplet with your desired smaller size and region that you can transfer data to from your larger source Droplet. You should ensure that your OS remains the same as the locations of key files, applications, and resources must be consistent for data to move between the source Droplet and the destination Droplet correctly. If your previous droplet used one of our one-click applications, choose that application as well. Also, remember to select an SSH key or provide an updated root password.

Create Droplet Menu

We will refer to this Droplet with the IP address for the rest of this guide.

Step Two - Authorizing Your Droplet

In this step, we’ll add the SSH key generated on to the's authorized keys for root, or a sudo user.

Log into your destination Droplet at and run the following command, which generates a new SSH key. You can then install it on your source Droplet at to prepare for your data transfer.

  • ssh-keygen -t rsa

You will be asked a series of questions, during which time you can modify the folder in which SSH keys are saved, or provide a password to secure your SSH keys. Press Enter at each question to proceed without a password, and accept the default location of the SSH key files.

You may want to password protect your keys to add another layer of authentication and security as this will prevent anyone who has your SSH key file from being able to use them without your password. However, it may be cumbersome to need to authenticate in order to use your SSH key each time:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.

Once this is complete, you can copy the public SSH key to your's authorized_keys file:

  • ssh-copy-id sammy@

You should see the following output once this command runs:

The authenticity of host ' (' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '' (RSA) to the list of known hosts.
user@'s password:
Now try logging into the machine, with "ssh 'user@'", and check in:


to make sure we haven't added extra keys that you weren't expecting.

Try logging into your larger source Droplet once from your smaller destination Droplet using SSH to confirm this works without requesting a password.

Step Three - Using rsync to Copy Files

rsync is a tool that can be used to copy files between two servers. In this case, you can use it to move your files from to

Run this command from by first connecting to your Droplet with ssh:

  • ssh sammy@

Then proceed to the next command.

This is a long command, so make sure you have scrolled all the way to the right and copied the whole thing! This command uses the parameters for archive and verbose modes, which preserves symbolic links, devices, permissions and ownerships, modification times, access control lists, and extended attributes. You will also see a detailed list of transferred files, which are inclusive of folder like /var, /etc, and your home folder. The content that is excluded by this command is temporary or Droplet-specific information that your destination Droplet will already contain.

  • sudo rsync -aAXvP --exclude={/boot/,/dev/,/etc/fstab,/etc/modprobe*,/etc/modules/,/lost+found/,/etc/mtab,/etc/network*,/etc/sysconfig/ip*,/etc/sysconfig/kernel,/etc/sysconfig/network*,/lib/modules/,/media/,/mnt/,/proc/,/run/,/sys/,/tmp/,/var/lib/lxcfs/,/var/lock/} root@ /

Once you've run this rsync command, your large source Droplet information should now be migrated to your small destination Droplet. You may want to browse through your destination Droplet to ensure that the content you expect is in place and confirm that any apps or sites are able to run correctly.

(Optional) Step Four - Changing the A Record

If you currently use the DigitalOcean control panel to set an A record for your Droplet, this step will guide you through changing that record to appropriately reflect your new Droplet's IP address.

Now we need to move into the DigitalOcean control panel.
Select DNS from the left navigation menu then click inside the IP section of the A record previously configured for your large Droplet, and replace it with the IP address of your new small Droplet. Click *save, and your Droplet will now be connected to your domain name. This may take a short time to propagate, during which time you will want to leave your large Droplet running.

Create Droplet Menu

Once you have confirmed that your domain is resolving to the IP of your new Droplet, and your app, db, or service is running correctly, you can destroy your source Droplet.

DigitalOcean does not reserve IP addresses, so you will need to update any references to the IP address used for your larger Droplet to the one used by your smaller Droplet in your DNS records, links, or app.


By following this tutorial, you have successfully downsized your Droplet to an appropriate size, moved your data to the new Droplet, and connect your DNS A record to your new IP.

Thanks to Reid from the Digital Ocean user community for the previous version of this guide.


Creative Commons License