Using AWS and VSCode remote ssh for your development environment.

A while ago I stumbled upon the remote-ssh addon for VSCode. From that moment on my development environment changed from local to online and I won't be switching back anytime soon.

The plus sides of using a remote machine to develop on are quite positive. You can do so on any machine which runs VS Code studio with the remote-ssh addon installed. That means you can instantly develop or continue where you left on OSX, Windows and Linux. Even better, your local machine doesn't need to be powerful or needs to have a large disk either. (Because you might have a lot of Docker containers to manage.)

This also changes your decision-making and options drastically when in the market to buy a new laptop for your development efforts in my view.

You can use a remote machine with the required specs needed to develop on. Need more processing power? Just change the instance type or size and you're good to go.

To prevent charges when you're not developing, just power down the machine and start it up when you need to start working again. It's just a matter of seconds. To make sure you don't leave the machine running, just use a cronjob or lambda function to power down the machine once a day.

Developing this way even opens up other possibilities, like having a domain attached to your machine, including SSL. Or instantly check the stuff your doing on other devices too, even if they aren't connected to the same network. Suh-weet!

When you're using Docker, you can also easily open up a port (from within VS Code) to forward to your local machine. You can use a DB gui to browse your database this way for instance.

The speed of the terminal is fine, I don't notice any lag whatsoever. The same goes for finding files or code in a project.

Currently, I've attached the machine to an application Loadbalancer using a target group. This way I'm making use of SSL, which is attached to the Loadbalancer when I access my development machine.

I've got several docker containers for different clients. Switching from one client to the other is a matter of a 'Docker compose stop/up' command and the same domain is serving the configuration on my dev machine currently active.

So if you're into trying out new things that might change your workflow, I really recommend trying this out.