home shape

Create an ArangoDB cluster on Google Compute Engine with a single command

Last week we’ve released the first version of our new deployment tool for cloud computing platforms with Digital Ocean support. (Edit: now also available: Amazon Web Services) Today we show how to deploy an ArangoDB cluster on Google Compute Engine with a single command.

Google Compute Engine

To easy-deploy an ArangoDB cluster on Google Compute Engine you just need to install the official gcloud tool, download a single bash script and watch the tool take care of the rest for you.

wget https://raw.githubusercontent.com/ArangoDB/deployment/publish/GoogleComputeEngine_ArangoDB_Cluster.sh
chmod 755 GoogleComputeEngine_ArangoDB_Cluster.sh

Google Compute Engine prerequisites

The script needs an available and configured Google Project.

ProjectID
  • Create a project (GCE Projects).
  • Remember your project-id, you’ll need that later for gcloud configuration.
  • Enable Google Compute Engine API SearchAPI EnabledAPI
Google GCloud Tool Settings:

You can skip this part if your Google gcloud tool is already installed and fully configured for your project. Otherwise please follow these steps:

Install Google gcloud tool:

curl https://sdk.cloud.google.com | bash

and restart your shell or terminal.

Then use gcloud tool for authentication:

gcloud auth login

… set your project-id:

gcloud config set project "your-project-id"

… and set your zone:

gcloud config set zone "your-desired-zone" 

(show all available zones:)

gcloud compute zones list

ArangoDB Script:

Create an ArangoDB cluster on Google Compute Engine:

./GoogleComputeEngine_ArangoDB_Cluster.sh 

When the script is finished, you’ll get a screen with all the info you need to be able to work with the cluster.

Also this will create a directory called ./gce that contains information about the cluster. You can easily get rid of the cluster as well as of the virtual machines by doing

./GoogleComputeEngine_ArangoDB_Cluster.sh -r

Feel free to try it out! See below for information on how to configure things.

Some background information for the curious

This script will use gcloud authentication for Google Compute Engine to deploy a number of VM instances running CoreOS. If you do not already have one, it will first create an SSH keypair for you and deploy it to Google Compute Engine and your ssh-agent. Once the machines are running the script uses Docker images to start up all components of an ArangoDB cluster and link them to each other. In the end, it will print out access information.

No installation of ArangoDB is needed, not on the VM instances, neither on your machine. All deployment issues are taken care of by Docker. You can simply sit back and enjoy.

The whole process will take a few minutes and will print out some status reports.

Some switches to configure a few things

Use the -h switch to get this help page.

Prerequisites:

The following environment variables are used:

  • PROJECT : project id of your designated project (e.g. -p “project_id”);

Optional prerequisites:

  • ZONE : size of the server (e.g. -z europe-west1-b)
  • SIZE : size/machine-type of the instance (e.g. -m n1-standard-2)
  • NUMBER : count of machines to create (e.g. -n 3)
  • OUTPUT : local output log folder (e.g. -d /my/directory)
  • PREFIX : prefix for your machine names (e.g. “export PREFIX=”arangodb-test-$$-“)

Discover more about ArangoDB:

Want to learn more about the possibilities of the ArangoDB?

Take a look at our Documentation, Tutorials and Cookbook recipes.

Heiko Kernbach avatar 1518160583 92x92

Heiko Kernbach

Heiko is a JavaScript and C++ Developer working on ArangoDB’s frontend and backend. He holds a Bachelor degree in Computer Science and is passionate about new technologies and programming. Whilst completing his Bachelor degree, Heiko dived deeper into ArangoDB and focused on developing geo location-based services.

1 Comment

  1. bob on February 7, 2020 at 9:32 pm

    thanks for the helpful tutorial, just fyi, i believe this command `gcloud config set zone “your-zone”` is no longer valid.

Leave a Comment





Get the latest tutorials, blog posts and news: