From 6985ccc7d3104580bf5a1ca4509709ba9cfd950e Mon Sep 17 00:00:00 2001 From: trujillo-adam Date: Tue, 14 Sep 2021 16:36:52 -0700 Subject: [PATCH 01/16] updates to ECS docs per beta release --- .../content/docs/ecs/get-started/install.mdx | 132 ------------------ .../docs/ecs/get-started/requirements.mdx | 14 +- website/content/docs/ecs/index.mdx | 4 +- website/data/docs-nav-data.json | 2 +- 4 files changed, 7 insertions(+), 145 deletions(-) diff --git a/website/content/docs/ecs/get-started/install.mdx b/website/content/docs/ecs/get-started/install.mdx index 7cc30e5525..bd860ed7b1 100644 --- a/website/content/docs/ecs/get-started/install.mdx +++ b/website/content/docs/ecs/get-started/install.mdx @@ -11,8 +11,6 @@ Installing Consul on ECS is a multi-part process: 1. [**Terraform:**](#terraform) Your tasks must be specified in Terraform using [`ecs_task_definition`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition) and [`ecs_service`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service) resources. -1. [**Consul Server:**](#consul-server) You must deploy the Consul server onto the cluster using the [`dev-server` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/dev-server). -1. [**Task IAM Role:**](#task-iam-role) Modify task IAM role to add `ecs:ListTasks` and `ecs:DescribeTasks` permissions. 1. [**Task Module:**](#task-module) You can then take your `ecs_task_definition` resources and copy their configuration into a new [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task) resource that will add the necessary containers to the task definition. 1. [**Routing:**](#routing) With your tasks as part of the mesh, you must specify their upstream @@ -72,136 +70,6 @@ resource "aws_ecs_service" "my_task" { } ``` -## Consul Server - -With your tasks defined in Terraform, you're ready to run the Consul server -on ECS. - --> **NOTE:** This is a development-only Consul server. It has no persistent -storage and so will lose any data when it restarts. This should only be -used for test workloads. In the future, we will support Consul servers -running in HashiCorp Cloud Platform and on EC2 VMs for production workloads. - -In order to deploy the Consul server, use the `dev-server` module: - -```hcl -module "dev_consul_server" { - source = "hashicorp/consul/aws-ecs//modules/dev-server" - version = "" - - ecs_cluster_arn = var.ecs_cluster_arn - subnet_ids = var.subnet_ids - lb_vpc_id = var.vpc_id - load_balancer_enabled = true - lb_subnets = var.lb_subnet_ids - lb_ingress_rule_cidr_blocks = var.lb_ingress_rule_cidr_blocks - log_configuration = { - logDriver = "awslogs" - options = { - awslogs-group = aws_cloudwatch_log_group.log_group.name - awslogs-region = var.region - awslogs-stream-prefix = "consul-server" - } - } -} - -data "aws_security_group" "vpc_default" { - name = "default" - vpc_id = var.vpc_id -} - -resource "aws_security_group_rule" "ingress_from_server_alb_to_ecs" { - type = "ingress" - from_port = 8500 - to_port = 8500 - protocol = "tcp" - source_security_group_id = module.dev_consul_server.lb_security_group_id - security_group_id = data.aws_security_group.vpc_default.id -} - -output "consul_server_url" { - value = "http://${module.dev_consul_server.lb_dns_name}:8500" -} -``` - --> **NOTE:** The documentation for all possible inputs can be found in the [module reference -docs](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/dev-server?tab=inputs). - -The example code above will create a Consul server ECS task and Application Load -Balancer for the Consul UI. You can then use the output `consul_server_url` as -the URL to the Consul server. - -## Task IAM Role - -Your tasks must have an IAM role that allows them to list and describe -other tasks. This is required in order for the tasks to find the IP -address of the Consul server. - -The specific permissions needed are: - -1. `ecs:ListTasks` on resource `*`. -1. `ecs:DescribeTasks` on all tasks in this account and region. You can either - use `*` for simplicity or scope it to the region and account, e.g. `arn:aws:ecs:us-east-1:1111111111111:task/*`. If - your account is configured to use the new, [longer ECS task ARN format](https://docs.aws.amazon.com/AmazonECS/latest/userguide/ecs-account-settings.html#ecs-resource-ids) - then you can further scope `ecs:DescribeTasks` down to tasks in a specific cluster, e.g. `arn:aws:ecs:us-east-1:1111111111111:task/MY_CLUSTER_NAME/*`. - -The IAM role's ARN will be passed into the `mesh-task` module in the next step -via the `task_role_arn` input. - --> **NOTE:** There are two IAM roles needed by ECS Tasks: Execution roles and -Task roles. Here we are referring to the Task role, not the Execution role. -The Execution role is used by ECS itself whereas the Task role defines the -permissions for the containers running in the task. - -Terraform for creating the IAM role might look like: - -```hcl -data "aws_caller_identity" "this" {} - -resource "aws_iam_role" "this_task" { - name = "this_task" - assume_role_policy = jsonencode({ - Version = "2012-10-17" - Statement = [ - { - Action = "sts:AssumeRole" - Effect = "Allow" - Sid = "" - Principal = { - Service = "ecs-tasks.amazonaws.com" - } - }, - ] - }) - - inline_policy { - name = "this_task" - policy = jsonencode({ - Version = "2012-10-17" - Statement = [ - { - Effect = "Allow" - Action = [ - "ecs:ListTasks", - ] - Resource = "*" - }, - { - Effect = "Allow" - Action = [ - "ecs:DescribeTasks" - ] - Resource = [ - "arn:aws:ecs:${var.region}:${data.aws_caller_identity.this.account_id}:task/*", - ] - } - ] - }) - } -} - -``` - ## Task Module In order to add the necessary sidecar containers for your task to join the mesh, diff --git a/website/content/docs/ecs/get-started/requirements.mdx b/website/content/docs/ecs/get-started/requirements.mdx index eae69f257d..33f1ab4591 100644 --- a/website/content/docs/ecs/get-started/requirements.mdx +++ b/website/content/docs/ecs/get-started/requirements.mdx @@ -7,16 +7,10 @@ description: >- # Requirements -Currently, the following requirements must be met in order to install Consul on ECS: +The following requirements must be met in order to install Consul on ECS: 1. **Terraform:** The tasks that you want to add to the service mesh must first be modeled in Terraform. -1. **Launch Type:** Only the Fargate launch type is currently supported. +1. **Launch Type:** Fargate and EC2 launch types are supported. 1. **Subnets:** ECS Tasks can run in private or public subnets. Tasks must have [network access](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-pull-container-api-error-ecr/) to Amazon ECR to pull images. -1. **Consul Servers:** Currently, Consul servers must run inside ECS on Fargate using the `dev-server` Terraform module. This is a development/testing only server that does not support persistent storage. In the future, we will support production-ready Consul servers running in HashiCorp Cloud Platform and on EC2 VMs. - -## Future Improvements - -- Support EC2 launch type. -- Support production-ready Consul servers running outside of ECS in HashiCorp Cloud Platform or EC2. -- Support Consul TLS, ACLs, and Gossip Encryption. -- Support Consul service health checks. +1. **Consul Servers:** You can use your own Consul servers or run servers inside ECS on Fargate using the `dev-server` Terraform module. The is a development/testing only server that does not support persistent storage. +1. **ACL Controller:** If you are running a secure Consul installation, configure the ACL controller. diff --git a/website/content/docs/ecs/index.mdx b/website/content/docs/ecs/index.mdx index e3518beb3e..67c20c589f 100644 --- a/website/content/docs/ecs/index.mdx +++ b/website/content/docs/ecs/index.mdx @@ -8,8 +8,8 @@ description: >- # AWS ECS --> **Tech Preview:** This functionality is currently in Tech Preview and is -not yet ready for production use. +-> **Beta:** This functionality is currently in beta and is +not recommended for use in production environments. Refer to the [consul-ecs-project road map](https://github.com/hashicorp/consul-ecs/projects/1) for information about upcoming features and enhancements. Consul can be deployed on [AWS ECS](https://aws.amazon.com/ecs/) (Elastic Container Service) using our official Terraform modules. diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json index 5b27cffc1f..15838d9da8 100644 --- a/website/data/docs-nav-data.json +++ b/website/data/docs-nav-data.json @@ -556,7 +556,7 @@ ] }, { - "title": "AWS ECS Tech Preview", + "title": "AWS ECS BETA", "routes": [ { "title": "Overview", From cf0ebdf7516d0264e0c4aa20d7370521e822c97e Mon Sep 17 00:00:00 2001 From: trujillo-adam <47586768+trujillo-adam@users.noreply.github.com> Date: Wed, 15 Sep 2021 10:46:00 -0700 Subject: [PATCH 02/16] Apply suggestions from code review Co-authored-by: mrspanishviking --- website/content/docs/ecs/get-started/requirements.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/content/docs/ecs/get-started/requirements.mdx b/website/content/docs/ecs/get-started/requirements.mdx index 33f1ab4591..f063e20123 100644 --- a/website/content/docs/ecs/get-started/requirements.mdx +++ b/website/content/docs/ecs/get-started/requirements.mdx @@ -11,6 +11,6 @@ The following requirements must be met in order to install Consul on ECS: 1. **Terraform:** The tasks that you want to add to the service mesh must first be modeled in Terraform. 1. **Launch Type:** Fargate and EC2 launch types are supported. -1. **Subnets:** ECS Tasks can run in private or public subnets. Tasks must have [network access](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-pull-container-api-error-ecr/) to Amazon ECR to pull images. -1. **Consul Servers:** You can use your own Consul servers or run servers inside ECS on Fargate using the `dev-server` Terraform module. The is a development/testing only server that does not support persistent storage. +1. **Subnets:** ECS Tasks can run in private or public subnets. Tasks must have [network access](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-pull-container-api-error-ecr/) to Amazon ECR or other public container registries to pull images. +1. **Consul Servers:** You can use your own Consul servers (VM) or use HCP Consul. For development purposes or testing, you may use the `dev-server` [Terraform module](https://github.com/hashicorp/terraform-aws-consul-ecs/tree/main). The `dev-server` does not support persistent storage. 1. **ACL Controller:** If you are running a secure Consul installation, configure the ACL controller. From be46f2d7b72ed5e0b90ee90dde05f8e8e09f62b8 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Wed, 15 Sep 2021 13:00:33 -0500 Subject: [PATCH 03/16] ECS architecture docs for Beta --- website/content/docs/ecs/architecture.mdx | 45 ++++++++++++++-------- website/public/img/consul-ecs-arch.png | Bin 90967 -> 77203 bytes website/public/img/ecs-task-startup.png | Bin 15140 -> 11547 bytes 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/website/content/docs/ecs/architecture.mdx b/website/content/docs/ecs/architecture.mdx index 5c1e9cd592..d8203a31bc 100644 --- a/website/content/docs/ecs/architecture.mdx +++ b/website/content/docs/ecs/architecture.mdx @@ -9,9 +9,9 @@ description: >- ![Consul on ECS Architecture](/img/consul-ecs-arch.png) -As shown above there are two main components to the architecture. +As shown above, these are the main components to the architecture for a secure installation: -1. **Consul Server task:** Runs the Consul server. +1. **Consul Servers:** Production-ready Consul server cluster 1. **Application tasks:** Runs user application containers along with two helper containers: 1. **Consul Client:** The Consul client container runs Consul. The Consul client communicates with the Consul server and configures the Envoy proxy sidecar. This communication @@ -19,14 +19,13 @@ As shown above there are two main components to the architecture. 1. **Sidecar Proxy:** The sidecar proxy container runs [Envoy](https://envoyproxy.io/). All requests to and from the application container(s) run through the sidecar proxy. This communication is called _data plane_ communication. +1. **ACL Controller:** Automatically provisions Consul ACL tokens for Consul clients and service mesh services + in an ECS Cluster. For more information about how Consul works in general, see Consul's [Architecture Overview](/docs/architecture). -In addition to the long-running Consul Client and Sidecar Proxy containers, there -are also two initialization containers that run: - -1. `discover-servers`: This container runs at startup and uses the AWS API to determine the IP address of the Consul server task. -1. `mesh-init`: This container runs at startup and sets up initial configuration for Consul and Envoy. +In addition to the long-running Consul Client and Sidecar Proxy containers, the `mesh-init` container runs +at startup and sets up initial configuration for Consul and Envoy. ### Task Startup @@ -34,12 +33,28 @@ This diagram shows the timeline of a task starting up and all its containers: ![Task Startup Timeline](/img/ecs-task-startup.png) -- **T0:** ECS starts the task. The `discover-servers` container starts looking for the Consul server task’s IP. - It waits for the Consul server task to be running on ECS, looks up its IP and then writes the address to a file. - Then the container exits. -- **T1:** Both the `consul-client` and `mesh-init` containers start: - - `consul-client` starts up and uses the server IP to join the cluster. +- **T0:** ECS starts the task. The `consul-client` and `mesh-init` containers start: + - `consul-client` uses the `retry-join` option to join the Consul cluster - `mesh-init` registers the service for this task and its sidecar proxy into Consul. It runs `consul connect envoy -bootstrap` to generate Envoy’s bootstrap JSON file and write it to a shared volume. After registration and bootstrapping, `mesh-init` exits. -- **T2:** The `sidecar-proxy` container starts. It runs Envoy by executing `envoy -c `. -- **T3:** The `sidecar-proxy` container is marked as healthy by ECS. It uses a health check that detects if its public listener port is open. At this time, the user’s application containers are started since all the Consul machinery is ready to service requests. -- **T4:** Consul marks the service as healthy by running the health checks specified in the task Terraform. The service will now receive traffic. At this time the only running containers are `consul-client`, `sidecar-proxy` and the user’s application container(s). +- **T1:** The `sidecar-proxy` container starts. It runs Envoy by executing `envoy -c `. +- **T2:** The `sidecar-proxy` container is marked as healthy by ECS. It uses a health check that detects if its public listener port is open. At this time, the user’s application containers are started since all the Consul machinery is ready to service requests. +- **T3:** Consul marks the service as healthy by running the health checks specified in the task Terraform. The service will now receive traffic. At this time the only running containers are `consul-client`, `sidecar-proxy` and the user’s application container(s). + +### Automatic ACL Token Provisioning + +Consul ACL tokens secure communication between agents and services. +The following containers in a task require an ACL token: + +- `consul-client`: The Consul client uses a token to authorize itself with Consul servers. + All `consul-client` containers share the same token. +- `mesh-init`: The `mesh-init` container uses a token to register the service with Consul. + This token is unique for the Consul service, and is shared by instances of the service. + +The ACL controller automatically creates ACL tokens for mesh-enabled tasks in an ECS cluster. +The `acl-controller` Terraform module creates the ACL token used by `consul-client` containers, and +then starts the ACL controller task. The controller watches for tasks in the cluster. It checks tags +to determine if the task is mesh-enabled. If so, it creates the service ACL token for the task, if the +token does not yet exist. + +The ACL controller stores all ACL tokens in AWS Secrets Manager, and tasks are configured to pull these +tokens from AWS Secrets Manager when they start. diff --git a/website/public/img/consul-ecs-arch.png b/website/public/img/consul-ecs-arch.png index 8e6dc96ddec7b702bcb0d9e82d9d9c861a9bdfca..89fd333495e57719144fc23d667aff890a8ba2d2 100644 GIT binary patch literal 77203 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�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 z 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 Po>6?KCRZ+F_T~QoxRsKC literal 90967 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

fzMrCcjTH(I99SHEBcd@xbqEfyVi-?^nlaUP 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 z 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�P-s+V!{g~!BNZW*n*C)QE#5`82E^wm-` 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 literal 15140 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 Bmwo^M From 4263f93eb606719c1f283e0a6aa80aa11f0063e2 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Wed, 15 Sep 2021 13:38:19 -0500 Subject: [PATCH 04/16] docs: correct point about service health checks for ECS --- website/content/docs/ecs/architecture.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/docs/ecs/architecture.mdx b/website/content/docs/ecs/architecture.mdx index d8203a31bc..df108a6248 100644 --- a/website/content/docs/ecs/architecture.mdx +++ b/website/content/docs/ecs/architecture.mdx @@ -38,7 +38,7 @@ This diagram shows the timeline of a task starting up and all its containers: - `mesh-init` registers the service for this task and its sidecar proxy into Consul. It runs `consul connect envoy -bootstrap` to generate Envoy’s bootstrap JSON file and write it to a shared volume. After registration and bootstrapping, `mesh-init` exits. - **T1:** The `sidecar-proxy` container starts. It runs Envoy by executing `envoy -c `. - **T2:** The `sidecar-proxy` container is marked as healthy by ECS. It uses a health check that detects if its public listener port is open. At this time, the user’s application containers are started since all the Consul machinery is ready to service requests. -- **T3:** Consul marks the service as healthy by running the health checks specified in the task Terraform. The service will now receive traffic. At this time the only running containers are `consul-client`, `sidecar-proxy` and the user’s application container(s). +- **T3:** The service will now receive traffic. At this time the only running containers are `consul-client`, `sidecar-proxy` and the user’s application container(s). ### Automatic ACL Token Provisioning From c53b0d2ebbe46d57f52d4ce5a1eb4a3eba7ba8a8 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Wed, 15 Sep 2021 13:49:33 -0500 Subject: [PATCH 05/16] docs: remove T3 in ECS task startup arch doc --- website/content/docs/ecs/architecture.mdx | 3 +-- website/public/img/ecs-task-startup.png | Bin 11547 -> 10694 bytes 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/website/content/docs/ecs/architecture.mdx b/website/content/docs/ecs/architecture.mdx index df108a6248..a9ab9ead2d 100644 --- a/website/content/docs/ecs/architecture.mdx +++ b/website/content/docs/ecs/architecture.mdx @@ -37,8 +37,7 @@ This diagram shows the timeline of a task starting up and all its containers: - `consul-client` uses the `retry-join` option to join the Consul cluster - `mesh-init` registers the service for this task and its sidecar proxy into Consul. It runs `consul connect envoy -bootstrap` to generate Envoy’s bootstrap JSON file and write it to a shared volume. After registration and bootstrapping, `mesh-init` exits. - **T1:** The `sidecar-proxy` container starts. It runs Envoy by executing `envoy -c `. -- **T2:** The `sidecar-proxy` container is marked as healthy by ECS. It uses a health check that detects if its public listener port is open. At this time, the user’s application containers are started since all the Consul machinery is ready to service requests. -- **T3:** The service will now receive traffic. At this time the only running containers are `consul-client`, `sidecar-proxy` and the user’s application container(s). +- **T2:** The `sidecar-proxy` container is marked as healthy by ECS. It uses a health check that detects if its public listener port is open. At this time, the user’s application containers are started since all the Consul machinery is ready to service requests. The only running containers are `consul-client`, `sidecar-proxy` and the user’s application container(s). ### Automatic ACL Token Provisioning diff --git a/website/public/img/ecs-task-startup.png b/website/public/img/ecs-task-startup.png index 475def2ebfca655cc150c9b21a3595bfbce38a5c..6b9e587b2c607d313e7b4c7849e1d7f226c42f6c 100644 GIT binary patch literal 10694 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�P-s+V!{g~!BNZW*n*C)QE#5`82E^wm-` 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 From ad4936afdb42c8f6addb571ac7974fc7c6daf1e6 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Wed, 15 Sep 2021 15:04:39 -0500 Subject: [PATCH 06/16] docs: Address ECS architecture feedback --- website/content/docs/ecs/architecture.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/website/content/docs/ecs/architecture.mdx b/website/content/docs/ecs/architecture.mdx index a9ab9ead2d..e6e3ed39f4 100644 --- a/website/content/docs/ecs/architecture.mdx +++ b/website/content/docs/ecs/architecture.mdx @@ -7,16 +7,16 @@ description: >- # Architecture +The following diagram shows the main components of the Consul architecture when deployed to an ECS cluster: + ![Consul on ECS Architecture](/img/consul-ecs-arch.png) -As shown above, these are the main components to the architecture for a secure installation: - -1. **Consul Servers:** Production-ready Consul server cluster +1. **Consul servers:** Production-ready Consul server cluster 1. **Application tasks:** Runs user application containers along with two helper containers: - 1. **Consul Client:** The Consul client container runs Consul. The Consul client communicates + 1. **Consul client:** The Consul client container runs Consul. The Consul client communicates with the Consul server and configures the Envoy proxy sidecar. This communication is called _control plane_ communication. - 1. **Sidecar Proxy:** The sidecar proxy container runs [Envoy](https://envoyproxy.io/). All requests + 1. **Sidecar proxy:** The sidecar proxy container runs [Envoy](https://envoyproxy.io/). All requests to and from the application container(s) run through the sidecar proxy. This communication is called _data plane_ communication. 1. **ACL Controller:** Automatically provisions Consul ACL tokens for Consul clients and service mesh services @@ -24,7 +24,7 @@ As shown above, these are the main components to the architecture for a secure i For more information about how Consul works in general, see Consul's [Architecture Overview](/docs/architecture). -In addition to the long-running Consul Client and Sidecar Proxy containers, the `mesh-init` container runs +In addition to the long-running Consul client and sidecar proxy containers, the `mesh-init` container runs at startup and sets up initial configuration for Consul and Envoy. ### Task Startup @@ -37,7 +37,7 @@ This diagram shows the timeline of a task starting up and all its containers: - `consul-client` uses the `retry-join` option to join the Consul cluster - `mesh-init` registers the service for this task and its sidecar proxy into Consul. It runs `consul connect envoy -bootstrap` to generate Envoy’s bootstrap JSON file and write it to a shared volume. After registration and bootstrapping, `mesh-init` exits. - **T1:** The `sidecar-proxy` container starts. It runs Envoy by executing `envoy -c `. -- **T2:** The `sidecar-proxy` container is marked as healthy by ECS. It uses a health check that detects if its public listener port is open. At this time, the user’s application containers are started since all the Consul machinery is ready to service requests. The only running containers are `consul-client`, `sidecar-proxy` and the user’s application container(s). +- **T2:** The `sidecar-proxy` container is marked as healthy by ECS. It uses a health check that detects if its public listener port is open. At this time, your application containers are started since all Consul machinery is ready to service requests. The only running containers are `consul-client`, `sidecar-proxy`, and your application container(s). ### Automatic ACL Token Provisioning From 1e97752f3182d5b9f2ce3a7f721f9c0c9a29b1dc Mon Sep 17 00:00:00 2001 From: trujillo-adam Date: Wed, 15 Sep 2021 14:09:47 -0700 Subject: [PATCH 07/16] applied comment feedback about my_task example --- website/content/docs/ecs/get-started/install.mdx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/website/content/docs/ecs/get-started/install.mdx b/website/content/docs/ecs/get-started/install.mdx index bd860ed7b1..82116d5855 100644 --- a/website/content/docs/ecs/get-started/install.mdx +++ b/website/content/docs/ecs/get-started/install.mdx @@ -37,8 +37,6 @@ resource "aws_ecs_task_definition" "my_task" { network_mode = "awsvpc" cpu = 256 memory = 512 - execution_role_arn = "arn:aws:iam::111111111111:role/execution-role" - task_role_arn = "arn:aws:iam::111111111111:role/task-role" container_definitions = jsonencode( [{ name = "example-client-app" @@ -86,8 +84,6 @@ module "my_task" { version = "" family = "my_task" - execution_role_arn = "arn:aws:iam::111111111111:role/execution-role" - task_role_arn = "arn:aws:iam::111111111111:role/task-role" container_definitions = [ { name = "example-client-app" @@ -107,7 +103,7 @@ module "my_task" { ] port = "9090" - consul_server_service_name = module.dev_consul_server.ecs_service_name + retry_join = "
" } ``` From 0480cf4fe73473dc8134f59c20f6b0e6779b9fbf Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Wed, 15 Sep 2021 16:18:37 -0500 Subject: [PATCH 08/16] docs: ECS architecture feedback --- website/content/docs/ecs/architecture.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/content/docs/ecs/architecture.mdx b/website/content/docs/ecs/architecture.mdx index e6e3ed39f4..2dcfcbf689 100644 --- a/website/content/docs/ecs/architecture.mdx +++ b/website/content/docs/ecs/architecture.mdx @@ -50,8 +50,8 @@ The following containers in a task require an ACL token: This token is unique for the Consul service, and is shared by instances of the service. The ACL controller automatically creates ACL tokens for mesh-enabled tasks in an ECS cluster. -The `acl-controller` Terraform module creates the ACL token used by `consul-client` containers, and -then starts the ACL controller task. The controller watches for tasks in the cluster. It checks tags +The `acl-controller` Terraform module creates the ACL controller task. The controller creates the +ACL token used by `consul-client` containers at startup and then watches for tasks in the cluster. It checks tags to determine if the task is mesh-enabled. If so, it creates the service ACL token for the task, if the token does not yet exist. From 13c6973e47452917b72cde2e40d35642737342b4 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Wed, 15 Sep 2021 16:10:04 -0500 Subject: [PATCH 09/16] docs: Migrate Existing Tasks page for ECS --- .../get-started/migrate-existing-tasks.mdx | 173 ++++++++++++++++++ website/data/docs-nav-data.json | 4 + 2 files changed, 177 insertions(+) create mode 100644 website/content/docs/ecs/get-started/migrate-existing-tasks.mdx diff --git a/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx b/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx new file mode 100644 index 0000000000..b5ee18868e --- /dev/null +++ b/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx @@ -0,0 +1,173 @@ +--- +layout: docs +page_title: Migrate Existing Tasks - AWS ECS +description: >- + Migrate Existing Tasks +--- + +# Migrate Existing Tasks + +This guide explains how to migrate your existing ECS Tasks to use our [`mesh-task` Terraform module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). + +## Define Tasks in Terraform + +Your tasks must first be specified in Terraform using [`ecs_task_definition`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition) +and [`ecs_service`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service) resources so that +they can later be converted to use the [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). + +For example, your tasks should be defined with Terraform similar to the following: + +```hcl +resource "aws_ecs_task_definition" "my_task" { + family = "my_task" + requires_compatibilities = ["FARGATE"] + network_mode = "awsvpc" + cpu = 256 + memory = 512 + execution_role_arn = "arn:aws:iam::111111111111:role/execution-role" + task_role_arn = "arn:aws:iam::111111111111:role/task-role" + container_definitions = jsonencode( + [{ + name = "example-client-app" + image = "docker.io/org/my_task:v0.0.1" + essential = true + portMappings = [ + { + containerPort = 9090 + hostPort = 9090 + protocol = "tcp" + } + ] + cpu = 0 + mountPoints = [] + volumesFrom = [] + }] + ) +} + +resource "aws_ecs_service" "my_task" { + name = "my_task" + cluster = "arn:aws:ecs:us-east-1:111111111111:cluster/my-cluster" + task_definition = aws_ecs_task_definition.my_task.arn + desired_count = 1 + network_configuration { + subnets = ["subnet-abc123"] + } + launch_type = "FARGATE" +} +``` + +## Convert Tasks to Mesh Module + +In order to add the necessary sidecar containers for your task to join the mesh, +you must use the [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). + +The `mesh-task` module uses inputs similar to your old ECS task definition but +creates a new version of the task definition with additional containers. + +The `mesh-task` module is used as follows: + +```hcl +module "my_task" { + source = "hashicorp/consul/aws-ecs//modules/mesh-task" + version = "" + + family = "my_task" + container_definitions = [ + { + name = "example-client-app" + image = "docker.io/org/my_task:v0.0.1" + essential = true + portMappings = [ + { + containerPort = 9090 + hostPort = 9090 + protocol = "tcp" + } + ] + cpu = 0 + mountPoints = [] + volumesFrom = [] + } + ] + + port = "9090" + retry_join = "
" +} +``` + +All possible inputs are documented on the [module reference documentation](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task?tab=inputs) +however there are some important inputs worth highlighting: + +- You do not need the `execution_role_arn` or `task_role_arn` fields. The `mesh-task` module will create the task and execution roles. +- `family` is used as the [task definition family](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#family) and the name of the service that is registered in Consul. +- `container_definitions` accepts an array of [container definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definitions). + These are your application containers and are the same as `container_definitions` key in the + `aws_ecs_task_definition` resource without the `jsonencode() function`. + + For example, if your original task definition looked like: + + ```hcl + resource "aws_ecs_task_definition" "my_task" { + ... + container_definitions = jsonencode( + [ + { + name = "example-client-app" + image = "docker.io/org/my_task:v0.0.1" + essential = true + ... + } + ] + ) + } + ``` + + Then remove the `jsonencode()` function and use the rest of the value + as the input for the `mesh-task` module: + + ```hcl + module "my_task" { + source = "hashicorp/consul/aws-ecs//modules/mesh-task" + version = "" + + ... + container_definitions = [ + { + name = "example-client-app" + image = "docker.io/org/my_task:v0.0.1" + essential = true + ... + } + ] + } + ``` + +- `port` is the port that your application listens on. This should be set to a + string, not an integer, i.e. `port = "9090"`, not `port = 9090`. +- `retry_join` is passed to the `-retry-join` option for the Consul agent. This tells + the agent the location of your Consul server so that it can join the Consul cluster. + +The `mesh-task` module will create a new version of your task definition with the +necessary sidecar containers added so you can delete your existing `aws_ecs_task_definition` +resource. + +Your `aws_ecs_service` resource can remain unchanged except for the `task_definition` +input which should reference the new module's output of the task definition's ARN: + +```hcl +resource "aws_ecs_service" "my_task" { + ... + task_definition = module.my_task.task_definition_arn +} +``` + +-> **NOTE:** If your tasks run in a public subnet, they must have `assign_public_ip = true` +in their [`network_configuration`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service#network_configuration) block so that ECS can pull the Docker images. + +After running `terraform apply`, you should see your tasks registered in +the Consul UI. + +## Complete Installation + +Now that your task(s) are migrated to the `mesh-task` module, see the [Install Guide](/docs/ecs/get-started/install) to install Consul on ECS. diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json index 15838d9da8..1451888777 100644 --- a/website/data/docs-nav-data.json +++ b/website/data/docs-nav-data.json @@ -576,6 +576,10 @@ { "title": "Install", "path": "ecs/get-started/install" + }, + { + "title": "Migrate Existing Tasks", + "path": "ecs/get-started/migrate-existing-tasks" } ] }, From 2c9fbc2bff330a7bd629aa3f6de7ccc659620309 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Wed, 15 Sep 2021 17:02:29 -0500 Subject: [PATCH 10/16] docs: update ECS Install guide for beta --- .../content/docs/ecs/get-started/install.mdx | 159 ++++-------------- .../get-started/migrate-existing-tasks.mdx | 95 ++--------- website/data/docs-nav-data.json | 2 +- 3 files changed, 47 insertions(+), 209 deletions(-) diff --git a/website/content/docs/ecs/get-started/install.mdx b/website/content/docs/ecs/get-started/install.mdx index 82116d5855..d74498e7b9 100644 --- a/website/content/docs/ecs/get-started/install.mdx +++ b/website/content/docs/ecs/get-started/install.mdx @@ -1,94 +1,40 @@ --- layout: docs -page_title: Install - AWS ECS +page_title: Installation - AWS ECS description: >- Install Consul Service Mesh on AWS ECS (Elastic Container Service). --- -# Install +# Installation Installing Consul on ECS is a multi-part process: -1. [**Terraform:**](#terraform) Your tasks must be specified in Terraform using [`ecs_task_definition`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition) - and [`ecs_service`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service) resources. -1. [**Task Module:**](#task-module) You can then take your `ecs_task_definition` resources and copy their configuration into a new [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task) - resource that will add the necessary containers to the task definition. +1. [**Task Module:**](#task-module) Define the [`mesh-task` Terraform module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task) + to create a task definition with the necessary sidecar containers for your application to join the service mesh. 1. [**Routing:**](#routing) With your tasks as part of the mesh, you must specify their upstream - services and change the URLs the tasks are using so that they're making requests - through the service mesh. + services and change the URLs the tasks are using so that they're making requests through the service mesh. 1. [**Bind Address:**](#bind-address) Now that all communication is flowing through the service mesh, you should change the address your application is listening on to `127.0.0.1` so that it only receives requests through the sidecar proxy. -> **NOTE:** This page assumes you're familiar with ECS. See [What is Amazon Elastic Container Service](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) for more details. -## Terraform - -Your tasks must first be specified in Terraform using [`ecs_task_definition`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition) -and [`ecs_service`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service) resources so that -they can later be converted to use the [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). - -For example, your tasks should be defined with Terraform similar to the following: - -```hcl -resource "aws_ecs_task_definition" "my_task" { - family = "my_task" - requires_compatibilities = ["FARGATE"] - network_mode = "awsvpc" - cpu = 256 - memory = 512 - container_definitions = jsonencode( - [{ - name = "example-client-app" - image = "docker.io/org/my_task:v0.0.1" - essential = true - portMappings = [ - { - containerPort = 9090 - hostPort = 9090 - protocol = "tcp" - } - ] - cpu = 0 - mountPoints = [] - volumesFrom = [] - }] - ) -} - -resource "aws_ecs_service" "my_task" { - name = "my_task" - cluster = "arn:aws:ecs:us-east-1:111111111111:cluster/my-cluster" - task_definition = aws_ecs_task_definition.my_task.arn - desired_count = 1 - network_configuration { - subnets = ["subnet-abc123"] - } - launch_type = "FARGATE" -} -``` - ## Task Module In order to add the necessary sidecar containers for your task to join the mesh, -you must use the [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). - -The module will reference the same inputs as your old ECS task definition but it will -create a new version of the task definition with additional containers. - -The `mesh-task` module is used as follows: +you must use the [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task): ```hcl module "my_task" { source = "hashicorp/consul/aws-ecs//modules/mesh-task" version = "" - family = "my_task" + family = "my_task" container_definitions = [ { - name = "example-client-app" - image = "docker.io/org/my_task:v0.0.1" - essential = true + name = "example-client-app" + image = "docker.io/org/my_task:v0.0.1" + essential = true portMappings = [ { containerPort = 9090 @@ -102,71 +48,25 @@ module "my_task" { } ] - port = "9090" + port = "9090" retry_join = "
" } ``` -All possible inputs are documented on the [module reference documentation](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task?tab=inputs) +All possible inputs are documented on the [module reference documentation](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task?tab=inputs), however there are some important inputs worth highlighting: - `family` is used as the [task definition family](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#family) but it's also used as the name of the service that gets registered in Consul. - `container_definitions` accepts an array of [container definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definitions). - These are your application containers and this should be set to the same value as what you - were passing into the `container_definitions` key in the `aws_ecs_task_definition` resource - without the `jsonencode() function`. - - For example, if your original task definition looked like: - - ```hcl - resource "aws_ecs_task_definition" "my_task" { - ... - container_definitions = jsonencode( - [ - { - name = "example-client-app" - image = "docker.io/org/my_task:v0.0.1" - essential = true - ... - } - ] - ) - } - ``` - - Then you would remove the `jsonencode()` function and use the rest of the value - as the input for the `mesh-task` module: - - ```hcl - module "my_task" { - source = "hashicorp/consul/aws-ecs//modules/mesh-task" - version = "" - - ... - container_definitions = [ - { - name = "example-client-app" - image = "docker.io/org/my_task:v0.0.1" - essential = true - ... - } - ] - } - ``` - + This is where you include application containers. - `port` is the port that your application listens on. This should be set to a string, not an integer, i.e. `port = "9090"`, not `port = 9090`. -- `consul_server_service_name` should be set to the name of the ECS service for - the Consul dev server. This is an output of the `dev-server` module so it - can be referenced, e.g. `consul_server_service_name = module.dev_consul_server.ecs_service_name`. +- `retry_join` is passed to the `-retry-join` option for the Consul agent. This tells + the agent the location of your Consul server so that it can join the Consul cluster. -The `mesh-task` module will create a new version of your task definition with the -necessary sidecar containers added so you can delete your existing `aws_ecs_task_definition` -resource. - -Your `aws_ecs_service` resource can remain unchanged except for the `task_definition` -input which should reference the new module's output of the task definition's ARN: +To define an ECS service, reference the mesh-task module's `task_definition_arn` output value +in your `aws_ecs_service` resource: ```hcl resource "aws_ecs_service" "my_task" { @@ -191,10 +91,10 @@ proxy to listen on a different port for each upstream service your application needs to call. You then must modify your application to make requests to the sidecar proxy on that port. -For example, say my application `web` wants to make calls to my other application +For example, say your application `web` wants to make calls to my other application `backend`. -First, I must configure the `mesh-task` module's upstreams: +First, you must configure the `mesh-task` module's upstream(s): ```hcl module "web" { @@ -208,19 +108,19 @@ module "web" { } ``` -I set the `destination_name` to the name of the upstream service (in this case `backend`), -and I set `local_bind_port` to an unused port. This is the port that the sidecar proxy -will listen on and any requests to this port will be forwarded over to the `destination_name`. -This does not have to be the port that `backend` is listening on because the service mesh -will handle routing the request to the right port. +- Set the `destination_name` to the name of the upstream service (in this case `backend`) +- Set `local_bind_port` to an unused port. This is the port that the sidecar proxy + will listen on. Any requests to this port will be forwarded over to the `destination_name`. + This does not have to be the port that `backend` is listening on because the service mesh + will handle routing the request to the right port. -If you have multiple upstream services they'll each need to be listed here. +If you have multiple upstream services they each need to be listed here. -Next, I must configure my application to make requests to `localhost:8080` when +Next, configure your application to make requests to `localhost:8080` when it wants to call the `backend` service. -For example, if my service allows configuring the URL for `backend` via the -`BACKEND_URL` environment variable, I would set: +For example, if your service allows configuring the URL for `backend` via the +`BACKEND_URL` environment variable, you would set: ```hcl module "web" { @@ -251,7 +151,7 @@ module "web" { To ensure that your application only receives traffic through the service mesh, you must change the address that your application is listening on to only the loopback address -(also known as `localhost`, `lo` and `127.0.0.1`) +(also known as `localhost`, `lo`, and `127.0.0.1`) so that only the sidecar proxy running in the same task can make requests to it. If your application is listening on all interfaces, e.g. `0.0.0.0`, then other @@ -279,6 +179,7 @@ python manage.py runserver "127.0.0.1:8080" ## Next Steps +- Configure a secure [Production Installation](TODO-LINK). - Now that your applications are running in the service mesh, read about other [Service Mesh features](/docs/connect). - View the [Architecture](/docs/ecs/architecture) documentation to understand diff --git a/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx b/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx index b5ee18868e..a5f59d5fab 100644 --- a/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx +++ b/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx @@ -11,9 +11,8 @@ This guide explains how to migrate your existing ECS Tasks to use our [`mesh-tas ## Define Tasks in Terraform -Your tasks must first be specified in Terraform using [`ecs_task_definition`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition) -and [`ecs_service`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service) resources so that -they can later be converted to use the [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). +Your tasks must first be specified in Terraform using the [`ecs_task_definition`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition) +resource so that they can then be converted to use the [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). For example, your tasks should be defined with Terraform similar to the following: @@ -57,7 +56,7 @@ resource "aws_ecs_service" "my_task" { } ``` -## Convert Tasks to Mesh Module +## Convert to the `mesh-task` Module In order to add the necessary sidecar containers for your task to join the mesh, you must use the [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). @@ -72,12 +71,12 @@ module "my_task" { source = "hashicorp/consul/aws-ecs//modules/mesh-task" version = "" - family = "my_task" + family = "my_task" container_definitions = [ { - name = "example-client-app" - image = "docker.io/org/my_task:v0.0.1" - essential = true + name = "example-client-app" + image = "docker.io/org/my_task:v0.0.1" + essential = true portMappings = [ { containerPort = 9090 @@ -91,83 +90,21 @@ module "my_task" { } ] - port = "9090" - retry_join = "
" + port = "9090" + retry_join = "
" } ``` -All possible inputs are documented on the [module reference documentation](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task?tab=inputs) -however there are some important inputs worth highlighting: +The main differences are: -- You do not need the `execution_role_arn` or `task_role_arn` fields. The `mesh-task` module will create the task and execution roles. -- `family` is used as the [task definition family](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#family) and the name of the service that is registered in Consul. -- `container_definitions` accepts an array of [container definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definitions). - These are your application containers and are the same as `container_definitions` key in the - `aws_ecs_task_definition` resource without the `jsonencode() function`. - - For example, if your original task definition looked like: - - ```hcl - resource "aws_ecs_task_definition" "my_task" { - ... - container_definitions = jsonencode( - [ - { - name = "example-client-app" - image = "docker.io/org/my_task:v0.0.1" - essential = true - ... - } - ] - ) - } - ``` - - Then remove the `jsonencode()` function and use the rest of the value - as the input for the `mesh-task` module: - - ```hcl - module "my_task" { - source = "hashicorp/consul/aws-ecs//modules/mesh-task" - version = "" - - ... - container_definitions = [ - { - name = "example-client-app" - image = "docker.io/org/my_task:v0.0.1" - essential = true - ... - } - ] - } - ``` - -- `port` is the port that your application listens on. This should be set to a - string, not an integer, i.e. `port = "9090"`, not `port = 9090`. -- `retry_join` is passed to the `-retry-join` option for the Consul agent. This tells - the agent the location of your Consul server so that it can join the Consul cluster. +- You must remove the `execution_role_arn` and `task_role_arn` fields. The `mesh-task` module will create the task and execution roles. +- You must add the `port` field. This is the port that your application listens on. +- You must add the `retry_join` field. This specifies the location of your Consul servers so that your task can join the mesh. +- You must remove the `jsonencode()` function from the `container_definitions` field. The `mesh-task` module will create a new version of your task definition with the necessary sidecar containers added so you can delete your existing `aws_ecs_task_definition` resource. -Your `aws_ecs_service` resource can remain unchanged except for the `task_definition` -input which should reference the new module's output of the task definition's ARN: - -```hcl -resource "aws_ecs_service" "my_task" { - ... - task_definition = module.my_task.task_definition_arn -} -``` - --> **NOTE:** If your tasks run in a public subnet, they must have `assign_public_ip = true` -in their [`network_configuration`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service#network_configuration) block so that ECS can pull the Docker images. - -After running `terraform apply`, you should see your tasks registered in -the Consul UI. - -## Complete Installation - -Now that your task(s) are migrated to the `mesh-task` module, see the [Install Guide](/docs/ecs/get-started/install) to install Consul on ECS. +Now that your task(s) are migrated to the `mesh-task` module, see the [Installation Guide](/docs/ecs/get-started/install) to continue installing +Consul on ECS. diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json index 1451888777..57f9fb8910 100644 --- a/website/data/docs-nav-data.json +++ b/website/data/docs-nav-data.json @@ -574,7 +574,7 @@ "path": "ecs/get-started/requirements" }, { - "title": "Install", + "title": "Installation", "path": "ecs/get-started/install" }, { From bbbf58fa95aad33ebe5d576de7ce0c4bf46a047f Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Wed, 15 Sep 2021 17:27:03 -0500 Subject: [PATCH 11/16] docs: Update ECS sidebar with links to Fargate/EC2 examples --- website/data/docs-nav-data.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json index 57f9fb8910..7f4f7f68f0 100644 --- a/website/data/docs-nav-data.json +++ b/website/data/docs-nav-data.json @@ -566,9 +566,13 @@ "title": "Get Started", "routes": [ { - "title": "Example Installation", + "title": "Example Installation on ECS Fargate", "href": "https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/examples/dev-server-fargate" }, + { + "title": "Example Installation on ECS EC2", + "href": "https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/examples/dev-server-ec2" + }, { "title": "Requirements", "path": "ecs/get-started/requirements" From 01dfbedcf3d1c25576224e18f37059ab80003369 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Thu, 16 Sep 2021 10:19:15 -0500 Subject: [PATCH 12/16] docs: Apply suggestions from code review Co-authored-by: Luke Kysow <1034429+lkysow@users.noreply.github.com> Co-authored-by: trujillo-adam <47586768+trujillo-adam@users.noreply.github.com> --- website/content/docs/ecs/get-started/install.mdx | 5 ++--- .../content/docs/ecs/get-started/migrate-existing-tasks.mdx | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/website/content/docs/ecs/get-started/install.mdx b/website/content/docs/ecs/get-started/install.mdx index d74498e7b9..45b1bd0780 100644 --- a/website/content/docs/ecs/get-started/install.mdx +++ b/website/content/docs/ecs/get-started/install.mdx @@ -62,7 +62,7 @@ however there are some important inputs worth highlighting: This is where you include application containers. - `port` is the port that your application listens on. This should be set to a string, not an integer, i.e. `port = "9090"`, not `port = 9090`. -- `retry_join` is passed to the `-retry-join` option for the Consul agent. This tells +- `retry_join` is passed to the [`-retry-join`](/docs/agent/options#_retry_join) option for the Consul agent. This tells the agent the location of your Consul server so that it can join the Consul cluster. To define an ECS service, reference the mesh-task module's `task_definition_arn` output value @@ -91,10 +91,9 @@ proxy to listen on a different port for each upstream service your application needs to call. You then must modify your application to make requests to the sidecar proxy on that port. -For example, say your application `web` wants to make calls to my other application +For example, if your application `web` makes calls to another application called `backend`, then you would first configure the `mesh-task` module's upstream(s): `backend`. -First, you must configure the `mesh-task` module's upstream(s): ```hcl module "web" { diff --git a/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx b/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx index a5f59d5fab..b6378e3f5c 100644 --- a/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx +++ b/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx @@ -7,7 +7,7 @@ description: >- # Migrate Existing Tasks -This guide explains how to migrate your existing ECS Tasks to use our [`mesh-task` Terraform module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). +This topic describes how to migrate your existing ECS Tasks to use our [`mesh-task` Terraform module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). ## Define Tasks in Terraform From 392919ae6122c1273150a8fc2712c358c3ec76f5 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Thu, 16 Sep 2021 10:39:37 -0500 Subject: [PATCH 13/16] docs: adjust references between ECS "migrate" and "install" pages --- website/content/docs/ecs/get-started/install.mdx | 13 +++++++------ .../docs/ecs/get-started/migrate-existing-tasks.mdx | 11 ++++++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/website/content/docs/ecs/get-started/install.mdx b/website/content/docs/ecs/get-started/install.mdx index 45b1bd0780..39ad895956 100644 --- a/website/content/docs/ecs/get-started/install.mdx +++ b/website/content/docs/ecs/get-started/install.mdx @@ -65,7 +65,12 @@ however there are some important inputs worth highlighting: - `retry_join` is passed to the [`-retry-join`](/docs/agent/options#_retry_join) option for the Consul agent. This tells the agent the location of your Consul server so that it can join the Consul cluster. -To define an ECS service, reference the mesh-task module's `task_definition_arn` output value +-> **NOTE:** If your tasks run in a public subnet, they must have `assign_public_ip = true` +in their [`network_configuration`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service#network_configuration) block so that ECS can pull the Docker images. + +## ECS Service + +To define an ECS Service, reference the mesh-task module's `task_definition_arn` output value in your `aws_ecs_service` resource: ```hcl @@ -75,9 +80,6 @@ resource "aws_ecs_service" "my_task" { } ``` --> **NOTE:** If your tasks run in a public subnet, they must have `assign_public_ip = true` -in their [`network_configuration`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_service#network_configuration) block so that ECS can pull the Docker images. - After running `terraform apply`, you should see your tasks registered in the Consul UI. @@ -94,7 +96,6 @@ proxy on that port. For example, if your application `web` makes calls to another application called `backend`, then you would first configure the `mesh-task` module's upstream(s): `backend`. - ```hcl module "web" { family = "web" @@ -178,7 +179,7 @@ python manage.py runserver "127.0.0.1:8080" ## Next Steps -- Configure a secure [Production Installation](TODO-LINK). +- Configure a secure [Production Installation](/docs/ecs/production-installation). - Now that your applications are running in the service mesh, read about other [Service Mesh features](/docs/connect). - View the [Architecture](/docs/ecs/architecture) documentation to understand diff --git a/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx b/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx index b6378e3f5c..717cbed9c3 100644 --- a/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx +++ b/website/content/docs/ecs/get-started/migrate-existing-tasks.mdx @@ -98,7 +98,8 @@ module "my_task" { The main differences are: - You must remove the `execution_role_arn` and `task_role_arn` fields. The `mesh-task` module will create the task and execution roles. -- You must add the `port` field. This is the port that your application listens on. +- You must set the `port` field to the port that your application listens on. + If your application has no listening port, set `outbound_only = true` and remove the `port` field. - You must add the `retry_join` field. This specifies the location of your Consul servers so that your task can join the mesh. - You must remove the `jsonencode()` function from the `container_definitions` field. @@ -106,5 +107,9 @@ The `mesh-task` module will create a new version of your task definition with th necessary sidecar containers added so you can delete your existing `aws_ecs_task_definition` resource. -Now that your task(s) are migrated to the `mesh-task` module, see the [Installation Guide](/docs/ecs/get-started/install) to continue installing -Consul on ECS. +## Next Steps + +Now that your task(s) are migrated to the `mesh-task` module, + +- Start at the [ECS Service section](/docs/ecs/get-started/install#ecs-service) of the Installation Guide to continue installing Consul on ECS. +- Refer to the [`mesh-task` reference documentation](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task?tab=inputs) for all available inputs to your mesh tasks. From a24c98c9457d9eb166b51896cf4235ed15bee923 Mon Sep 17 00:00:00 2001 From: Luke Kysow <1034429+lkysow@users.noreply.github.com> Date: Thu, 16 Sep 2021 09:17:01 -0700 Subject: [PATCH 14/16] Update ecs docs (#11053) --- website/content/docs/ecs/get-started/requirements.mdx | 4 ++-- website/content/docs/ecs/index.mdx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/website/content/docs/ecs/get-started/requirements.mdx b/website/content/docs/ecs/get-started/requirements.mdx index f063e20123..1c4d0488df 100644 --- a/website/content/docs/ecs/get-started/requirements.mdx +++ b/website/content/docs/ecs/get-started/requirements.mdx @@ -12,5 +12,5 @@ The following requirements must be met in order to install Consul on ECS: 1. **Terraform:** The tasks that you want to add to the service mesh must first be modeled in Terraform. 1. **Launch Type:** Fargate and EC2 launch types are supported. 1. **Subnets:** ECS Tasks can run in private or public subnets. Tasks must have [network access](https://aws.amazon.com/premiumsupport/knowledge-center/ecs-pull-container-api-error-ecr/) to Amazon ECR or other public container registries to pull images. -1. **Consul Servers:** You can use your own Consul servers (VM) or use HCP Consul. For development purposes or testing, you may use the `dev-server` [Terraform module](https://github.com/hashicorp/terraform-aws-consul-ecs/tree/main). The `dev-server` does not support persistent storage. -1. **ACL Controller:** If you are running a secure Consul installation, configure the ACL controller. +1. **Consul Servers:** You can use your own Consul servers running on virtual machines or use [HashiCorp Cloud Platform Consul](https://www.hashicorp.com/cloud-platform) to host the servers for you. For development purposes or testing, you may use the `dev-server` [Terraform module](https://github.com/hashicorp/terraform-aws-consul-ecs/tree/main) that runs the Consul server as an ECS task. The `dev-server` does not support persistent storage. +1. **ACL Controller:** If you are running a secure Consul installation with ACLs enabled, configure the ACL controller. diff --git a/website/content/docs/ecs/index.mdx b/website/content/docs/ecs/index.mdx index 67c20c589f..ee10784774 100644 --- a/website/content/docs/ecs/index.mdx +++ b/website/content/docs/ecs/index.mdx @@ -9,7 +9,7 @@ description: >- # AWS ECS -> **Beta:** This functionality is currently in beta and is -not recommended for use in production environments. Refer to the [consul-ecs-project road map](https://github.com/hashicorp/consul-ecs/projects/1) for information about upcoming features and enhancements. +not recommended for use in production environments. Refer to the [consul-ecs project road map](https://github.com/hashicorp/consul-ecs/projects/1) for information about upcoming features and enhancements. Consul can be deployed on [AWS ECS](https://aws.amazon.com/ecs/) (Elastic Container Service) using our official Terraform modules. From a3f8e1ca56387cc3f052f350f043522725d2c6b2 Mon Sep 17 00:00:00 2001 From: Iryna Shustava Date: Thu, 16 Sep 2021 10:28:05 -0600 Subject: [PATCH 15/16] docs: Add production installation ECS docs (#11049) Co-authored-by: Paul Glass Co-authored-by: trujillo-adam <47586768+trujillo-adam@users.noreply.github.com> --- .../get-started/production-installation.mdx | 109 ++++++++++++++++++ website/data/docs-nav-data.json | 4 + 2 files changed, 113 insertions(+) create mode 100644 website/content/docs/ecs/get-started/production-installation.mdx diff --git a/website/content/docs/ecs/get-started/production-installation.mdx b/website/content/docs/ecs/get-started/production-installation.mdx new file mode 100644 index 0000000000..2e3306c001 --- /dev/null +++ b/website/content/docs/ecs/get-started/production-installation.mdx @@ -0,0 +1,109 @@ +--- +layout: docs +page_title: Production Installation - AWS ECS +description: >- + Production Installation of the Consul Service Mesh on AWS ECS (Elastic Container Service). +--- + +# Production Installation + +For a production-ready installation of Consul on ECS, you will need to make sure that the cluster is secured. +A secure Consul cluster should include the following: + +1. [TLS Encryption](/docs/security/encryption#rpc-encryption-with-tls) for RPC communication between Consul clients and servers. +1. [Gossip Encryption](/docs/security/encryption#gossip-encryption) for encrypting gossip traffic. +1. [Access Control (ACLs)](/docs/security/acl) for authentication and authorization for Consul clients and services on the mesh. + +-> **NOTE:** This page assumes that you have already configured your Consul server with the above features. + +## Deploy ACL Controller + +Before deploying your service, you will need to deploy the [ACL controller](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/acl-controller) so that it can provision the necessary tokens +for tasks on the service mesh. To learn more about the ACL Controller, please see [Automatic ACL Token Provisioning](/docs/ecs/architecture#automatic-acl-token-provisioning). + +To deploy the controller, you will first need store an ACL token with `acl:write` privileges +and a CA certificate for the Consul server in AWS Secrets Manager. + +```hcl +resource "aws_secretsmanager_secret" "bootstrap_token" { + name = "bootstrap-token" +} + +resource "aws_secretsmanager_secret_version" "bootstrap_token" { + secret_id = aws_secretsmanager_secret.bootstrap_token.id + secret_string = "" +} + +resource "aws_secretsmanager_secret" "ca_cert" { + name = "server-ca-cert" +} + +resource "aws_secretsmanager_secret_version" "ca_cert" { + secret_id = aws_secretsmanager_secret.ca_cert.id + secret_string = "" +} +``` + +Use the [`acl-controller` terraform module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/acl-controller?tab=inputs) to deploy the controller: + +```hcl +module "acl_controller" { + source = "hashicorp/consul/aws-ecs//modules/acl-controller" + consul_bootstrap_token_secret_arn = aws_secretsmanager_secret.bootstrap_token.arn + consul_server_http_addr = "https://consul-server.example.com:8501" + consul_server_ca_cert_arn = aws_secretsmanager_secret.ca_cert.arn + ecs_cluster_arn = "arn:aws:ecs:my-region:111111111111:cluster/consul-ecs" + region = "my-region" + subnets = ["subnet-abcdef123456789"] + name_prefix = "consul-ecs" +} +``` + +The `name_prefix` parameter is used to prefix any secrets that the ACL controller will +update in AWS Secrets Manager. + +-> **NOTE:** Make sure that the `name_prefix` is unique for each ECS cluster where you are +deploying this controller. + +## Deploy Services + +Once the ACL controller is up and running, you will be able to deploy services on the mesh using the [`mesh-task` module](https://registry.terraform.io/modules/hashicorp/consul-ecs/aws/latest/submodules/mesh-task). +Start with the basic configuration for the [Task Module](/docs/ecs/get-started/install#task-module) and specify additional settings to make the configuration production-ready. + +First, you will need to create an AWS Secrets Manager secret for the gossip encryption key that the Consul clients +should use. + +```hcl +resource "aws_secretsmanager_secret" "gossip_key" { + name = "gossip-encryption-key" +} + +resource "aws_secretsmanager_secret_version" "gossip_key" { + secret_id = aws_secretsmanager_secret.gossip_key.id + secret_string = "" +} +``` + +Next, add the following configurations to enable secure deployment. Note that the `acl_secret_name_prefix` +should be the same as the `name_prefix` you provide to the ACL controller module. + +```hcl +module "my_task" { + source = "hashicorp/consul/aws-ecs//modules/mesh-task" + family = "my_task" + + ... + + tls = true + consul_server_ca_cert_arn = aws_secretsmanager_secret.ca_cert.arn + gossip_key_secret_arn = aws_secretsmanager_secret.gossip_key.arn + + acls = true + consul_client_token_secret_arn = module.acl_controller.client_token_secret_arn + acl_secret_name_prefix = "consul-ecs" +} +``` + +Now you can deploy your services! Follow the rest of the steps in the [Installation instructions](/docs/ecs/get-started/install#task-module) +to deploy and connect your services. + diff --git a/website/data/docs-nav-data.json b/website/data/docs-nav-data.json index 15838d9da8..92b37e87c7 100644 --- a/website/data/docs-nav-data.json +++ b/website/data/docs-nav-data.json @@ -576,6 +576,10 @@ { "title": "Install", "path": "ecs/get-started/install" + }, + { + "title": "Production Installation", + "path": "ecs/get-started/production-installation" } ] }, From 930e3824dfc892c07fc644784f4986a92c3336f9 Mon Sep 17 00:00:00 2001 From: Paul Glass Date: Thu, 16 Sep 2021 12:30:08 -0500 Subject: [PATCH 16/16] docs: correct link to ecs production installation --- website/content/docs/ecs/get-started/install.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/content/docs/ecs/get-started/install.mdx b/website/content/docs/ecs/get-started/install.mdx index 39ad895956..ea8c13a0e3 100644 --- a/website/content/docs/ecs/get-started/install.mdx +++ b/website/content/docs/ecs/get-started/install.mdx @@ -179,7 +179,7 @@ python manage.py runserver "127.0.0.1:8080" ## Next Steps -- Configure a secure [Production Installation](/docs/ecs/production-installation). +- Configure a secure [Production Installation](/docs/ecs/get-started/production-installation). - Now that your applications are running in the service mesh, read about other [Service Mesh features](/docs/connect). - View the [Architecture](/docs/ecs/architecture) documentation to understand