대상 그룹 상태 - Elastic Load Balancing

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

대상 그룹 상태

기본적으로 대상 그룹은 그룹에 정상 대상이 하나 이상 있는 한 정상 그룹으로 간주됩니다. 플릿이 크면 트래픽을 처리하는 정상 대상이 하나만 있는 것으로는 충분하지 않습니다. 대신, 정상이어야 하는 대상의 최소 개수 또는 백분율을 지정하고 정상 대상이 지정된 임계값 아래로 떨어질 경우 로드 밸런서가 취하는 조치를 지정할 수 있습니다. 이는 가용성을 높입니다.

비정상 상태 작업

다음 작업에 대해 정상 임계값을 구성할 수도 있습니다.

  • DNS 장애 조치 - 영역의 정상 대상이 임계값 아래로 떨어지면 DNS에서 영역에 대한 로드 밸런서 노드의 IP 주소를 비정상으로 표시합니다. 따라서 클라이언트가 로드 밸런서 DNS 이름을 확인하면 트래픽이 정상 영역으로만 라우팅됩니다.

  • 라우팅 장애 조치 - 영역의 정상 대상이 임계값 아래로 떨어지면 로드 밸런서는 비정상 대상을 포함하여 로드 밸런서 노드에서 사용할 수 있는 모든 대상으로 트래픽을 보냅니다. 이렇게 하면 특히 대상이 일시적으로 상태 확인을 통과하지 못하는 경우 클라이언트 연결이 성공할 가능성이 높아지고 정상 대상에 과부하가 걸릴 위험이 줄어듭니다.

요구 사항 및 고려 사항

  • 작업에 대해 두 가지 유형의 임계값(개수 및 백분율)을 모두 지정하는 경우 로드 밸런서는 두 임계값 중 하나가 위반될 때 조치를 취합니다.

  • 두 작업 모두에 대해 임계값을 지정하는 경우 DNS 장애 조치의 임계값은 라우팅 장애 조치 임계값보다 크거나 같아야 합니다. 그래야 라우팅 장애 조치 시 또는 라우팅 장애 조치 전에 DNS 장애 조치가 발생할 수 있습니다.

  • 임계값을 백분율로 지정하면 대상 그룹에 등록된 총 대상 수를 기준으로 값이 동적으로 계산됩니다.

  • 총 대상 수는 교차 영역 로드 밸런싱의 활성화 여부를 기반으로 합니다. 교차 영역 로드 밸런싱이 해제된 경우 각 노드는 자체 영역의 대상에만 트래픽을 전송합니다. 즉, 임계값은 활성화된 각 영역의 대상 수에 개별적으로 적용됩니다. 교차 영역 로드 밸런싱이 해제된 경우 각 노드는 활성화된 모든 영역의 모든 대상에 트래픽을 전송합니다. 즉, 지정된 임계값은 활성화된 모든 영역의 총 대상 수에 적용됩니다. 자세한 정보는 교차 영역 로드 밸런싱을 참조하세요.

  • DNS 장애 조치를 사용하면 로드 밸런서의 DNS 호스트 이름에서 비정상 영역의 IP 주소를 제거합니다. 하지만 DNS 레코드의 time-to-live (TTL) 이 만료될 때까지 (60초) 로컬 클라이언트 DNS 캐시에 이러한 IP 주소가 포함될 수 있습니다.

  • DNS 장애 조치가 발생하면 로드 밸런서와 연결된 모든 대상 그룹에 영향을 줍니다. 나머지 영역에 이러한 추가 트래픽을 처리할 수 있는 충분한 용량이 있는지 확인하세요. 특히 교차 영역 로드 밸런싱이 꺼져 있는 경우에는 더욱 확인하세요.

  • DNS 장애 조치를 사용하면 모든 로드 밸런서 영역이 비정상인 것으로 간주되면 로드 밸런서는 비정상 영역을 포함한 모든 영역으로 트래픽을 전송합니다.

  • DNS 장애 조치로 이어질 수 있는 정상 대상이 충분한지 여부와는 다른 요인(예: 영역 상태)이 있습니다.

다음 예는 대상 그룹 상태 설정을 적용하는 방법을 보여줍니다.

시나리오
  • 두 개의 가용 영역 A와 B를 지원하는 로드 밸런서

  • 각 가용 영역에는 10개의 등록된 대상이 포함됨

  • 대상 그룹에는 다음과 같은 대상 그룹 상태 설정이 있습니다.

    • DNS 장애 조치 - 50%

    • 라우팅 장애 조치 - 50%

  • 가용 영역 B에서 6개의 대상 장애

