전체 구조 요약
- ALB Listener → (연결된) ALB Server Group → (백엔드 목록)
- ESS Scaling Group은 스케일아웃 시 새 ECS를 만들고, 연결된 ALB Server Group의 백엔드로 자동 등록되도록 연동합니다.
선행 조건 체크리스트
- VPC/Zone 정합성
- ESS 스케일링 그룹은 보통 VPC 기반으로 구성합니다.
- ALB Server Group(및 ALB) 과 Scaling Group 은 같은 VPC 여야 합니다(연동 조건).
- 보안그룹(Security Group) 흐름
- ALB는 (옵션/구성에 따라) 보안그룹으로 접근 제어를 합니다.
- 백엔드 ECS 보안그룹은 ALB에서 들어오는 트래픽(예: 80/443)을 허용해야 헬스체크가 Healthy로 붙습니다.
- 서버그룹/리스너 선후관계
- ALB는 리스너 생성 시 서버그룹 지정이 필수입니다. 즉, 서버그룹이 먼저 있어야 리스너를 만들기 편합니다.
- 스케일링 그룹 활성화
- 스케일링 그룹은 생성 직후 바로 동작하지 않고, Enable(활성화) 해야 스케일링 액티비티가 가능합니다.
1단계: ESS 오토스케일링 그룹 만들기
목표: 먼저 Scaling Group의 뼈대를 만들어 두고, 뒤에서 ALB 서버그룹을 붙입니다.
먼저 “생성만” 하고 Enable은 잠시 보류
이유: Min/Desired가 1 이상이면 Enable 시점에 ECS가 먼저 떠버릴 수 있는데, 아직 ALB/서버그룹이 없으면 트래픽 진입점이 없는 상태가 됩니다. (문서로 남길 때도 이 흐름이 깔끔합니다.)
스케일링 그룹 생성 (콘솔)
- 경로(일반): Auto Scaling(ESS) 콘솔 → Scaling Groups → Create
- 핵심 입력 항목
- Scaling Group Type: ECS
- Network Type: VPC
- VPC / vSwitch: ALB와 동일 VPC 선택 (가능하면 vSwitch 2개 이상/멀티존 권장)
- Min / Max / Desired: 문서화 예시로
Min 0 / Desired 0 / Max 4같이 시작하면 안전 - (선택) Removal Policy / Cooldown 등은 기본값으로 시작 가능
Instance Configuration Source(스케일아웃 템플릿) 생성/활성화
- 스케일아웃 시 만들어질 ECS의 이미지/사양/디스크/보안그룹/유저데이터를 정의합니다.
- 여기서 지정하는 ECS 보안그룹은, 추후 ALB 헬스체크/트래픽(예: TCP 80)을 ALB 측에서 들어오는 요청이 통과되도록 열어둬야 합니다.
2단계: ALB 생성 + Server Group + Listener 구성
목표: “ALB 트래픽 진입점”과 “백엔드 서버그룹(=등록될 풀)”을 준비합니다.
3-1. ALB 인스턴스 생성
- 경로: ALB 콘솔 → Instances → Create ALB
- 주요 설정 포인트
- Region: ESS 스케일링 그룹과 동일 리전
- Network Type: Internet-facing(공개) 또는 Internal(사설)
- VPC: ESS와 동일 VPC
- Zone 선택: 가능하면 스케일링 그룹 vSwitch가 있는 존들로 구성
“ALB를 쓰려면 ALB 인스턴스 생성 후 리스너와 서버그룹을 구성”하는 구조입니다.
3-2. ALB Server Group 생성
- 경로: ALB 콘솔 → Server Groups → Create Server Group
- 핵심 입력 항목
- Server Group Type: (ECS를 백엔드로 받을 목적이면) Server/ECS 타입
- VPC: ESS와 동일 VPC
- Backend Protocol: HTTP/HTTPS 등
- Health Check: Enable 권장(경로
/또는/health, 포트 80 등)
ALB는 “서버그룹 단위로 백엔드에 분산”하고, 헬스체크로 가용성을 판단합니다.
✅ 중요 팁
- 이 단계에서 백엔드 ECS를 수동으로 추가할 수도 있지만(가이드 예시처럼), 이번 목표는 “ESS가 자동으로 등록/관리”이므로 (테스트 목적이 아니라면) 비워둬도 됩니다.
3-3. ALB Listener 생성 (HTTP 예시)
- 경로(둘 중 하나)
- ALB Instances 목록에서 Create Listener, 또는
- ALB 인스턴스 상세 → Listener 탭 → Create Listener
- 설정
- Listener Protocol: HTTP
- Listener Port: 80
- Server Group: 방금 만든 서버그룹 선택 (리스너 생성 시 서버그룹 지정 필수)
(HTTPS라면) 인증서/보안정책 설정이 추가되며, 흐름 자체는 동일합니다.
3단계: “ALB 서버그룹 ↔ ESS 스케일링 그룹” 연동(Attach)
여기가 사용자가 말한 “서버그룹에 오토스케일링 그룹으로 설정”에 해당하는 핵심입니다.
4-1. 연동 개념
- ALB 쪽에서 “이 서버그룹은 ASG꺼야”라고 지정한다기보다는,
- ESS Scaling Group에 ALB Server Group을 Attach 해서, ESS가 스케일아웃으로 만든 ECS들을 해당 서버그룹 백엔드에 자동 추가되게 합니다.
4-2. 콘솔에서 Attach(연동)하는 위치(일반적인 흐름)
- Auto Scaling(ESS) 콘솔 → Scaling Groups → (대상 그룹 선택) → Load Balancer / Server Group 연동 메뉴
- 여기서 ALB Server Group 추가를 선택한 뒤:
- ALB Server Group ID(또는 목록에서 선택)
- Weight(가중치) 지정 (API 기준 필수 파라미터로 정의됨)
API 관점에서는
AttachAlbServerGroups가 이 동작입니다. (서버그룹 ID와 Weight 등을 전달)
4-3. Attach 시 주의사항
- 동일 VPC 조건: ALB/NLB/GWLB 서버그룹을 스케일링 그룹에 연동할 때, 서버그룹은 스케일링 그룹과 같은 VPC 여야 합니다.
- 연동 가능한 서버그룹 개수는 쿼터 제한이 있을 수 있음(Quota Center에서 확인/증설).
4단계: ESS 스케일링 그룹 Enable + 스케일링 정책(선택)
5-1. Enable 순서(추천)
- Scaling Configuration(템플릿) Active/Enable
- Scaling Group Enable
- Desired/Min을 1 이상으로 올려서 1대 이상 기동(또는 정책 트리거로 scale-out)
스케일링 그룹은 Enable해야 실제 스케일링 액티비티/룰 실행이 가능합니다.
5-2. (선택) 트리거/룰 설정
- CPU, QPS 등의 지표로 event-triggered task를 만들거나,
- ALB 관련 지표(예: 백엔드당 QPS)로 트리거하는 시나리오도 있습니다.
5단계: 동작 검증(“연동이 됐는지” 확인 포인트)
6-1. ESS에서 확인
- Scaling Activities에서 scale-out 발생 여부
- 새로 생성된 ECS가 Scaling Group에 들어왔는지
6-2. ALB에서 확인
- ALB 콘솔 → Server Groups → Backend Servers에서 ESS가 만든 ECS가 자동으로 추가됐는지 확인
- Listener의 Health Check Status가 Healthy로 바뀌는지 확인
댓글 남기기