Buzzword bingo. If you want to set up an ECS Service (on Fargate), fronted by an ALB (and an API Gateway, and a WAF, and CloudFront – to tick all the boxes), there’s an ansible task for you.
Assuming you already have a task definition, creating a service is pretty straightforward:
- name: Create service
ecs_service:
name: ...
cluster: ...
task_definition: ...
network_configuration:
assign_public_ip: no
security_groups: ...
subnets: [...]
launch_type: FARGATE
desired_count: ...
load_balancers: ...
The important bit is the `load_balancers` section. The ansible docs aren’t very informative on this point:

But that just means you need to switch to the AWS docs. You need a list, containing a dict per LB:
load_balancers:
-
targetGroupArn: arn:aws:elasticloadbalancing:region:accountId:targetgroup/serviceName/id
containerName: ...
containerPort: 8080
With the arn of the target group that the tasks should be added to/removed from, the name of the container (in case your task definition contains more than one), and the port that traffic should be forwarded to.