Delta's "Hello World" Example

This documentation assumes you have already signed in, and gone through the Getting Started wizard to set up your AWS account. If you haven't done that already, go do that now.


We are going to deploy an application to AWS. The infrastructure to run your application will look like this:

 | ELB Security Group         |
 |                            |
 |  +-------+                 |
 |  |  ELB  |                 |
 |  +-------+                 |
 | EC2 Security Group         |
 |                            |
 |  +----------------------+  |
 |  |  Auto Scaling Group  |  |
 |  |  with EC2 instances  |  |
 |  +----------------------+  |


  • An Elastic Load Balancer (ELB) with it's own Security Group
  • An EC2 security group to host your application

This guide assumes you are using a VPC. If you are using EC2-Classic, then you have no choice over the security group of the ELB, so adjust accordingly.

Create AWS Resources

You have 2 options, use our CloudFormation template, or do it manually.

CloudFormation Template

Download CloudFormation Template: cloudnative-delta-resources.cloudformation.json

Manual Steps

  1. Create 2 security groups (SGs)
    • One for the ELB to live in
    • One for the EC2 instances to live in
  2. Create an Inbound rule in the EC2 security group allows access from the ELB SG. Example:

    Type: HTTP
    Protocol: TCP
    Port Range: 80
    Source: Custom IP: _ELB Security Group_
  3. Create an Elastic Load Balancer

    Name: hello-world
    Create LB Inside: _Select your VPC_
    Listener Configuration
        HTTP 80  =>  HTTP 80
    Health Check
        Ping: HTTP, 80
        Ping Path: /
    Select the subnets you want the ELB to live in
    Select the ELB security group you created above
    Skip adding instances
    Tag the ELB
        Key: Name
        Value: Hello World

Create an Application

If you used the above CloudFormation template, click on the Output tab to get a lot of the following fields.

  1. In the top navigation, click Delta.
  2. Click Create a new Application.
  3. Name your application "Hello World"
  4. Leave the Pipeline blank, and select your AWS Account and then region of choice.
  5. Enter the name of the Elastic Load Balancer
  6. Enter the ID of the EC2 security group you created above: Example: sg-abcd1234
  7. Enter a comma separated list of VPC subnets the EC2 instances should live in
  8. Enter a comma separated list of Availability Zones (the same ones the subnets above use)
  9. Leave the IAM Instance Profile empty
  10. Set "Associate Public IP Address" to Yes
  11. Click Create Application

Create a Version

As a simple example, we are going to install Apache.

  1. Click Create a new Version
  2. Name: hello-world-001
  3. AMI: ami-9a562df2 if you use us-east-1. Otherwise, use the Ubuntu AMI Locator to find Ubuntu 14.04 LTS in your region.
  4. Instance Type: t2.micro
  5. Minimum Size: 1
  6. Maximum Size: 1
  7. User Data:

    apt-get update
    apt-get install -y apache2
    cat > /var/www/html/index.html <<EOF
    <body style="background-color: #ffffff">
    <h1>This is version 001</h1>
  8. If you already have a Key Pair on AWS, you can enter it here.

  9. The other values should already be filled in
  10. Click Create Version


At this point, you have the skeleton of a version. No EC2 instances or Auto Scaling Group have been created.

  1. Click Launch
  2. Refresh the page every 20 seconds or so until you see the Status change to "Standby"
  3. Click Enable
  4. Refresh the page a few times until you see the version enter the "Enabled" state.
  5. Copy and paste the ELB DNS name into a new tab in your browser
  6. You should see that apache was installed, and our HTML page from the user-data is there.
What do you think of this page? Tell us about it