CloudFormation Templates: ECS Cluster and Service, Legacy VPC Wrapper, and Automated Tests
In the latest batch of free Wittig CloudFormation templates, easily work with containerized projects with ECS, wrap a VPC into a needed format, and a new test suite.
Join the DZone community and get the full member experience.
Join For FreeWe released v3 of our free and open source CloudFormation templates. This release brings:
- New templates for containerized workloads with ECS.
- New templates to wrap an existing VPC into the format that is needed by all our templates.
- Test suite that we run on every commit to ensure that the templates are still working.
You can read the full Changelog on GitHub.
ECS
EC2 Container Service (ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster of Amazon EC2 instances. To run an application on ECS you need the following components:
- Docker image published to Docker Hub or EC2 Container Registry (ECR)
- ECS cluster
- ECS service
We provide you templates for the ECS cluster and the service. You need to publish the Docker image.
ECS Cluster
This template describes a fault tolerant and scalable ECS cluster on AWS. The cluster scales the underlying EC2 instances based on memory and CPU reservation. In case of a scale down, the instance drains all containers before it is terminated.
ECS Service
This template describes a fault tolerant and scalable ECS service on AWS. The service scales based on CPU utilization.
The image needs to expose port 80 or the
AWS::ECS::TaskDefinition
needs to be adjusted!
We provide two service templates:
service-cluster-alb.yaml
uses the cluster’s load balancer and path based routing. If you want to run multiple services on the same cluster they all will use the same domain name but start with different paths (e.g.https://yourdomain.com/service1/
andhttps://yourdomain.com/service2/
).service-dedicated-alb.yaml
includes a dedicated load balancer (ALB). You can then use a separate domain name for each service.
Using the Cluster’s Load Balancer and Path-Based Routing
This template describes a fault tolerant and scalable ECS service that uses the cluster’s load balancer and path based routing.
Using a Dedicated Load Balancer for the Service
This template describes a fault tolerant and scalable ECS service that uses a dedicated load balancer for the service.
VPC Legacy Wrapper
If you have an existing VPC you can wrap it into our required form using a legacy VPC wrapper.
Automated Tests
The goal of the tests is to ensure that our templates are always working. The tests are implemented in Java 8 and run in JUnit 4.
If you run this tests, many AWS CloudFormation tests are created and charges will apply!
widdix GmbH sponsors the test runs on every push and once per week to ensure that everything is working as expected.
Published at DZone with permission of Michael Wittig. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments