대상 그룹 상태 - Elastic Load Balancing

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

대상 그룹 상태

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

비정상 상태 작업

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

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

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

요구 사항 및 고려 사항

  • 대상이 Lambda 함수인 대상 그룹에는 이 기능을 사용할 수 없습니다. Application Load Balancer가 Network Load Balancer 또는 Global Accelerator의 대상인 경우 DNS 장애 조치의 임계값을 구성하지 마십시오.

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

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

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

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

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

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

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

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

모니터링

대상 그룹의 상태를 모니터링하려면 대상 그룹 상태 CloudWatch 측정치를 참조하십시오.

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

시나리오
  • 두 개의 가용 영역 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

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

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

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

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

  • Application Load Balancer의 모든 대상 그룹이 정상일 때 Route 53은 별칭 레코드를 정상으로 표시합니다. 대상 그룹에 정상인 대상이 하나 이상 있으면 대상 그룹 상태 확인이 통과됩니다. 그러면 Route 53은 라우팅 정책에 따라 레코드를 반환합니다. 장애 조치 라우팅 정책을 사용하는 경우, Route 53은 보조 레코드를 반환합니다.

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

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

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