Advanced Launch Options

When launching your cloud controller, choose the ADVANCED CloudFormation template if you prefer a deployment option that provides more
flexibility and offers a recovery option. The advanced deployment includes installing the cloud controller
into an existing VPC and connecting to an existing Amazon RDS instance.

VPC and Subnet

The cloud controller can be launched into an existing VPC and an existing subnet.

For instructions on how to create an Amazon VPC for use with an Amazon RDS instance, refer to this Amazon tutorial.

Amazon RDS

The cloud controller can store its configuration information in an PostgreSQL database on
a designated Amazon RDS instance. This option makes it possible to upgrade
your cloud controller instance when newer versions are delivered; it also provides a
recovery option in case your cloud controller EC2 instance runs into issues and
you need to replace it.

Important

Only Amazon RDS with the PostgreSQL DB engine is supported.

You must create an Amazon RDS instance prior to launching the cloud controller. Provide
the RDS instance URL, username, password, and database name to the CloudFormation template when launching the controller.

Guidelines for Creating an Amazon RDS Instance

You must create an RDS instance and database prior to registering it with the cloud controller. For instructions, refer to Creating an Amazon RDS Instance. Make sure to apply the following guidelines:

Only PostgreSQL Engine is supported at this time.

The RDS instance creation template Step 4: Configure Advanced Settings > Database Options allows you to create one database on your RDS instance. Make sure to enter the Database Name in this step. This field is optional, making it possible to create an RDS instance without creating a database on it. If you don't provide the Database Name, no database will be created and you will have to create it manually.

You can create additional databases on the RDS instance using the postgresql command line tool or some GUI database browsers.

Multiple cloud controller instances can point to the same RDS instance, but you must use different databases.

It is possible to use the same RDS instance for the cloud controller and for a Hive or Druid metastore, but you must use different databases.

Creating an Amazon RDS Instance

Important

This section provides high-level guidelines for creating an Amazon RDS instance compatible with the requirements of the controller. Refer to the
Amazon RDS documentation for detailed information
about creating and managing RDS instances.

Follow these steps to create an RDS instance:

Navigate to the RDS Dashboard in the AWS Management Console. In the top right corner, select the region in which you want to create your DB instance.

Although not required, we recommend that you create your DB instance and the cloud controller in the same region. See AWS Regions for a list of supported regions.

In the RDS Dashboard navigation pane, click Instances, and then click on Launch DB instance to launch the Launch DB Instance Wizard.

For Step 1: Select Engine, select the PostgreSQL Engine.

Only PostgreSQL Engine is supported at this time.

For Step 2: Production?, choose Production or Dev/Test, depending on your requirements.

For Step 3: Specify DB Details, select DB Engine Version 9.4 or later. There is no minimum requirement for the DB Instance Class.

Only PostgreSQL 9.4 or later DB Engine is supported at this time.

For Step 4: Configure Advanced Settings, in the Network & Security section, select the VPC where the RDS instance should be started. The important
part here is the configuration of the security group:

Scenario

Public Access

Security Group

Start your cloud controller in the same VPC as the RDS instance

The security group can be closed to the outside: "Publicly Accessible" can be set to "No".

The security group can be configured to open access only from the internal network.

Other scenarios

"Publicly Accessible" must be set to "Yes" so the RDS instance can have a public IP address.

The security group must be open to the cloud controller.

There may be additional scenarios involving advanced AWS network setup. For these scenarios, the general guideline is that the RDS instance must
be accessible from the cloud controller.

To make sure that the chosen security group has the required access rules configured, verify the Connection Information in the right pane and, if needed, click on the link to update its inbound access rules, making sure that the cloud controller can connect to the RDS:

In the Database Options section, enter Database Name.

This parameter is optional, but if you don't provide it, you will have to manually create a database on the RDS instance before launching the controller.

Click Launch DB Instance to create your RDS instance. When the RDS instance is ready, proceed to the next step.

When launching the controller, use the ADVANCED CloudFormation template, which allows you to provide the RDS instance URL, username, password, and database name.

To get the RDS Endpoint, copy the Endpoint from the RDS Dashboard > Instances:

Creating a Database on an RDS Instance

If you created your RDS instance without specifying a database name, or if you need to create a new database on an existing RDS instance, you can:

Use an editor such as pgweb to connect to the RDS instance. If you do not have your own database to connect to, you can use the maintenance database called postgres when specifying the connection information. For example: