So you want to putter around with some data using Jupyter Notebook, and you don’t want to be limited by your local machine’s specs or have your laptop fan sounding like a jet engine. Here’s a solution using Google Compute Engine that takes about 10 minutes to set up.
Create the virtual machine. You can do this via the Google Cloud UI by following the tutorial here. There are a number of reasonable presets for machines you can use depending on your needs. This isn’t free, so please pay attention to the pricing for the instances you request.
Install Jupyter and start the notebook server by running jupyter notebook. By default my install starts the server on port 5000.
Set up a secure channel for port forwarding from your local machine to the VM:
$ gcloud compute ssh <your-vm-name> -- -L 5000:localhost:5000 -NT
The key here is the -L flag, which forwards connections on localhost:5000 over the secure channel to port 5000 on the remote machine.
Now you should be able to access your notebook server at http://localhost:5000. If you’re nervous about costs—e.g. perhaps you’ve added a GPU to your VM, which substantially cranks up the hourly rate—you can manually stop the virtual machine while you’re not using it, and restart it when you need it.