GuidesDiscussionChangelogLog In

Google Cloud Platform

Google Cloud Platform (GCP) has a relatively easy-to-navigate web console. Before you can do anything, you'll need to either sign up for a free trial, or enable a payment option. Then, you'll create a project linked to your trial or payment method. Projects are kind of like folders on your computer. There is little cost to creating multiple projects, and they can be helpful when you keep related things together. For example, it might make sense to make a gigantum-specific project (below, you'll see we have one called "gigantum-dev").

One of the nice things about the GCP console is that you can get a terminal connection to your VM right through the web browser. However, in this case we will NOT do that, because we need another feature of SSH - the forwarding of network "ports" from one machine to another. This will allow us to access our web application running on the GCP VM from our local machine. Unfortunately, GCP takes a little more effort to connect as compared to AWS. The easiest approach will be to install the gcloud SDK.

Create a VM instance

Once you have a project setup, you'll launch a virtual Machine (VM) inside of the project. Navigate to "Compute Engine" -> "VM Instances". From here, select "create". You can leave the default name, but it will be easier to remember what you're doing if you change the name to something meaningful, such as "gtm-server". Unlike AWS, which is fairly homogenous across regions, you may find differences between GCP's geographical regions - for example, different GPUs are available in different regions (with very different costs and performance). So, you may need to balance network proximity with other features. Fortunately, the console is far friendlier for interactive exploration - you can modify parameters of your server and you will immediately see the impact on cost, GPU type, etc. Note that you should expect 4-5GB of your "disk" storage to be taken up by the base system.

While GCP includes Docker optimized instances, for the purposes of standardizing our documentaion, we assume "Ubuntu 18.04 LTS Minimal" (we'll configure Docker on our own - it's easy!). For basic exploratory data analysis, a reasonable starting point would be 2 vCPUs, which will automatically default to 7.5 GB of RAM. You can also select a GPU at this stage, in which case you should also read Using Nvidia GPUs with CUDA.

For our purposes, we will not be using any Google APIs, so we can select "No service account" under "Identity and API access". We're also going to use SSH tunneling for HTTP access, so you can leave HTTP and HTTPS access unchecked. In the end, you'll have something that looks like this (click to see details):

An example configuration for a VM for some basic data science.An example configuration for a VM for some basic data science.

An example configuration for a VM for some basic data science.

SSH into your VM from your local command line

At this point, we assume you've installed the gcloud SDK, as mentioned above. We recommend typing gcloud init and setting your default project and region to match your VM - this will save some typing! Assuming you've set things up properly, you should be able to run:

gcloud compute ssh <VM name> -- -L 10000:localhost:10000


Quick Start Script

Once you have an SSH session on your new instance, you can run the Quick-start Script to configure and install Gigantum Client instead of following the manual steps below.

Once you have logged in to the remote instance, you can follow the following instructions:

  1. install Docker, and
  2. Set up the Gigantum CLI
  3. Log out and log back in to enable membership in the docker group, and adding gigantum to your path

Then, you'll be able to launch Gigantum via the CLI as normal. First, be sure to do a gigantum install followed by a gigantum start. You'll need to manually enter http://localhost:10000 in your (local) browser. If things seem fine on the command line, but you can't access the web application, you may have made a mistake with the port forwarding. Double check that your SSH command has the -L 10000:localhost:10000 flag.