교차 영역 로드 밸런싱이 꺼져 있는 경우
  • 각 가용 영역에 있는 로드 밸런서 노드는 가용 영역에 있는 10개 대상에만 트래픽을 전송할 수 있습니다.

  • 가용 영역 A에는 10개의 정상 대상이 있으며, 이는 정상 대상의 필수 백분율을 충족합니다. 로드 밸런서는 10개의 정상 대상 간에 트래픽을 계속 분산합니다.

  • 가용 영역 B에는 정상 대상이 4개뿐이며, 이는 가용 영역 B의 로드 밸런서 노드 대상의 40%에 해당합니다. 이는 정상 대상의 필수 백분율보다 적으므로 로드 밸런서는 다음 작업을 수행합니다.

    • DNS 장애 조치 - 가용 영역 B가 DNS에서 비정상으로 표시됩니다. 클라이언트가 가용 영역 B의 로드 밸런서 노드에 대한 로드 밸런서 이름을 확인할 수 없고 가용 영역 A가 정상이므로 클라이언트는 가용 영역 A에 새 연결을 보냅니다.

    • 라우팅 장애 조치 - 새 연결이 가용 영역 B로 명시적으로 전송되면 로드 밸런서는 비정상 대상을 포함하여 가용 영역 B의 모든 대상으로 트래픽을 분산합니다. 이는 나머지 정상 대상 간의 중단을 방지할 수 있습니다.

교차 영역 로드 밸런싱이 켜져 있는 경우
  • 각 로드 밸런서 노드는 두 가용 영역에서 등록된 20개 대상 모두에 트래픽을 전송할 수 있습니다.

  • 가용 영역 A에는 10개의 정상 대상이 있고 가용 영역 B에는 4개의 정상 대상이 있으므로 총 14개의 정상 대상이 있습니다. 이는 두 가용 영역 모두에 있는 로드 밸런서 노드에 대한 대상의 70%이며, 정상 대상 중 필수 백분율을 충족합니다.

  • 로드 밸런서는 두 가용 영역 모두에서 14개의 정상 대상 간에 트래픽을 계속 분산합니다.

대상 그룹 상태 설정 수정

다음과 같이 대상 그룹에 대한 대상 그룹 상태 설정을 변경할 수도 있습니다.

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

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

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

  4. 속성성(Attributes) 탭에서 편집(Edit)을 선택합니다.

  5. 교차 영역 로드 밸런싱이 켜져 있는지 또는 꺼져 있는지 확인합니다. 필요에 따라 이 설정을 업데이트하여 영역에 장애가 발생할 경우 추가 트래픽을 처리할 수 있는 충분한 용량이 있는지 확인하세요.

  6. Target group health requirements(대상 그룹 상태 요구 사항)을 확장합니다.

  7. Configuration type(구성 유형)의 경우 두 작업에 대해 동일한 임계값을 설정하는 Unified configuration(통합 구성)을 선택하는 것이 좋습니다.

  8. Healthy state requirements(정상 상태 요구 사항)의 경우 다음 중 하나를 실시합니다.

    • Minimum healthy target count(최소 정상 대상 개수)를 선택한 다음 1부터 대상 그룹의 최대 대상 수까지의 숫자를 입력합니다.

    • Minimum healthy target percentage(최소 정상 대상 백분율)을 선택한 다음 1부터 100까지의 숫자를 입력합니다.

  9. 변경 사항 저장를 선택합니다.

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

modify-target-group-attributes 명령을 사용합니다. 다음 예에서는 두 비정상 상태 동작 모두에 대한 정상 임계값을 50%로 설정합니다.

aws elbv2 modify-target-group-attributes \ --target-group-arn arn:aws:elasticloadbalancing:region:123456789012:targetgroup/my-targets/73e2d6bc24d8a067 \ --attributes Key=target_group_health.dns_failover.minimum_healthy_targets.percentage,Value=50 \ Key=target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage,Value=50

비정상 대상에 대한 연결 종료

연결 종료는 기본적으로 활성화됩니다. Network Load Balancer의 대상이 구성된 상태 점검에 실패하고 비정상으로 간주되면 로드 밸런서는 설정된 연결을 종료하고 대상으로의 새 연결 라우팅을 중단합니다. 연결 종료가 비활성화된 상태에서도 대상은 여전히 비정상으로 간주되어 새 연결을 수신하지 못하지만 설정된 연결은 활성 상태로 유지되므로 정상적으로 닫힐 수 있습니다.

비정상 대상에 대한 연결 종료는 각 대상 그룹에 대해 개별적으로 설정할 수 있습니다.

콘솔을 사용하여 연결 종료 설정 수정
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

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

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

  4. 속성성(Attributes) 탭에서 편집(Edit)을 선택합니다.

  5. 대상: 비정상 상태 관리 아래에서 대상이 비정상 상태가 되면 연결 종료의 활성화 또는 비활성화를 선택합니다.

  6. 변경 사항 저장를 선택합니다.

