My first response would be, that’s never going to work. Unless you’re hosting static files and no database queries, a $5 server is not going to handle 200k users.
Let’s talk about requests, since that’s a number used for dimensioning a server.
If your app only downloads data 1 time every day, then 200k users would result in 200k requests. If there’s a login and users can browse several views, then it would probably be closer to 5-20 requests, meaning 1-4 million requests per day.
If every request is a static file - meaning there’s no user-login or anything user-specific, then it’s fairly easy to have Nginx serve that data extremely fast on limited resources.
But I’m guessing there’s logins, dynamic pages (what a typical web-app is now), then you would probably want to split the database from the rest.
So in turn having 2 servers/droplets to begin with. Server1 with Nginx proxying dynamic content to Node. Server2 running MongoDB.
It would be very easy to scale either server (it would take less than a minutes downtime).
And in the future you could create load balancers as replacement for both servers and have several web servers and database servers instead of just a single one of each.
But nevertheless, I don’t see how either Node nor MongoDB would be able to handle that load even on separate $5 servers. Expect to use more money on each server and if you don’t fine-tune the servers (tweak the configurations) expect to use even more money.
I’m not a big fan of Docker - I prefer to keep it as clean as possible, because you’re already in one container (the virtual server sitting on top of the physical hardware).
And Docker also adds the extra overhead. But if you’re already used to Docker, then I would recommend that you continue to use it.