MỐI LIÊN HỆ GIỮA ALB – ECS – EC2 TARGET GROUP
🔁 MỐI LIÊN HỆ GIỮA ALB – ECS – EC2 TARGET GROUP
1. ALB (Application Load Balancer)
- 
Nhận request HTTP/HTTPS từ client. 
- 
Có các Listener (ví dụ: HTTP trên port 80, HTTPS trên port 443). 
- 
Mỗi Listener có thể có Rule để điều hướng request dựa vào: - Path (e.g., /api/*)
- Host (e.g., api.example.com)
- Header, query string, v.v.
 
- Path (e.g., 
2. Target Group
- 
Mỗi rule của ALB sẽ điều hướng đến một Target Group. 
- 
Target Group chứa danh sách các Target, có thể là: - IP address
- EC2 instance
- ECS container (Fargate hoặc EC2 launch type)
 
3. ECS Service
- Một ECS Service (trong ECS cluster) sẽ được cấu hình để register các task của nó vào một Target Group.
- Mỗi task chạy container sẽ trở thành 1 target.
🧩 SƠ ĐỒ QUAN HỆ
Client
  ↓
ALB (Listener: 443)
  └── Rule 1: path /api → Target Group A
                      └── ECS Service A (cluster 1234)
                            └── Task 1, Task 2 (containers)
  └── Rule 2: path /admin → Target Group B
                        └── ECS Service B (cluster 1234)
                              └── Task 3, Task 4 (containers)
📌 VÍ DỤ CẤU HÌNH
Giả sử bạn có ECS Cluster "cluster-1234" và 2 service:
- api-servicexử lý- /api/*
- admin-servicexử lý- /admin/*
Bước 1: Tạo 2 Target Groups
- tg-api– port 8080 (ví dụ container port)
- tg-admin– port 8000
Bước 2: Tạo ALB + Listener
- ALB: my-alb
- Listener: HTTPS 443
Bước 3: Cấu hình Listener Rule
# Rule 1
IF path is /api/* THEN forward to tg-api
# Rule 2
IF path is /admin/* THEN forward to tg-admin
Bước 4: Tạo ECS Services
- api-servicedùng task definition có container listen on port 8080.
- ECS service sẽ đăng ký mỗi task của nó vào tg-api.
"loadBalancers": [
  {
    "targetGroupArn": "arn:aws:elasticloadbalancing:...:targetgroup/tg-api",
    "containerName": "api-container",
    "containerPort": 8080
  }
]
Tương tự với admin-service.
🚀 LUỒNG XỬ LÝ KHI CÓ REQUEST
- Client gọi https://yourdomain.com/api/v1/users
- ALB nhận request tại Listener HTTPS:443
- Rule match /api/*→ forward đếntg-api
- tg-apiđang chứa các target là ECS task đang chạy container- api-service
- ALB chọn 1 task (theo Round Robin hoặc Least Outstanding Request)
- Forward request đến container đang listen port 8080
✅ GỢI Ý
- Mỗi ECS Service tương ứng 1 Target Group là cách phổ biến và dễ quản lý.
- Có thể gom nhiều service vào cùng target group nếu dùng chung container port & xử lý routing trong app.
- Dùng Path-basedhoặcHost-basedrouting để scale dễ dàng.
All rights reserved
 
  
 