ECS 스케일링을 위한 ALB 설정 방법

전체 구조 요약

  • ALB Listener → (연결된) ALB Server Group → (백엔드 목록)
  • ESS Scaling Group은 스케일아웃 시 새 ECS를 만들고, 연결된 ALB Server Group의 백엔드로 자동 등록되도록 연동합니다.

선행 조건 체크리스트

  1. VPC/Zone 정합성
  • ESS 스케일링 그룹은 보통 VPC 기반으로 구성합니다.
  • ALB Server Group(및 ALB)Scaling Group같은 VPC 여야 합니다(연동 조건).
  1. 보안그룹(Security Group) 흐름
  • ALB는 (옵션/구성에 따라) 보안그룹으로 접근 제어를 합니다.
  • 백엔드 ECS 보안그룹은 ALB에서 들어오는 트래픽(예: 80/443)을 허용해야 헬스체크가 Healthy로 붙습니다.
  1. 서버그룹/리스너 선후관계
  • ALB는 리스너 생성 시 서버그룹 지정이 필수입니다. 즉, 서버그룹이 먼저 있어야 리스너를 만들기 편합니다.
  1. 스케일링 그룹 활성화
  • 스케일링 그룹은 생성 직후 바로 동작하지 않고, 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 순서(추천)

  1. Scaling Configuration(템플릿) Active/Enable
  2. Scaling Group Enable
  3. 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로 바뀌는지 확인

댓글 남기기