This repo aims to provide a complete end to end pipeline which will deploy another github repository into an existing ecs cluster and include a full ci and deploy pipeline.
- ECS task with iam execution and task roles
- ECS service to run the task
- ECR repo to store the docker images
- Route53 record in an existing hosted zone with ACM provided SSL certificate
- ALB target group for the service to register with
- Codebuild to run unit tests on the github repo, triggered on every PR open, or change of a PR
- Codepipeline to deploy to the ECS repo
- Notifications to an SNS topic when the service is down
- Optionally a Cognito User Pool for OpenID Authentication
- Existing ECS cluster with registered EC2 instances
- Security groups allowing traffic on ephemeral ports from ALB to EC2 instances
- Seucrity groups allowing port 443 into the ALB
- Existing route53 hosted zone to create the subdomain under
- Existing ALB
- Existing VPC
- Existing SNS topic to notify when health checks fail
- go 1.13+ for running the tests
- terraform 0.12 to use the module
- AWS account to deploy
The project is broken up into the following folders
- / - terraform module in the root of the repo
- examples - full featured examples which the tests use to deploy and destroy the module
- test - terratest tests of the module