대상 그룹에 대한 상태 확인 - Elastic Load Balancing

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

대상 그룹에 대한 상태 확인

하나 이상의 대상 그룹에 대상을 등록합니다. 로드 밸런서는 등록 프로세스가 완료되고 대상이 초기 상태 검사를 통과하는 즉시 새로 등록된 대상으로 요청을 라우팅하기 시작합니다. 등록 프로세스가 완료되고 상태 확인이 시작되는 데 몇 분 정도 걸릴 수 있습니다.

Network Load Balancer는 능동 및 수동 상태 확인을 사용하여 대상이 요청을 처리하는 데 사용 가능한지 결정합니다. 기본적으로 각 로드 밸런서 노드는 해당 가용 영역에서 정상 대상으로만 요청을 라우팅합니다. 교차 영역 로드 밸런싱을 활성화하면 각 로드 밸런서 노드가 활성화된 모든 가용 영역에 있는 정상 대상으로 요청을 라우팅합니다. 자세한 내용은 교차 영역 로드 밸런싱 단원을 참조하십시오.

수동 상태 확인의 경우 로드 밸런서가 대상이 어떻게 연결에 응답하는지 관찰합니다. 수동 상태 확인에서는 로드 밸런서가 능동 상태 확인에 의해 비정상으로 보고되기 전에 비정상 대상을 감지할 수 있습니다. 사용자가 수동 상태 확인을 비활성화, 구성 또는 모니터링할 수는 없습니다. UDP트래픽 및 고정성이 설정된 대상 그룹에 대해서는 패시브 상태 확인이 지원되지 않습니다. 자세한 내용은 고정 세션을 참조하십시오.

대상이 비정상이 되면 로드 밸런서는 대상과 연결된 클라이언트 연결에서 수신된 패킷에 TCP RST 대해 a를 전송합니다. 단, 비정상 대상이 로드 밸런서를 열지 못하도록 트리거하는 경우는 예외입니다.

활성화된 가용 영역에서 대상 그룹에 정상 대상이 없는 경우 해당 서브넷의 IP 주소를 제거하여 요청이 해당 가용 영역의 대상으로 라우팅되지 DNS 않도록 합니다. 모든 대상이 활성화된 모든 가용 영역에서 동시에 상태 확인에 실패하면 로드 밸런서가 열리지 않습니다. 대상 그룹이 비어 있는 경우 네트워크 로드 밸런서도 열리지 않습니다. 오류 시 열림이 적용되면 상태에 관계없이 활성화된 모든 가용 영역의 모든 대상에 대한 트래픽이 허용됩니다.

대상 그룹이 HTTPS 상태 확인으로 구성된 경우 등록된 대상이 TLS 1.3만 지원하는 경우 상태 확인에 실패합니다. 이러한 대상은 TLS 1.2와 같은 이전 버전을 지원해야 합니다. TLS

HTTP또는 HTTPS 상태 점검 요청의 경우 호스트 헤더에는 대상의 IP 주소 및 상태 점검 포트가 아니라 로드 밸런서 노드와 수신기 포트의 IP 주소가 포함됩니다.

Network Load Balancer에 TLS 리스너를 추가하면 리스너 연결 테스트가 수행됩니다. TLS종료 시 TCP 연결도 종료되므로 로드 밸런서와 대상 사이에 새 TCP 연결이 설정됩니다. 따라서 이 테스트에 대한 TCP 연결이 로드 밸런서에서 리스너에 등록된 대상으로 전송되는 것을 볼 수 있습니다. TLS 이러한 TCP 연결에는 Network Load Balancer의 소스 IP 주소가 있고 연결에는 데이터 패킷이 포함되어 있지 않으므로 이러한 연결을 식별할 수 있습니다.

UDP서비스의 경우 대상 그룹의 비상태 검사를 사용하여 대상 가용성을 테스트할 수 있습니다. UDP 사용 가능한 모든 상태 점검 (TCP,HTTP, 또는HTTPS) 과 대상의 모든 포트를 사용하여 UDP 서비스 가용성을 확인할 수 있습니다. 상태 확인을 수신하는 서비스가 실패하면 대상을 사용할 수 없는 것으로 간주됩니다. UDP서비스 상태 확인의 정확성을 높이려면 서비스가 상태 점검 포트를 수신하여 서비스 상태를 추적하고 UDP 서비스를 사용할 수 없는 경우 상태 점검에 실패하도록 구성하십시오.

