Skip to content

robogeek/aws-ecs-nodejs-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Example NGINX+Node.js application stack deployable with Docker, and to AWS ECS using Docker. The stack is described using Docker Compose files.

The contents are:

  • app - Extremely simple Node.js HTTP service that listens on port 3000
  • nginx - Extremely simple NGINX server configured as an HTTP proxy to a back-end service on port 3000
  • local - A Docker Compose file for launching the two services on the local machine
  • ecs-simple - A simple deployment of the stack to AWS ECS using a docker-compose.yml and ecs-params.yml
    • nginx-ecs-simple - The version of the nginx service to be used in the ecs-simple scenario
  • ecs-terraform an example of using Terraform to deploy the stack to AWS ECS
    • nginx An implementation of the nginx service for this
  • ecs-service-discovery - A two-service deployment to AWS ECS meant to explore how Service Discovery works THIS EXAMPLE DOES NOT YET WORK
    • backend - An implementation of the app service as an ECS Service, defined using a Docker Compose file
    • frontend - An implementation of the nginx service as an ECS Service, defined using a Docker Compose file
    • nginx-ecs-service-discovery The version of the nginx service to be used on ECS

The ecs-simple case is a simple AWS ECS Fargate cluster containing the two services.

The ecs-terraform case works directly with the AWS infrastructure, while using Terraform to do so. This is different from the ecs-simple example which relies on a Docker Compose file.

The ecs-service-discovery is an attempt to deploy app and nginx as two separate services on ECS, and to have nginx find app using Service Discovery. Unfortunately this example does not yet work.

To see an implementation of Service Discovery, the ecs-terraform example implements that feature.

For tutorials on using these containers, see: