Rookout / cloudformation-quick-deployment

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deploy Rookout On-Prem Stack on AWS ECS Fargate Cluster using CloudFormation

This CloudFormation Stack provisions Rookout On-Prem Controller and Datastore on AWS ECS Fargate cluster. This nested stack includes:

  1. VPC
  2. ECS Cluster
  3. Application load-balancer
  4. Certificate issued by ACM (Amazon Certificate Manager) for rookout sub-domains
  5. Rookout ETL Controller https://docs.rookout.com/docs/etl-controller-intro/
  6. (Optional) Rookout On-Prem datastore component https://docs.rookout.com/docs/dop-intro/
  7. (Optional) Demo application https://github.com/Rookout/tutorial-python

For custom infrastructure deployment we are recommending our official terraform module https://registry.terraform.io/modules/rookout/rookout-deployment/aws/latest

The stack implements the following network architecture:

Prerequisites

  1. AWS account
  2. Rookout enterprise account token
  3. Route53 registered domain https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register-update.html
  4. Route53 public hosted zone associated with domain https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-working-with.html.

Level of rookout deployment

  1. Controller only
  2. Controller + Datastore
  3. Controller + Datastore + Demo application (default)

Endpoints

wss://controller.rookout.PROVIDED_DOMAIN - URL of the controller, used for SDK (rooks) .

https://datastore.rookout.PROVIDED_DOMAIN - URL to the datastore, used with rookout client (web browser application).

https://demo.rookout.PROVIDE_DOMAIN - Flask demo application for debuging.

Quick Start

Launch Stack URL

  1. Launch Stack Launch Stack
  2. Follow the cloudformation wizard

AWS CLI

aws cloudformation deploy \
    --template-file rookout-stack.yaml \
    --stack-name rookout-stack \
    --parameter-overrides HostedZone=<HostedZoneID> \
                          Domain=<Domain> \
                          RookoutToken=<Rookout Token> \
                          DataStoreDeploy=true \
                          DemoDeploy=true \
                          ControllerCPU=2048 \
                          ControllerMemory=4096 \
                          DataStoreCPU=2048 \
                          DataStoreMemory=4096

Generating Stack from source and upload to your own bucket

  1. aws cloudformation package --template-file rookout-template.yaml --output-template rookout-stack.yaml --s3-bucket <YOUR BUCKET NAME>
  2. (Optional)aws s3 cp rookout-stack.yaml s3://<YOUR BUCKET NAME>
  3. Follow the cloudformation wizard or use AWS-CLI https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html

Parameters

ParameterName Description Default
HostedZone Public Route53 HostedZone where DNS reccords will be created
Domain Your domain assosiated with HostedZone
RookoutToken Rookout token
DataStoreDeploy Deploy Rookout On-Prem datastore true/false true
DemoDeploy Deploy demo application true/false true
ControllerCPU The number of cpu units used by the Controller task 2048
ControllerMemory The amount (in MiB) of memory used by the Controller task 4096
DataStoreCPU The number of cpu units used by the DataStore task 2048
DataStoreMemory The amount (in MiB) of memory used by the DataStore task 4096

Outputs

OutputName Description
ControllerEndpoint URL of the controller, used for SDK (rooks)
DataStoreEndpoint URL to the datastore, used with rookout client (web browser application)
DemoAppURL Flask demo application for debuging URL

About