를 사용하여 연결 종료 설정을 수정하려면 AWS CLI

target_health_state.unhealthy.connection_termination.enabled 속성과 함께 modify-target-group-attributes 명령을 사용합니다.

비정상 배수 간격

중요

비정상 드레인 간격을 활성화하려면 먼저 연결 종료를 비활성화해야 합니다.

unhealthy.draining 상태의 대상은 비정상으로 간주되어 새 연결을 수신하지 않지만 구성된 간격 동안 설정된 연결을 유지합니다. 비정상 연결 간격에 따라 대상이 unhealthy.draining 상태가 되기 전의 상태로 유지되는 시간이 결정됩니다. unhealthy 비정상 연결 간격 동안 대상이 상태 확인을 통과하면 대상이 다시 상태가 됩니다healthy. 등록 취소가 트리거되면 대상 상태가 draining 되고 등록 취소 지연 제한 시간이 시작됩니다.

비정상 드레이닝 간격은 각 대상 그룹에 대해 개별적으로 설정할 수 있습니다.

콘솔을 사용하여 비정상 배수 간격을 수정하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

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

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

  4. 속성성(Attributes) 탭에서 편집(Edit)을 선택합니다.

  5. 대상 비정상 상태 관리에서 대상이 비정상이 될 때 연결 종료가 꺼져 있는지 확인합니다.

  6. 비정상 드레인 간격에 값을 입력합니다.

  7. 변경 사항 저장를 선택합니다.

비정상 배수 간격을 수정하려면 다음을 사용하여 비정상 배수 간격을 수정하십시오. AWS CLI

target_health_state.unhealthy.draining_interval_seconds 속성과 함께 modify-target-group-attributes 명령을 사용합니다.

로드 밸런서에 대한 Route 53 DNS 장애 조치 사용

Route 53을 사용하여 로드 밸런서에 DNS 요청을 라우팅하는 경우, Route 53을 사용하여 로드 밸런서에 대한 DNS 장애 조치를 구성할 수도 있습니다. 장애 조치 구성에서 Route 53은 로드 밸런서에 대한 대상 그룹 대상의 상태를 확인하여 가용 여부를 결정합니다. 로드 밸런서에 정상 상태의 대상이 등록되어 있지 않거나 로드 밸런서 자체가 정상 상태가 아니면 Route 53은 정상 상태 로드 밸런서나 Amazon S3의 정적 웹 사이트 같은 또 다른 가용 리소스로 트래픽을 라우팅합니다.

예를 들어 www.example.com에 대한 웹 사이트가 있고 서로 다른 리전에 상주하는 두 개의 로드 밸런서에서 중복 인스턴스를 실행하고 싶다고 가정합시다. 한 리전의 로드 밸런서에 트래픽을 주로 라우팅하고 다른 리전의 로드 밸런서는 장애 시 백업으로 사용하고 싶을 수 있습니다. DNS 장애 조치를 구성하면 주 및 보조(백업) 로드 밸런서를 지정할 수 있습니다. Route 53은 주 로드 밸런서가 사용 가능한 상태일 때는 여기로 트래픽을 라우팅하고, 그렇지 않으면 보조 로드 밸런서로 라우팅합니다.

대상 상태 평가 사용
  • Network Load Balancer 별칭 레코드에서 대상 상태 평가가 Yes로 설정된 경우 Route 53은 alias target 값으로 지정된 리소스의 상태를 평가합니다. Network Load Balancer 경우 Route 53은 로드 밸런서와 연결된 대상 그룹 상태 확인을 사용합니다.

  • Network Load Balancer 밸런서의 모든 타겟 그룹이 정상일 때 Route 53은 별칭 레코드를 정상으로 표시합니다. 대상 그룹에 정상 대상이 하나 이상 있으면 대상 그룹 상태 검사가 통과됩니다. 그러면 Route 53은 라우팅 정책에 따라 레코드를 반환합니다. 장애 조치 라우팅 정책이 사용되는 경우 Route 53는 기본 레코드를 반환합니다.

  • Network Load Balancer 밸런서의 대상 그룹 중 하나라도 비정상이면 별칭 레코드가 Route 53 상태 확인(오류 시 열림)에 실패합니다. 대상 상태 평가를 사용하는 경우 장애 조치 라우팅 정책이 실패할 수 있습니다.

  • Network Load Balancer의 모든 대상 그룹이 비어 있는 경우(대상 없음), Route 53은 레코드를 비정상(오류 시 열림)으로 간주합니다. 대상 상태 평가를 사용하는 경우 장애 조치 라우팅 정책이 실패할 수 있습니다.

자세한 내용은 Amazon Route 53 개발자 안내서의DNS 장애 조치 구성을 참조하세요.