Over the past days we've launched the beta of Compose Enterprise and explained the features and benefits available from being able to take more control of your Compose database deployments. You should be raring to go to try out Compose Enterprise's features. In this article we'll talk you through setting up a basic cluster configuration.
Getting Started - Preparations
You start by making sure you have a Compose account and an AWS account. If you already have a VPC configured skip this section as we'll be covering setting up a simple configuration of a Compose Enterprise cluster and we start by preparing an AWS VPC.
If you are setting up in a new region or with a fresh AWS account, you'll need to generate an SSH key-pair to let the automated systems work. Go to the EC2 Dashboard on AWS.
Select Key Pair under Network & Security, give your key-pair a name and then click Create Key Pair. A key will be downloaded to your system - take good care of it.
Go to the VPC Dashboard on AWS.
Select Elastic IPs on the sidebar and create an Elastic IP by using Allocate New Address.
- Make a note of the allocation ID for the Elastic IP.
- Now return to the VPC Dashboard and click Start VPC Wizard.
On the Configuration Screen, select VPC with Public and Private Subnets and click Select.
On the next screen, enter a name for your VPC.
For the Elastic IP Allocation ID field, click and select the allocation ID you noted earlier.
- Click Create VPC.
- While you wait for the creation to complete, make a note of the VPC ID and the private and public subnet IDs.
Creating the Cluster
Head to your Compose Console. Over in the left hand side of the console you'll see the Clusters button. Click it and it will put you into the Compose Enterprise cluster provisioning interface:
You'll see the clusters already provisioned here, or nothing if this is your first time here. To begin making your new cluster, click the Create Cluster button on the right hand side. You'll now see a screen like this:
This is the starting point for creating a new cluster. It'll need a name. The slider and cost estimates are purely advisory and don't currently set any parameters on your cluster; the default configuration for a cluster will have 24GB of RAM over three hosts; you can increase the memory available later on in this process. Once you have entered a name for your cluster, click Create Cluster – this time at the bottom of the form – and we move on to the next stage:
Forming your Compose Cluster on Amazon
This next stage uses Amazon's Cloudformation system to create your hosts and resources on your AWS VPC. A Cloudformation template will be generated and sent over to the AWS service which will detail all of that. There are some parameters, though, that will need to be manually passed over. Specifically, the "Registration Keys" which will bind the created cluster's hosts to the Compose system.
So, the first thing you need to do is click the Copy button on the Registration Keys field to get them onto the clipboard. Then click the Launch Stack link to start the Cloudformation process in a new browser tab or window. You'll see something like this:
The template is already set in the "Specify..." field so all you need to to is click Next which will take you here:
Let's move through the various fields:
The RegistrationKeys field is where we want to paste those registration keys we copied in earlier. If you forgot to copy them, it's ok - we're in a new tab so go to the Compose tab or window, and copy and paste them now.
The next field is the InstanceType and it's here that you set what kind of system and performance you desire for your cluster. In the drop-down you'll see AWS M4 and R3 instances. It's your choice which type of instance you assign to your cluster. There will be three configured and the total RAM available will set the monthly cost of Compose Enterprise and, of course, how much Amazon will charge you.
M4 instances are general purpose instances with RAM running from 8GB/2vCPUs (large), 16GB/4 (xlarge), 32GB/8 (2xlarge), 64GB/16 (4xlarge) and 160GB/40 (10xlarge) - we recommend them for development and test work. R3 instances are memory-optimized and come in 15.25GB/2vCPU (large), 30.5GB/4 (xlarge), 61GB/8 (2xlarge), 122GB/16 (4xlarge) and 244GB/32 (8xlarge) sizes. We recommend R3's for production deployments.
Next we need to enter a value for the size of data volume. Start with at least
1000 (1000 GB) to ensure good performance.
The SSH keypair field should offer, when clicked, a list of configured key-pairs that can be used to access the cluster hosts. You may have made one earlier in this walkthrough. Select a key-pair and move on to the Network Configuration section.
The VPC selector is another drop down field, click on it and select the VPC you want to deploy this configuration into. If you created one earlier, that's the one you'll be using.
The subnet selectors are next. In this walk through and for the simplest configuration, you should set them all the the single private subnet created for your VPC. We currently support up to three different private subnets in different availability zones to create your cluster over, a process which we'll work through in a follow up article.
Having reached the end of the page, click Next. You'll be invited to set some tags on the next page. Click Next again and you'll arrive at a roundup of what is about to happen. There's also a checkbox to click to acknowledge that what is about to happen will create chargeable AWS resources. That'll be between you and Amazon, but you'll need to check that before you click Create.
We now get to a Stack status page which tells us how our various Cloudformation stacks are doing. Wait for your stack to appear and then to show a status of
CREATE_COMPLETE. The Compose Enterprise stack has now been created with hosts and other resources. But, we're not quite ready to go yet.
The Final Steps
Return to the Compose UI window, or tab, in your browser and go to the Clusters view. The new cluster should be visible there and if you click on it, you'll get a look at that cluster's status. It'll probably look like this:
The hosts are initialising, binding themselves to the Compose infrastructure so they can be managed and deployed to. You'll have to wait at this point, but when it's done, you should see something like this:
This shows the Compose Enterprise version and how much memory and capacity each host has to work with. The keen-eyed will notice this screenshot is just after deploying a MongoDB to the cluster – that's so you can see the meter graphs on the right.
You have now setup your Compose Enterprise cluster. The next thing you will want to do is deploy a database to it. Go to the Deployments view in the Console and select Create Deployment. Now select the database type you want... We'll select PostgreSQL:
It should all look familiar to a Compose user. There's space for a deployment name and a slider to select how much storage and RAM the deployment should start with. The difference is that there's now a Create Deployment On option and that will default to your first Compose Enterprise cluster with capacity, or tell you which one is out of capacity. You can select your cluster here; as this is likely your first, it'll be automatically selected and you may not click on it. If you do you'll see the option to also deploy on Compose Hosted – as you're here, we'll assume that's for another time, but that's where the option went.
Set the slider to your desired sizes and click on Create Deployment and Compose Enterprise will swing into action deploying your new database on your cluster. It'll be ready to go in minutes inside your VPC. Experienced AWS VPC users will most likely know what they need to do to connect to their new servers. For everyone else, we'll have another article soon about using your Compose Enterprise databases.