Documentation

Deployment on Amazon EC/2 Container Service

This directory contains the necessary tools to install an instance of the microservice demo application on AWS ECS.

Pre-requisites

curl -sSL https://get.docker.com/ | sh
apt-get update && apt-get install -yq jq python-pip curl unzip build-essential python-dev
pip install awscli

Installation

Using CloudFormation

By clicking “Launch Stack” button above, you will get redirected to AWS CloudFormation console. You will be asked to set cluster size (Scale) and instance type (EcsInstanceType).

Using CLI

To use CLI, you also need to have the AWS CLI set up and configured.

Other required packages are: jq docker

./deploy/aws-ecs/msdemo-cli build

You can optionally add a Weave Cloud token to the command as

./deploy/aws-ecs/msdemo-cli build myweavetoken

Deployments may take a few minutes to complete.

To track the deploy status you can run:

./deploy/aws-ecs/msdemo-cli status

Once it’s done, it will print the URL for the demo frontend, as well as the URL for the Weave Scope instance that can be used to visualize the containers and their connections.

To ensure that the application is running properly, you could perform some load testing on it using the load-test container. This will send some traffic to the application and generate a report at the end:

./deploy/aws-ecs/msdemo-cli loadtest

Opentracing

Zipkin is part of the deployment and has been written into some of the services. While the system is up you can view the traces. To get the endpoint for Zipkin you can run

./deploy/aws-ecs/msdemo dns

Currently orders provide the most comprehensive traces.

Cleanup

To tear down the containers and their associated AWS objects, run the cleanup script:

./deploy/aws-ecs/msdemo-cli destroy

ms-demo Commands

build

Builds the deployment using cloud formation

(optional Weave Cloud Token)

destroy

Destroys the deployment

status

Get status of deployment, will throw error if deployment was already destroyed

dns

Get DNS endpoint

loadtest

Run loadtest

updatestack

This will apply any changes you make to the cloudformation.json file