Consul on AWS Elastic Container Service (ECS) Overview
You can deploy Consul service mesh applications to AWS Elastic Container Service (ECS) using either our official Terraform modules or by manually configuring the task definition.
Service Mesh
Using Consul on AWS ECS enables you to add your ECS tasks to the service mesh and take advantage of features such as zero-trust-security, intentions, observability, traffic policy, and more. You can also connect service meshes so that services deployed across your infrastructure environments can communicate.
Architecture
Consul on ECS follows an architecture similar to other platforms, but each ECS task is a Consul node. An ECS task runs the user application container(s), as well as a Consul client container for control plane communication and an Envoy sidecar proxy container to facilitate data plane communication for Consul service mesh.
For a detailed architecture overview, see the Architecture page.
Getting Started
There are several ways to get started with Consul with ECS.
- The Serverless Consul Service Mesh with ECS and HCP learn guide shows how to use Terraform to run Consul service mesh applications on ECS with managed Consul servers running in HashiCorp Cloud Platform (HCP).
- The Service Mesh with ECS and Consul on EC2 learn guide shows how to use Terraform to run Consul service mesh applications on ECS with Consul servers running on EC2 instances.
- The Consul with Dev Server on Fargate example installation deploys a sample application in ECS using the Fargate launch type.
- The Consul with Dev Server on EC2 example installation deploys a sample application in ECS using the EC2 launch type.
Refer to the Requirements and use one of the following sets of instructions when you’re ready to install Consul on an existing ECS cluster and add tasks to the service mesh: