Prerequisites

We have strived to keep the amount of prerequisites to a minimum in order to setup the infrastructure for the workshop. Please ensure that all of these are completed before progressing to the next step.

  • An AWS account to be used to host the workshop services and participant IAM user accounts. It is recommended to use or create a new or sandbox account as the participants will have permissions to see resources.

  • Have a local Workstation or laptop available

    To build and run the CloudFormation steps, you will need a workstation, an EC2 instance, or a laptop. All the steps are written and based on Linux/macOS. If you don’t have a similar environment, you may use an Amazon Linux based EC2 instance. No matter what you use, please ensure the following tools are installed:

    • AWS CLI with admin credentials (see below)

    • NodeJS >= 8.11.x and npm

    • Python >= 3.6 and pip

    • AWS Cloud Development Kit (CDK)

      The following commands will verify that the command line tools are properly installed:

      $ aws iam get-account-summary       # AWS CLI
      {
          "SummaryMap": {
            ...
          }
      }
      $ node -v                          # NodeJS
      v12.8.0
      $ npm -v                           # Node package manager
      6.10.2
      $ python --version                 # Python
      Python 3.7.4
      $ pip --version                    # Python module manager
      pip 19.2.2 from ...
      $ cdk --version                    # CDK utility (from npm)
      1.4.0 (build 175471f)
          

  • An AWS CLI named profile. The profile in ~/.aws/config should contain the target region, and the ~/.aws/credentials file should have an access key and secret access key with administrative access (or minimum to deploy and run the stack). The profile name cdk-user will be used throughout this guide.

  • A registered domain name managed by Route 53 in the workshop account. This can either be through registration in Route 53, or making Amazon Route 53 the DNS service for the domain. If we want the URL for the workshop to be cdd.example.com, in Route 53 there needs to be a public hosted zone for example.com.

  • To target the appropriate account, region and other aspects, the following entries need to be considered and changed in the config.json file (the default value used in this guide listed first):

    • Region - us-west-2Region identifier, must support all AWS resources being used.
    • HostName - cdd.example.comThe fully qualified domain name entry to be created from the Route 53 hosted zone details above (example.com). Note, subdomain entries can also be used such as cdd.foo.example.com, but must be created from Route 53.
    • ProfileName - cdk-userThe AWS CLI profile name referenced above. It is used by the build and deploy steps to use the right account and credentials.
    • AdminUserName - adminThe username to log into the web application for administrative purposes.
    • AdminPassword - NO DEFAULT VALUEThis needs to be completed in the config.json file and is only used for web application related tasks, and not for AWS account activities.
    • cloud9InstanceSize - t3.smallInstance size for each participants Cloud 9 environment. Select larger (or smaller) depending upon how long the Amazon FreeRTOS compilation should take.
    • ParticipantLimit - 20The maximum amount of user accounts that can be created, after which, new account creation will fail. It is best to set this to 5-10% above total expected participants.
  • An Amazon Certificate Manager (ACM) validated server certificate in N. Virginia, to encrypt access to the web application.

    The certificate needs to be created in the N. Virginia region to work with Amazon CloudFront. Also, the issued certificate must support the fully qualified domain name you wish to use. For example, a certificate for *.example.com is valid for the domain name cdd.example.com, but would not work for cdd.foo.example.com since the wildcard is only matches the third element foo, and not the fourth one, cdd.

Copyright © 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.