대상 그룹 및 상태 확인
EC2 인스턴스, IP 주소 또는 Lambda 함수를 대상으로 등록하고 상태 확인 경로, 임계값 및 간격을 구성합니다.
대상 그룹 및 상태 확인은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.
대상 그룹이란 무엇인가요?
대상 그룹은 로드 밸런서가 요청을 라우팅하는 대상들의 논리적 모음입니다. 각 대상 그룹에는 대상 유형, 프로토콜/포트 및 상태 확인 구성이 있습니다. 로드 밸런서는 상태 확인을 통과한 대상 그룹의 등록된 대상에 요청을 분산합니다.
대상 그룹은 리스너 규칙을 통해 로드 밸런서 리스너와 연결됩니다. 하나의 리스너는 요청 속성에 따라 여러 대상 그룹으로 라우팅할 수 있습니다. 이는 ALB에서 경로 기반 및 호스트 기반 라우팅을 구현하는 핵심 메커니즘입니다.
# Create a target group for an ALB
aws elbv2 create-target-group \
--name my-web-targets \
--protocol HTTP \
--port 80 \
--vpc-id vpc-12345678 \
--target-type instance \
--health-check-path /health \
--health-check-interval-seconds 30대상 유형: Instance, IP, Lambda
대상 그룹은 세 가지 대상 유형을 지원합니다.
- instance: 인스턴스 ID를 사용하여 EC2 인스턴스로 라우팅합니다. 로드 밸런서는 지정된 포트의 인스턴스 기본 네트워크 인터페이스로 트래픽을 전송합니다.
- ip: 프라이빗 IP 주소로 라우팅합니다. 컨테이너(ECS/EKS)의 대상, VPN/Direct Connect를 통해 연결할 수 있는 온프레미스 서버 또는 EC2 인스턴스의 보조 IP에 유용합니다.
- lambda: 단일 Lambda 함수로 라우팅합니다(ALB만 지원). ALB는 HTTP 요청을 JSON 이벤트로 변환하고 함수를 동기적으로 호출합니다.
awsvpc 네트워크 모드를 사용하는 ECS 작업(각 작업에 자체 IP가 할당됨), EKS 파드 및 온프레미스 대상을 포함하는 하이브리드 아키텍처에는 IP 대상 유형이 필요합니다.
대상 등록
대상은 대상 그룹에 수동으로(콘솔 또는 CLI에서) 등록하거나 자동으로(Auto Scaling Group 연결 또는 ECS 서비스 구성으로) 등록할 수 있습니다. 수동으로 등록한 대상은 명시적으로 등록 해제할 때까지 그룹에 남아 있습니다.
ASG의 경우 ASG를 대상 그룹에 연결하면 ASG가 새로 시작된 인스턴스를 자동으로 등록하고 종료된 인스턴스를 등록 해제합니다. ASG와의 긴밀한 통합은 탄력적인 컴퓨팅 계층의 표준 패턴입니다. 새 인스턴스는 온라인 상태가 되고 상태 확인을 통과하는 즉시 트래픽을 수신하기 시작합니다.
# Register EC2 instances with a target group
aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
--targets Id=i-1234567890abcdef0 Id=i-0987654321fedcba0
# Register IP targets (for containers/ECS awsvpc)
aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-ip-targets/def456 \
--targets Id=10.0.0.5,Port=8080 Id=10.0.0.6,Port=8080상태 확인 구성
각 대상 그룹에는 연결된 상태 확인이 있으며, 로드 밸런서는 이를 사용해 대상이 정상이고 트래픽을 수신할 수 있는지 판단합니다. 상태 확인은 각 대상에 주기적으로 요청을 보내고 응답을 평가합니다.
- 프로토콜: HTTP, HTTPS 또는 TCP(NLB의 경우)
- 경로: 요청할 URL 경로(예:
/health또는/ping) - Port: 확인할 포트(기본값은 대상 그룹의 포트)
- 정상 임계값: 정상으로 표시하기 전에 연속으로 성공해야 하는 횟수
- 비정상 임계값: 비정상으로 표시하기 전에 연속으로 실패해야 하는 횟수
- 간격: 상태 확인 사이의 시간(초)(5~300)
- 시간 제한: 응답을 기다리는 시간(초)
상태 확인 성공 코드
HTTP/HTTPS 상태 확인에서는 어떤 HTTP 응답 코드가 정상 대상을 나타내는지 지정합니다. 기본값은 200이지만, 200-299와 같은 범위나 200,301,302와 같이 쉼표로 구분된 값을 구성할 수 있습니다.
권장 사항: 애플리케이션에 전용 /health 엔드포인트를 만들고, 모든 중요 종속 항목(데이터베이스 연결, 캐시, 하위 서비스)을 사용할 수 있을 때만 200을 반환하도록 하십시오. 비용이 많이 드는 작업을 수행하거나 인증이 필요한 경우에는 루트 URL(/)을 상태 확인 경로로 사용하지 마십시오.
# Modify health check to accept 200-299
aws elbv2 modify-target-group \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
--health-check-path /health \
--matcher HttpCode=200-299 \
--healthy-threshold-count 2 \
--unhealthy-threshold-count 3 \
--health-check-interval-seconds 15대상 상태: 초기, 정상, 비정상
대상은 등록된 후 다음 상태를 차례로 거칩니다.
- 초기: ELB가 첫 상태 확인을 수행하는 중입니다.
- 정상: 필요한 횟수만큼 연속 상태 확인을 통과했으며 트래픽을 수신합니다.
- 비정상: 필요한 횟수만큼 연속 상태 확인에 실패했으며 순환 분배에서 제외됩니다.
- 연결 정리 중: 등록 해제가 진행 중입니다. 기존 연결은 완료될 수 있지만 새 연결은 전송되지 않습니다.
- 사용되지 않음: 그룹에 등록되어 있지만 현재 이 그룹으로 라우팅하는 수신기 규칙이 없습니다.
UnHealthyHostCount 및 HealthyHostCount CloudWatch 지표를 모니터링하여 대상 집합의 문제를 감지하십시오.
등록 해제 지연(연결 정리)
등록 해제 지연(이전에는 연결 정리라고 함)은 대상을 최종적으로 등록 해제하기 전에 기존 연결이 완료될 때까지 ELB가 기다리는 시간입니다. 기본값은 300초(5분)입니다. 이 기간에는 등록 해제 중인 대상으로 새 요청이 전송되지 않지만, 처리 중인 요청은 완료될 수 있습니다.
빠른 배포와 자동 확장에 따른 종료의 경우 애플리케이션이 요청을 빠르게 처리한다면 이 값을 30~60초로 줄이는 것이 좋습니다. 파일 업로드나 동영상 처리처럼 오래 실행되는 작업의 경우 작업이 중단되지 않고 완료될 수 있을 만큼 긴 시간으로 유지하십시오.
# Reduce deregistration delay to 30 seconds
aws elbv2 modify-target-group-attributes \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
--attributes Key=deregistration_delay.timeout_seconds,Value=30로드 밸런싱 알고리즘
대상 그룹은 다양한 로드 밸런싱 알고리즘을 지원합니다.
- 라운드 로빈(ALB 기본값): 요청을 순서대로 균등하게 분배합니다. 모든 대상이 동등할 때 가장 적합합니다.
- 처리 중인 요청 수가 가장 적은 대상 우선(ALB): 처리 중인 요청이 가장 적은 대상에 각 새 요청을 전송합니다. 요청마다 처리 시간이 다른 가변 길이 작업에 더 적합합니다.
- 흐름 해시(NLB): 프로토콜, 소스/대상 IP, 소스/대상 포트 및 TCP 시퀀스 번호를 기준으로 분배합니다. TCP/UDP 흐름의 모든 패킷이 동일한 대상으로 전송되도록 합니다.
사용자의 모든 요청이 동일한 대상에 도달해야 하는 세션 기반 애플리케이션에서는 라운드 로빈 분배에 의존하지 말고 고정 세션을 활성화하십시오.
여러 대상 그룹 및 가중치 기반 라우팅
단일 ALB 수신기 규칙은 가중치가 적용된 대상 그룹을 사용해 여러 대상 그룹으로 트래픽을 분배할 수 있습니다. 예를 들어 Route 53의 가중치 기반 라우팅을 사용하지 않고, 블루-그린 배포를 위해 트래픽의 90%를 안정적인 대상 그룹으로, 10%를 카나리 대상 그룹으로 라우팅할 수 있습니다.
가중치가 적용된 대상 그룹은 수신기 규칙 수준에서 구성합니다. 가중치는 상대적인 값입니다. 90/10으로 설정하면 첫 번째 그룹에 90%, 두 번째 그룹에 10%를 전송합니다. 이는 여러 ALB 간의 가중치 기반 라우팅과 다릅니다. 여기서는 단일 ALB 수신기 규칙 내부에서 이루어집니다.
대상 그룹과 ECS 통합
ALB 뒤에 ECS 서비스를 배포할 때는 각 ECS 작업이 ip 대상 유형을 사용해 ALB 대상 그룹에 등록됩니다(awsvpc 네트워크 모드의 경우). ECS 서비스는 등록과 등록 해제를 자동으로 관리합니다. 새 작업은 상태 확인을 통과한 후 등록되고, 중지되는 작업은 종료되기 전에 등록 해제 지연을 거칩니다.
각 ECS 서비스는 특정 포트 재정의를 사용해 등록할 수 있습니다. 따라서 서로 다른 대상 그룹과 경로 기반 또는 호스트 기반 수신기 규칙을 통해 여러 ECS 서비스가 하나의 ALB를 공유할 수 있으며, 이는 일반적인 마이크로서비스 패턴입니다.
NLB 상태 확인
NLB의 상태 확인 동작은 ALB와 다릅니다.
- NLB는 수신기 프로토콜과 관계없이 TCP, HTTP 및 HTTPS 상태 확인 프로토콜을 지원합니다.
- NLB 상태 확인은 각 AZ에 있는 NLB의 IP 주소에서 전송됩니다. 보안 그룹이 NLB 서브넷의 IP에서 오는 트래픽을 허용하도록 하거나 NLB 자체의 보안 그룹을 사용해야 합니다.
- TCP 상태 확인의 경우 지정된 포트에서 TCP 연결을 수락하면 NLB는 대상을 정상으로 간주합니다.
- 상태 확인에 실패한 NLB 대상은 AZ별로 제거됩니다. 한 AZ의 모든 대상이 비정상이면 NLB는 다른 AZ의 정상 대상으로 교차 영역 로드 밸런싱을 수행할 수 있습니다(교차 영역 LB가 활성화된 경우).
빠른 확인
이 단원에서 배운 AWS Solutions Architect(SAA-C03) 개념을 얼마나 이해했는지 확인해 보십시오.
단원 요약
이 단원에서는 다음을 배웠습니다. 대상 그룹에는 인스턴스, IP 또는 Lambda 유형의 정상 등록 대상이 포함됩니다. 상태 확인은 주기적으로 대상을 점검하여 비정상 대상을 순환 분배에서 제외합니다. 또한 등록 해제 지연은 대상을 제거하기 전에 처리 중인 요청을 정상적으로 정리할 수 있도록 합니다. 다음 단원에서는 ALB의 수신기 규칙과 경로 기반 라우팅을 살펴봅니다.
자주 묻는 질문
“대상 그룹 및 상태 확인” 강의는 무료인가요?
네 — “대상 그룹 및 상태 확인” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.
“대상 그룹 및 상태 확인”에서 뭘 배우나요?
EC2 인스턴스, IP 주소 또는 Lambda 함수를 대상으로 등록하고 상태 확인 경로, 임계값 및 간격을 구성합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“대상 그룹 및 상태 확인” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.