This repo contains a set of modules for deploying Consul Service Mesh on AWS ECS (Elastic Container Service).
See https://www.consul.io/docs/ecs for full documentation.
Each task is created via the mesh-task
module. This module adds
additional containers known as sidecar containers to your task definition.
Specifically, it adds the following containers:
consul-ecs-mesh-init
– Runs at startup to set up initial configuration for Consul and Envoy.consul-client
– Runs for the full lifecycle of the task. This container runs a Consul client that connects with Consul servers and configures the sidecar proxy.sidecar-proxy
– Runs for the full lifecycle of the task. This container runs Envoy which is used to proxy and control service mesh traffic. All requests to and from the application run through the sidecar proxy.health-sync
- Runs for the full lifecycle of the task. This container syncs health check statuses from ECS into Consul.
The acl-controller
module runs a controller that automatically provisions ACL tokens
for tasks on the mesh.
The dev-server
module runs a development/testing-only Consul server as an
ECS task.
Please see our Architecture docs for more details.
See https://www.consul.io/docs/ecs.
-
mesh-task: This module creates an ECS Task Definition that adds additional containers to your application task, so it can be part of the Consul service mesh.
-
dev-server [For Development/Testing Only]: This module deploys a Consul server onto your ECS Cluster for development/testing purposes. The server does not have persistent storage and so is not suitable for production deployments.
-
acl-controller: This modules deploys a controller that automatically provisions ACL tokens for services on the Consul service mesh.
Please refer to our roadmap here.
This code is released under the Mozilla Public License 2.0. Please see LICENSE for more details.