Tutorial: How to Set Up HDCloud for AWS (ADVANCED Template)

This tutorial will help you set up Hortonworks Data Cloud for AWS using the advanced template, with a custom VPC and RDS. The tutorial assumes no prior experience with AWS.

Overview

In this tutorial, we will set up the Hortonworks Data Cloud for AWS using the advanced template, which requires you to configure a VPC and an RDS instance and database prior to launching the cloud controller. We will go through the following steps:

If you encounter errors while performing the steps, refer to the Troubleshooting documentation.

Let's get started!

Prerequisites

The prerequisites for this tutorial are:

  1. You have an AWS account.
  2. You know in which AWS region you want to launch. Supported regions are listed here.
  3. You have an SSH key pair in the selected region.
  4. You've subscribed to Hortonworks Data Cloud services on AWS Marketplace.

If you need help with the steps required to meet these prerequisites, refer to this tutorial.

Launch an RDS Instance

As the advanced template requires you to enter information related to an existing RDS instance, you need to create a PostgreSQL RDS instance prior to launching the cloud controller.

  1. Navigate to the RDS Dashboard at https://console.aws.amazon.com/rds.

  2. In the top right corner, select the region in which you want to create your DB instance. For simplicity, let’s create the RDS instance in the same region in which you will later launch the cloud controller.

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

  4. In Step 1: Select Engine, select the PostgreSQL Engine and click Select.

  5. In Step 2: Production?, select Dev/Test and click Next Step.

  6. In Step 3: Specify DB Details, enter:

    For Instance Specifications, you can use values similar to those in the screenshots. Make sure to use DB Engine Version 9.5.4 or later.

    For Settings, come up with an identifier, a username, and a password for your instance. Click Next Step.

  7. In Step 4: Configure Advanced Settings:

    1. In the Network & Security section, select the VPC where the RDS instance should be started. I am using the default VPC.
    2. On the right, in the Connection Information, make sure that the Inbound access on the security group is set to “0.0.0.0/0”. You can change this setting later, but in this stage, the RDS instance must be accessible to the cloud controller that we will create in the next step.
    3. In the Database Options section, enter a Database Name. This field is not required, so it’s easy to miss it. If you miss it, you will have to create the database manually.

  8. Click Launch DB Instance.

  9. Click on View Your DB Instances to get redirected to the RDS Dashboard. Keep this page open, as you will need to copy the RDS information and provide it in the CloudFormation template.

While your RDS database is being created, you can get started with the next step, which is launching the cloud controller using the advanced template.

Launch Cloud Controller (Advanced Template)

  1. Navigate to the Hortonworks Data Cloud - Controller Service listing page:

  2. The only settings that you’ll want to change are:

    • The Region, which should be the same as the region where you created the RDS.
    • The Deployment Options, which should be set to ADVANCED.
  3. Click Launch with CloudFormation Console and you will be redirected to the Create stack form in the CloudFormation console.

  4. On the Select Template page, your template link is already provided, so just click Next.

  5. On the Specify Details page, provide the details required:

    General Configuration

    • Stack name: You can change this if you want to.
    • Controller Instance Type: I recommend that you keep the default. If you pick instance type that is not powerful enough, you will run into issues.
    • Email Address and Admin Password: You will use these credentials to log in to the cloud controller UI.

    Security Configuration

    • SSH KeyName: This is your SSH key pair. If you can’t see it in the form, check the top right corner to make sure that you are using the correct region.
    • Remote Access: This should be a range of IP addresses that can reach the cloud controller. If you are just playing around, you can enter “0.0.0.0/0” which will allow access to all; Or you can use this tool http://www.ipaddressguide.com/cidr#range to calculate a valid CIDR range that includes your public IP address.

    In order to obtain the remaining parameters, refer to your RDS Dashboard:

    Network Configuration

    • VPC ID: For simplicity, let’s use the same default VPC as the one used for the RDS instance.
    • Subnet ID: Make sure to select a subnet that belongs to the chosen VPC.

    RDS Configuration

    • RDS Endpoint: You can copy this from the RDS Dashboard.
    • RDS Username: You can copy this from the RDS Dashboard (Username).
    • RDS Password: This is the password that you chose when creating your RDS instance.
    • Database Name: You can copy this from the RDS Dashboard (DB Name). If the DB Name value is blank, you will have to create the database manually.

    The parameters listed in SmartSense Configuration are optional. Enter your SmartSense ID and opt in to SmartSense telemetry if you would like to use flex support.

  6. When done, click Next.

  7. On the Options page, under Advanced, you have an option to change the setting for Rollback on Failure. By default, this is set to Yes, which means that all of the AWS resources will be deleted if launching the stack fails, and you will avoid being charged for the resources. You can change the setting to No if in case of a failure, you want to keep the resources for troubleshooting purposes. Click Next.

  8. On the Review page, check I acknowledge that AWS CloudFormation might create IAM resources and then click CREATE.

  9. Refresh the CloudFormation console. You will see the status of your stack as CREATE_IN_PROGRESS. If everything goes well, after about 15 minutes, the status will change to CREATE_COMPLETE, at which point you will be able to proceed to the next step.

Access the Cloud Controller UI

  1. To access the cloud controller UI, select the stack, click on Outputs, and click on the CloudURL:

  2. Even though your browser will tell you that the connection is unsafe, proceed to the UI and log in with the credentials that you provided earlier.

  3. After logging in, you will get to the dashboard:

    Now you can start creating clusters.
    If you need guidance, refer to this tutorial. Have fun!