상태 확인 설정

다음 설정을 사용하여 대상 그룹에서 대상에 대한 능동 상태 확인을 구성합니다. 상태 확인이 UnhealthyThresholdCount연속 실패를 초과할 경우 로드 밸런서는 대상을 서비스 중단시킵니다. 상태 확인의 HealthyThresholdCount연속 성공 횟수를 초과하면 로드 밸런서는 대상을 다시 서비스 상태로 전환합니다.

설정 설명 기본값

HealthCheckProtocol

대상에 대한 상태 확인을 수행할 때 로드 밸런서가 사용하는 프로토콜입니다. 가능한 프로토콜은HTTP,HTTPS, 입니다. TCP 기본값은 TCP 프로토콜입니다. 대상 유형이 인 경우 지원되는 상태 점검 프로토콜은 HTTP 및 HTTPS 입니다. alb

TCP

HealthCheckPort

대상에 대한 상태 확인을 수행할 때 로드 밸런서가 사용하는 포트입니다. 각 대상이 로드 밸런서에서 트래픽을 수신하는 포트를 사용하도록 기본 설정되어 있습니다.

각 대상이 로드 밸런서에서 트래픽을 수신하는 포트입니다.

HealthCheckPath

[HTTP/HTTPShealth checks] 상태 점검 대상의 대상이 되는 상태 점검 경로입니다. 기본값은 /입니다.

/

HealthCheckTimeoutSeconds

상태 확인 실패를 의미하는 대상으로부터 응답이 없는 기간(초 단위)입니다. 범위는 2~120초입니다. 기본값은 상태 확인의 경우 6초HTTP, TCP 및 HTTPS 상태 확인의 경우 10초입니다.

HTTP상태 확인은 6초, 상태 확인은 10초입니다. TCP HTTPS

HealthCheckIntervalSeconds

개별 인스턴스의 상태 확인 간의 대략적인 간격(초 단위)입니다. 범위는 5~300초입니다. 기본값은 30초입니다.

중요

Network Load Balancer에 대한 상태 확인이 배포되고 합의 메커니즘을 사용하여 대상 상태를 확인합니다. 그러므로 대상은 구성된 수보다 많은 상태 확인을 수신합니다. HTTP상태 점검을 사용하는 경우 대상에 미치는 영향을 줄이려면 정적 HTML 파일과 같이 대상에 더 간단한 대상을 사용하거나 상태 확인으로 전환하십시오. TCP

30초

HealthyThresholdCount

비정상 상태의 대상을 정상으로 간주하기까지 필요한 연속적인 상태 확인 성공 횟수입니다. 범위는 2~10회입니다. 기본값은 5입니다.

5

UnhealthyThresholdCount

대상을 비정상 상태로 간주하기까지 필요한 연속적인 상태 확인 실패 횟수입니다. 범위는 2~10회입니다. 기본값은 2입니다.

2

Matcher

[HTTP/HTTPShealth checks] 대상의 성공적인 응답을 확인할 때 사용할 HTTP 코드입니다. 범위는 200~599회입니다. 기본값은 200-399입니다.

200-399

대상 상태

로드 밸런서가 대상으로 상태 확인 요청을 전송할 수 있으려면 먼저 대상 그룹에 이를 등록하고 리스너 규칙에서 대상 그룹을 지정한 다음, 로드 밸런서에서 대상의 가용 영역을 활성화해야 합니다.

다음 표에는 등록 대상의 상태로 가능한 값이 나와 있습니다.

설명

initial

로드 밸런서에서는 대상 등록이나 대상에 대해 초기 상태 확인이 진행 중에 있습니다.

관련 사유 코드: Elb.RegistrationInProgress | Elb.InitialHealthChecking

healthy

대상이 정상 상태입니다.

관련 사유 코드: 없음

unhealthy

대상이 상태 확인에 응답하지 않았거나 상태 확인에 실패했거나 대상이 중지된 상태입니다.

관련 사유 코드: Target.FailedHealthChecks

draining

대상이 등록 취소되고 있으며 Connection Draining이 진행 중입니다.

