Limitations
Immutable-at-Create Fields
Section titled “Immutable-at-Create Fields”Several configuration fields in the Express Gateway Service
The aws_ecs_express_gateway_service Terraform resource that provisions an ECS service with managed ALB, auto scaling, and simplified configuration for HTTP/HTTPS web applications and APIs. are set once at creation time and cannot be modified afterward. Changing any of these requires destroying the service and recreating it from scratch.
| Field | Description | Impact of Change |
|---|---|---|
service_name | The name identifying your ECS service | Service replacement required |
cluster | The ECS cluster hosting the service | Service replacement required |
infrastructure_role_arn | The Infrastructure Role | Service replacement required |
| Deployment strategy | Rolling update configuration (Express Mode default) | Service replacement required |
| Load balancer config | The target group and listener settings | Service replacement required |
In Terraform, attempting to change any of these fields triggers a forces replacement plan — the existing service is destroyed and a new one is created. This causes downtime because the ALB target group and DNS routing are rebuilt.
Single Subnet Constraint
Section titled “Single Subnet Constraint”Express Mode uses a single subnet list for both the managed ALB and your tasks. Unlike classic ECS where you can place the ALB in public subnets and run tasks in private subnets, Express Mode does not support this split configuration.
The subnet type you choose determines the ALB type and accessibility:
| Subnet Type | ALB Result | Task IPs | Accessible From |
|---|---|---|---|
Public Subnet | Internet-facing ALB | Public IPs assigned | The public internet |
| Private subnets (no IGW route) | Internal ALB | Private IPs only | Within the VPC |
Shared ALB Type Determination
Section titled “Shared ALB Type Determination”The first Express Gateway Service
The aws_ecs_express_gateway_service Terraform resource that provisions an ECS service with managed ALB, auto scaling, and simplified configuration for HTTP/HTTPS web applications and APIs. deployed in a VPC
Virtual Private Cloud — an isolated virtual network within AWS where resources are deployed. determines whether the is internet-facing or internal. All subsequent Express services in that same VPC share this ALB and inherit its type.
This means:
- If your first Express service uses public subnets, the Shared ALB becomes internet-facing — all future Express services in that VPC will also be internet-facing.
- If your first Express service uses private subnets, the Shared ALB becomes internal — all future Express services in that VPC will only be reachable within the VPC.
To change the Shared ALB type, you must remove all Express services in the VPC and redeploy the first one with the desired subnet type.
