Open Credo

August 16, 2012 | Neo4j

Deploying Neo4j Graph Database Server across AWS regions with Puppet

neo4jIt’s been more than a year now since I rolled out Neo4j Graph Database Server image in Amazon EC2.

In May 2011 the version of Neo4j was 1.3 and just recently guys at Neo Technology published version 1.7.2 so I thought now is the time to revisit this exercise and make fresh AMIs available.
Last year I created Neo4j AMI manually in one region then copied it across to the remaining AWS regions. Due to the size of the AMI and the latency between regions this process was slow.


Jussi Heinonen

Deploying Neo4j Graph Database Server across AWS regions with Puppet

I started to use Puppet in the past year to automate deployment processes for some of our customers. It made sense then to automate the Neo4j deployment process using a collection of Puppet manifests. Here are some of the benefits of this approach

  • Increased productivity – Instead of transferring large disk images from one AWS region to another you can simply transfer the deployment process (a few kilobytes of Puppet manifests) and repeat the process in each AWS region.
  • Change management – When a new version of Neo4j is released you can easily update the manifest parameters and redeploy.
  • Deploy anywhere – If you want to reproduce the same software stack outside of AWS (in-house, Rackspace etc) you can grab the latest manifests from Github and deploy to the new platform.

The Puppet manifests used here are now available on Puppet Forge as well as on Github.

To pull the manifests from Github run: git clone

EC2 security group for Neo4j

If you would like to connect a Neo4j instance from outside of AWS, you should create a Security Group that allows connectivity on port 7474 as well as on port 22 for SSH.

You need to associate this group with the instance at instance launch time. Security Group configuration steps can be found here.

OpenJDK VS. OracleJDK

Neo4j-puppet module deploys the JRE from the OpenJDK package instead of the JDK distributed by Oracle.

To install a different version of the JRE you can change the value of the variable $jreinstaller in the file params.pp prior to deployment.

Updating the Neo4j version

The file params.pp also contains a variable $neoversion that can be used to specify the version of Neo4j that is to be installed.

Currently the Puppet module cannot be used to upgrade existing Neo4j server; it can only be used for fresh deployments.

Neo4j graph database server images per AWS region

The Neo4j AMI can be found by searching for “Neo4j 1.7.2 CE Ubuntu 12.04 64-bit” in AWS console.

Alternatively you can use the following hyperlinks to launch Neo4j image in specific region.


This blog is written exclusively by the OpenCredo team. We do not accept external contributions.



Twitter LinkedIn Facebook Email