Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
This is a good plan:
The best strategy I’ve come up with so far is boot up the new vps - and point the old vps to the new vps’s database while we wait for the DNS to switch over.
If you set up your new droplet. Then point your old droplet’s scripts to use the database on your new droplet you can then switch the DNS over and wait for it to propagate before destroying the old droplet. Using this method you should be able to achieve 0 downtime. If your scripts change any files within your filesystem you may need to sync the files on your old droplet with your new droplet to ensure any changes during the transition are reflected.
You can also use iptables to port forward db ports to the new droplet till DNS changes propagate.
Here is a tip, open a free account at Cloudflare, set-up your domain name (no downtime if you set it using cloudflare Wizzard), once the domain is hosted with cloudflare (Fully propagated over DNS networks) your records will be already added to the dns manager on cloudflare, then you can transfer the droplet image to NY3, start your server, be sure everything is working ok and then go to Cloudflare’s DNS manager and change the A record you use for that server ie:
3.3.3.3 -> db.mydomain.com
DNS changes within cloudflare are almost instantly made. better yet, create a cname record and redirect it to an A record for the hosts you use, ie:
cname: db.myapp.com -> mysqlhost1.myapp.com A: mysqlhost1.myapp.com - > 1.1.1.1 A: mysqlhost2.myapp.com -> 3.3.3.3
Change cname db.myapp.com from mysqlhost1.myapp.com to mysqlhost2.myapp.com and your change is made almost instantly.
Thanks @EpicCDN I really like your approach - seems easier than setting up a master slave.