Manual Deployment

Manual Deployment of Roost on AWS

1. High Level Architecture

Roost Ephemeral Environments as a Service (EaaS) platform provides a temporary, encapsulated deployment of a software application. Roost's Ephemeral environments provide robust, on-demand platforms for running tests, previewing features, and collaborating asynchronously across teams. Below is a high-level diagram of the AWS components required to deploy Roost on AWS. 

1.1 Roost-AWS-Architecture.png

3. Prerequisites

 

Below are the infrastructure requirements for running Roost on AWS

Infrastructure Requirements

  1. ALB with proper certificates

  2. OAuth Details ( Okta/ GoogleAuth etc.)

  3. EC2 Instance (c5.2xlarge) x 3 and (t2.micro) x 1

  4. RDS Database (AWS Aurora)

  5. Execute Roost Control plane Script.


4. OAuth Provider Setup

Roost supports various authentication mechanisms as mentioned below

  1. Github
  2. Google
  3. Microsoft
  4. Linkedin
  5. Okta

OKTA Auth Client Setup

Google Auth Client Setup

5. Database Setup

Roost stores the status of the EaaS workflow and other relevant information in Database. Below are the steps to setup an Amazon Aurora DB in AWS

Amazon Aurora

  1. Select RDS

  2. Choose Create Database

  3. Select “Easy Create” for “Amazon Aurora with MYSQL compatibility.”

  4. Modify the RDS Security Group to allow TCP port 3306 access to the Control plane Instance security group only

  5. Make a note of the writer instance database end-point, user, and password (It is needed later in the config below)

  6. Create a new user with read-write privileges and avoid using an admin login.

    # Sample command to create a user using MySQL CLI 
    # Provide password on prompt 
    
    mysql -h <SQL Host URL> -u <root|master|admin> -p
    CREATE USER 'Roost'@'%' identified WITH mysql_native_password by 'Roost#123'; 
    CREATE DATABASE roostio;
    GRANT ALL on roostio.* to 'Roost'@'%';
    
    # Execute the Roost Schema file, if available
    \. /var/tmp/Roost/db/roost.sql