1 ELB Target Group: 효율적인 트래픽 분산의 핵심
- AWS의 Elastic Load Balancing(ELB)은 들어오는 트래픽을 여러 대상에 자동으로 분산시키는 서비스입니다.
- Target Group은 ELB의 핵심 구성 요소로, 트래픽을 수신할 대상을 정의하고 관리합니다.
- 이를 통해 애플리케이션의 확장성, 가용성, 그리고 유연성을 크게 향상시킬 수 있습니다.
2 Target Group이란?
- Target Group은 EC2 인스턴스, 컨테이너, IP 주소 또는 Lambda 함수와 같은 하나 이상의 대상을 논리적으로 그룹화한 것입니다.
- 로드 밸런서가 요청을 라우팅할 대상을 지정하는 데 사용됩니다.
- 각 Target Group은 특정 프로토콜과 포트 번호를 사용하여 요청을 대상으로 라우팅합니다.
- 중요한 점은 하나의 Target Group에는 동일한 유형의 대상만 포함될 수 있습니다.
3 Target Group의 유형과 특징
3.1 EC2 인스턴스 Target Group
- Application Load Balancer(ALB)나 Network Load Balancer(NLB)와 주로 사용됩니다.
- EC2 인스턴스, Auto Scaling 그룹의 인스턴스를 대상으로 등록할 수 있습니다.
- IP 주소를 직접 등록할 수도 있어, 온프레미스 서버나 다른 VPC의 리소스도 대상이 될 수 있습니다.
3.2 Lambda 함수 Target Group
- Application Load Balancer와 함께 사용됩니다.
- 하나의 Lambda 함수만을 대상으로 등록할 수 있습니다.
- 서버리스 아키텍처에 적합합니다.
3.3 컨테이너 Target Group
- 주로 ECS(Elastic Container Service)와 함께 사용됩니다.
- 동적 포트 매핑을 지원하여 컨테이너의 유연한 배포가 가능합니다.
4 Target Group의 주요 기능
- 상태 확인:
- 등록된 대상의 상태를 주기적으로 확인합니다.
- 비정상 대상을 자동으로 감지하고 트래픽 라우팅에서 제외합니다.
- 라우팅 알고리즘:
- 라운드 로빈, 최소 미해결 요청 등 다양한 라우팅 알고리즘을 지원합니다.
- 애플리케이션의 특성에 맞는 최적의 분산 방식을 선택할 수 있습니다.
- 동적 포트 매핑:
- 컨테이너 기반 애플리케이션에서 유용한 기능입니다.
- ECS와 함께 사용 시 동적으로 할당된 포트로 트래픽을 라우팅할 수 있습니다.
4.1 Health Check
- ELB는 각 대상 그룹에 대해 독립적으로 Health Check를 수행합니다.
- Health Check는 지정된 간격으로 각 대상에 대해 수행됩니다.
- 대상이 연속된 Health Check에 실패하면 '비정상(Unhealthy)'으로 간주됩니다.
- 비정상 대상으로는 트래픽이 전송되지 않습니다.
- 비정상 대상이 다시 Health Check를 통과하면 '정상(Healthy)'으로 표시되고 트래픽을 받기 시작합니다.
4.1.1 Health Check 설정
- Health Check 설정은 대상 그룹 수준에서 구성됩니다.
- 주요 설정 항목은 다음과 같습니다:
- Health Check 프로토콜 (HTTP, HTTPS, TCP 등)
- Health Check 포트
- Health Check 경로 (HTTP/HTTPS의 경우)
- 정상 임계값 (연속 성공 횟수)
- 비정상 임계값 (연속 실패 횟수)
- 제한 시간
- 간격 (Health Check 실행 주기)
4.1.2 대상 상태(Target Health Status)
- ELB는 각 대상의 상태를 다음과 같이 분류합니다:
- Initial: 대상이 대상 그룹에 등록되는 중입니다.
- Healthy: 대상이 정상 상태이며 트래픽을 받을 수 있습니다.
- Unhealthy: 대상이 비정상 상태이며 트래픽을 받지 않습니다.
- Unused: 대상이 대상 그룹에 등록되어 있지 않습니다.
- Draining: 대상이 대상 그룹에서 등록 해제되는 중입니다.
- Unavailable: Health Check가 비활성화되어 있습니다.
4.1.3 비정상 대상 처리
- 만약 대상 그룹 내의 모든 대상이 비정상(Unhealthy) 상태인 경우, ELB는 비정상 대상들 사이에서 요청을 분산합니다.
4.2 Slow Start Mode
- Slow Start Mode는 새로 등록된 대상이 점진적으로 트래픽을 받을 수 있도록 하는 기능입니다.
- 이 기능은 대상이 갑작스러운 트래픽 증가로 인해 과부하되는 것을 방지합니다.
- Slow Start Mode의 주요 특징은 다음과 같습니다:
- 기본적으로, 대상은 등록 즉시 전체 트래픽을 받습니다.
- Slow Start Mode를 활성화하면, 정상 상태의 대상이 전체 트래픽을 받기 전에 "워밍업" 시간을 갖습니다.
- 로드 밸런서는 대상에게 보내는 요청의 수를 선형적으로 증가시킵니다.
- Slow Start Mode는 다음과 같은 경우에 종료됩니다:
- 설정된 기간이 경과한 경우
- 대상이 비정상 상태가 된 경우
- Slow Start Mode를 비활성화하려면 Slow Start 기간 값을 0으로 설정합니다.
5 Target Group 생성 및 구성