관련 사유 코드: Target.DeregistrationInProgress

unhealthy.draining

대상이 상태 점검에 응답하지 않았거나 상태 점검에 실패하여 유예 기간이 시작됩니다. 대상은 기존 연결을 지원하며 이 유예 기간 동안에는 새 연결을 수락하지 않습니다.

관련 사유 코드: Target.FailedHealthChecks

unavailable

대상 상태를 확인할 수 없습니다.

관련 사유 코드: Elb.InternalError

unused

대상이 대상 그룹에 등록되지 않았거나, 대상 그룹이 수신기 규칙에 사용되지 않거나, 대상이 활성화되지 않은 가용 영역에 있습니다.

관련 사유 코드: Target.NotRegistered | Target.NotInUse | Target.InvalidState | Target.IpUnusable

상태 확인 사유 코드

대상 상태가 이외의 Healthy 값인 경우 는 원인 코드와 문제 설명을 API 반환하고 콘솔은 도구 설명에 동일한 설명을 표시합니다. Elb로 시작되는 사유 코드는 로드 밸런서 측에서 호출되고, Target로 시작되는 사유 코드는 대상 측에서 호출됩니다.

사유 코드 설명

Elb.InitialHealthChecking

초기 상태 확인이 진행 중

Elb.InternalError

내부 오류로 인한 상태 확인 실패

Elb.RegistrationInProgress

대상 등록이 진행 중

Target.DeregistrationInProgress

대상 등록 취소가 진행 중

Target.FailedHealthChecks

상태 확인 실패

Target.InvalidState

대상이 중지 상태에 있음

대상이 종료 상태에 있음

대상이 종료 또는 중지 상태에 있음

대상이 잘못된 상태에 있음

Target.IpUnusable

로드 밸런서에서 사용 중인 IP 주소이므로 대상으로 사용할 수 없음

Target.NotInUse

대상 그룹이 로드 밸런서에서 트래픽을 수신하도록 구성되지 않음

대상이 로드 밸런서에서 활성화되지 않은 가용 영역에 있음

Target.NotRegistered

대상이 대상 그룹에 등록되지 않음

대상의 상태 확인

대상 그룹에 등록된 대상의 상태를 확인할 수 있습니다.

콘솔을 사용하여 대상의 상태를 확인하는 방법
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing 아래에서 대상 그룹을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. Details(세부 정보) 창에는 총 대상 수와 각 상태의 대상 수가 표시됩니다.

  5. Targets(대상) 탭에서 Health status(상태) 열은 각 대상의 상태를 나타냅니다.

  6. 대상의 상태가 Healthy 이외의 값인 경우에는 Health status details(상태 세부 정보) 열에 자세한 정보가 있습니다.

를 사용하여 대상의 상태를 확인하려면 AWS CLI

describe-target-health명령을 사용하세요. 이 명령의 출력 화면에는 대상 상태 설명이 포함됩니다. 상태가 Healthy 이외의 값인 경우에는 화면에 사유 코드도 포함됩니다.

비정상 대상에 대한 이메일 알림을 받으려면

CloudWatch 경보를 사용하여 Lambda 함수를 트리거하여 비정상 대상에 대한 세부 정보를 전송합니다. step-by-step 지침은 다음 블로그 게시물을 참조하십시오. 로드 밸런서의 비정상 대상 식별.

대상 그룹의 상태 확인 설정 수정

대상 그룹에 대한 상태 확인 설정을 언제든지 변경할 수도 있습니다.

콘솔을 사용하여 대상 그룹의 상태 확인 설정을 변경하려면
  1. 에서 Amazon EC2 콘솔을 엽니다 https://console.aws.amazon.com/ec2/.

  2. 탐색 창의 Load Balancing 아래에서 대상 그룹을 선택합니다.

  3. 대상 그룹의 이름을 선택하여 세부 정보 페이지를 엽니다.

  4. 상태 확인 탭에서 편집을 선택합니다.

  5. 상태 확인 설정 편집(Edit health check settings) 페이지에서 필요에 따라 설정을 수정한 다음 변경 사항 저장(Save changes)을 선택합니다.

를 사용하여 대상 그룹의 상태 점검 설정을 수정하려면 AWS CLI

modify-target-group명령을 사용합니다.