Network Load Balancer의 대상 그룹 속성 변경 - Elastic Load Balancing

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

Network Load Balancer의 대상 그룹 속성 변경

Network Load Balancer의 대상 그룹을 생성한 후에는 대상 그룹 속성을 변경할 수 있습니다.

클라이언트 IP 보존

네트워크 로드 밸런서는 요청을 백엔드 대상으로 라우팅할 때 클라이언트의 소스 IP 주소를 보존할 수 있습니다. 클라이언트 IP 보존을 비활성화할 경우 소스 IP 주소는 Network Load Balancer의 프라이빗 IP 주소입니다.

기본적으로, 클라이언트 IP 보존은 UDP 및 TCP_UDP 프로토콜을 사용하는 인스턴스와 IP 유형 대상 그룹에 대해 활성화되며, 비활성화할 수 없습니다. 그러나 preserve_client_ip.enabled 대상 그룹 속성을 사용하여 TCP 및 TLS 대상 그룹에 대한 클라이언트 IP 보존을 활성화하거나 비활성화할 수 있습니다.

기본 설정
  • 인스턴스 유형 대상 그룹: 활성화됨

  • IP 유형 대상 그룹(UDP, TCP_UDP): 활성화됨

  • IP 유형 대상 그룹(TCP, TLS): 비활성화됨

요구 사항 및 고려 사항
  • 클라이언트 IP 보존이 활성화되면 트래픽이 Network Load Balancer에서 대상으로 직접 유입되어야 합니다. 대상은 Network Load Balancer와 동일한 VPC 또는 동일한 리전의 피어링된 VPC에 있어야 합니다.

  • 대상이 Network Load Balancer와 동일한 Amazon VPC에 있더라도 Gateway Load Balancer 엔드포인트를 통해 Network Load Balancer와 대상(인스턴스 또는 IP) 사이의 트래픽을 검사하면 클라이언트 IP 보존이 지원되지 않습니다.

  • 다음 인스턴스 유형, C1, CC1, CC2, CG1, CG2, CR1, G1, G2, HI1, HS1, M1, M2, M3, T1은 클라이언트 IP 보존을 지원하지 않습니다. 이러한 인스턴스 유형은 클라이언트 IP 보존이 비활성화된 IP 주소로 등록하는 것이 좋습니다.

  • 클라이언트 IP 보존은의 인바운드 트래픽에 영향을 미치지 않습니다 AWS PrivateLink. AWS PrivateLink 트래픽의 소스 IP는 항상 Network Load Balancer의 프라이빗 IP 주소입니다.

  • 대상 그룹에 AWS PrivateLink ENI나 다른 Network Load Balancer ENI가 포함된 경우에는 클라이언트 IP 보존이 지원되지 않습니다. 이로 인해 해당 대상과의 통신이 중단됩니다.

  • 클라이언트 IP 보존은 IPv6에서 IPv4로 변환된 트래픽에 영향을 주지 않습니다. 이 트래픽 유형의 소스 IP는 항상 Network Load Balancer의 프라이빗 IP 주소입니다.

  • Application Load Balancer 유형별로 대상을 지정하면 수신되는 모든 트래픽의 클라이언트 IP가 Network Load Balancer에 의해 보존되고 Application Load Balancer에 전송됩니다. 그런 다음 Application Load Balancer는 클라이언트 IP를 대상으로 보내기 전에 X-Forwarded-For 요청 헤더에 첨부합니다.

  • 클라이언트 IP 보존의 변경 사항은 새 TCP 연결에만 적용됩니다.

  • 헤어피닝이라고도 하는 NAT 루프백은 클라이언트 IP 보존이 활성화된 경우 지원되지 않습니다. 이는 내부 Network Load Balancer를 사용하고 Network Load Balancer 뒤에 등록된 대상이 동일한 Network Load Balancer에 대한 연결을 생성할 때 발생합니다. 연결을 생성하려고 시도하는 대상으로 연결을 라우팅하면 연결 오류가 발생할 수 있습니다. 동일한 Network Load Balancer 뒤에 있는 대상에서 Network Load Balancer에 연결하지 않는 것이 좋습니다. 또는 클라이언트 IP 보존을 비활성화하여 이러한 유형의 연결 오류를 방지할 수도 있습니다. 클라이언트 IP가 필요한 경우 프록시 프로토콜 v2를 사용하여 해당 IP를 검색할 수 있습니다. 프록시 프로토콜에 대한 자세한 내용은 섹션을 참조하세요프록시 프로토콜.

  • 클라이언트 IP 보존이 비활성화된 경우 Network Load Balancer는 각각의 고유 대상(IP 주소 및 포트)에 대해 55,000건의 동시 연결 또는 분당 약 55,000건의 연결을 지원합니다. 연결 횟수가 이를 초과할 경우, 포트 할당 오류가 발생할 가능성이 증가하고, 새 연결 구축에 실패할 수 있습니다. 포트 할당 오류는 PortAllocationErrorCount 지표를 사용하여 추적할 수 있습니다. 포트 할당 오류를 해결하려면 대상 그룹에 더 많은 대상을 추가하세요. 자세한 내용은 Network Load Balancer의 CloudWatch 지표 단원을 참조하십시오.

콘솔을 사용하여 클라이언트 IP 보존을 구성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

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

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

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

  5. 클라이언트 IP 보존을 활성화하려면 Preserve client IP addresses(클라이언트 IP 주소 보존)를 선택합니다. 클라이언트 IP 보존을 비활성화하려면 Preserve client IP addresses(클라이언트 IP 주소 보존)를 선택 취소합니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 클라이언트 IP 보존을 활성화 또는 비활성화하려면 AWS CLI

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

예를 들어, 다음 명령을 사용하여 클라이언트 IP 보존을 비활성화합니다.

aws elbv2 modify-target-group-attributes --attributes Key=preserve_client_ip.enabled,Value=false --target-group-arn ARN

다음 예와 유사하게 출력되어야 합니다.

{ "Attributes": [ { "Key": "proxy_protocol_v2.enabled", "Value": "false" }, { "Key": "preserve_client_ip.enabled", "Value": "false" }, { "Key": "deregistration_delay.timeout_seconds", "Value": "300" } ] }

등록 취소 지연

대상을 등록 취소하면 로드 밸런서가 대상에 대한 새 연결 생성을 중지합니다. 로드 밸런서는 Connection Draining을 사용하여 기존 연결에서 인플라이트 트래픽이 완료되도록합니다. 등록 취소된 대상이 정상 상태를 유지하고 기존 연결이 유휴 상태가 아닌 경우 로드 밸런서는 트래픽을 대상으로 계속 전송할 수 있습니다. 기존 연결을 닫으려면 연결 종료에 대한 대상 그룹 속성을 활성화하거나, 등록 취소하기 전에 인스턴스가 비정상 상태인지 확인하거나, 클라이언트 연결을 주기적으로 닫으면 됩니다.

등록 취소하는 대상의 초기 상태는 draining이며, 이 기간 동안 대상은 새 연결을 수신하지 않습니다. 하지만 구성 전파 지연으로 인해 이 기간에도 대상이 연결을 수신할 수 있습니다. 기본적으로 로드 밸런서는 300초 후에 등록 취소된 대상의 상태를 unused로 변경합니다. 등록 취소 대상의 상태를 unused로 변경하기 전에 로드 밸런서가 대기하는 시간을 변경하려면 등록 취소 지연 값을 업데이트하세요. 요청이 완료될 수 있도록 120초 이상의 값을 지정하는 것이 좋습니다.

연결 종료에 대해 대상 그룹 속성을 활성화하면 등록 취소된 대상에 대한 연결이 등록 취소 시간 제한이 끝나는 즉시 닫힙니다.

콘솔을 사용하여 등록 취소 속성을 업데이트하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

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

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

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

  5. 등록 취소 시간 제한을 변경하려면 등록 취소 지연에 새 값을 입력합니다. 대상을 등록 취소한 후 기존 연결이 닫히게 하려면 Terminate connections on deregistration(등록 취소 시 연결 종료)을 선택합니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 등록 취소 속성을 업데이트하려면 AWS CLI

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

프록시 프로토콜

Network Load Balancer는 프록시 프로토콜 버전 2를 사용하여 소스 및 대상과 같은 추가 연결 정보를 보냅니다. 프록시 프로토콜 버전 2는 프록시 프로토콜 헤더의 이진 인코딩을 제공합니다. TCP리스너와 함께 로드 밸런서는 TCP 데이터에 프록시 프로토콜 헤더를 추가합니다. 로드 밸런서는 클라이언트에서 전송한 모든 수신 프록시 프로토콜 헤더 또는 네트워크 경로에 있는 그 밖의 모든 프록시, 로드 밸런서 또는 서버를 포함해 기존 데이터를 폐기하거나 덮어쓰지 않습니다. 따라서 하나 이상의 프록시 프로토콜 헤더를 수신할 수 있습니다. 또한 Network Load Balancer 외부에 대상에 대한 다른 네트워크 경로가 있는 경우 첫 번째 프록시 프로토콜 헤더가 Network Load Balancer의 프록시 프로토콜 헤더가 아닐 수 있습니다.

IP 주소로 대상을 지정하는 경우 애플리케이션에 제공되는 소스 IP 주소는 다음과 같이 대상 그룹의 프로토콜에 따라 달라집니다.

  • TCP 및 TLS: 기본적으로 클라이언트 IP 보존은 비활성화되어 있으며, 애플리케이션에 제공되는 소스 IP 주소는 로드 밸런서 노드의 프라이빗 IP 주소입니다. 클라이언트의 IP 주소를 보존하려면 대상이 동일한 VPC 또는 피어링된 VPC에 있는지 확인하고 클라이언트 IP 보존을 활성화합니다. 클라이언트의 IP 주소가 필요하고 이러한 조건이 충족된 경우, 프록시 프로토콜을 활성화하고 프록시 프로토콜 헤더에서 클라이언트 IP 주소를 가져옵니다.

  • UDP 및 TCP_UDP: 클라이언트 IP 보존은 이러한 프로토콜에 대해 기본적으로 활성화되며 비활성화할 수 없으므로 소스 IP 주소는 클라이언트의 IP 주소입니다. 인스턴스 ID로 대상을 지정하는 경우 애플리케이션에 제공되는 원본 IP 주소는 클라이언트 IP 주소입니다. 하지만 원하는 경우 프록시 프로토콜을 활성화하고 프록시 프로토콜 헤더에서 클라이언트 IP 주소를 가져올 수 있습니다.

인스턴스 ID로 대상을 지정하는 경우 애플리케이션에 제공되는 원본 IP 주소는 클라이언트 IP 주소입니다. 하지만 원하는 경우 프록시 프로토콜을 활성화하고 프록시 프로토콜 헤더에서 클라이언트 IP 주소를 가져올 수 있습니다.

참고

TLS 리스너는 클라이언트나 다른 프록시가 전송한 프록시 프로토콜 헤더를 통한 수신 연결을 지원하지 않습니다.

상태 확인 연결

프록시 프로토콜을 활성화한 이후 프록시 프로토콜 헤더는 또한 로드 밸런서의 상태 확인 연결에 포함됩니다. 하지만 상태 확인 연결을 통해 클라이언트 연결 정보는 프록시 프로토콜 헤더에 전송되지 않습니다.

VPC 엔드포인트 서비스

서비스 소비자에서 VPC 엔드포인트 서비스를 통해 오는 트래픽의 경우 애플리케이션에 제공된 원본 IP 주소는 로드 밸런서 노드의 프라이빗 IP 주소입니다. 애플리케이션에 서비스 소비자의 IP 주소가 필요한 경우, 프록시 프로토콜을 활성화하고 프록시 프로토콜 헤더에서 서비스 소비자 IP 주소를 가져옵니다.

프록시 프로토콜 헤더에는 엔드포인트의 ID도 포함됩니다. 이 정보는 다음과 같은 사용자 지정 TLV(유형-길이-값) 벡터를 사용하여 인코딩됩니다.

필드 길이(자리) 설명

형식

1

PP2_TYPE_AWS(0xEA)

길이

2

값의 길이

1

PP2_SUBTYPE_AWS_VPCE_ID(0x01)

변수(값 길이 -1) 엔드포인트의 ID

TLV 유형 0xEA를 구문 분석하는 예는 https://github.com/aws/elastic-load-balancing-tools/tree/master/proprot를 참조하세요.

프록시 프로토콜 활성화

대상 그룹에 프록시 프로토콜을 활성화하기 전에 애플리케이션이 프록시 프로토콜 v2 헤더를 구문 분석할 수 있도록 해야 합니다. 그렇지 않은 경우 실패할 수 있습니다. 자세한 내용은 프록시 프로토콜 버전 1 및 2를 참조하세요.

콘솔을 사용하여 프록시 프로토콜 v2를 활성화하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

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

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

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

  5. 속성 편집(Edit attributes) 페이지에서 프록시 프로토콜 v2(Proxy protocol v2)를 선택합니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 프록시 프로토콜 v2를 활성화하려면 AWS CLI

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

고정 세션

고정 세션은 대상 그룹의 동일한 대상으로 클라이언트 트래픽을 라우팅하는 메커니즘입니다. 이는 클라이언트에게 지속적인 경험을 제공하기 위해 상태 정보를 유지하는 서버에 유용합니다.

고려 사항
  • 고정 세션을 사용하면 연결 및 흐름이 고르지 않게 분포되어 대상의 가용성에 영향을 줄 수 있습니다. 예를 들어 동일한 NAT 디바이스 뒤에 있는 모든 클라이언트는 동일한 소스 IP 주소를 가집니다. 따라서 이러한 클라이언트의 모든 트래픽은 동일한 대상으로 라우팅됩니다.

  • 로드 밸런서는 대상의 상태가 변경되거나 대상 그룹에 대상을 등록 또는 등록 취소하는 경우 대상 그룹에 대한 고정 세션을 재설정할 수 있습니다.

  • 대상 그룹에 대해 고정성 속성을 활성화하면 수동 상태 확인이 지원되지 않습니다. 자세한 내용은 대상 그룹의 상태 확인을 참조하세요.

  • 스티키 세션은 TLS 리스너에 대해서는 지원되지 않습니다.

콘솔을 사용하여 고정 세션을 활성화하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

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

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

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

  5. Target selection configuration(대상 선택 구성)에서 Stickiness(고정)를 켭니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 고정 세션을 활성화하려면 AWS CLI

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

대상 그룹에 대한 교차 영역 로드 밸런싱

로드 밸런서의 노드는 클라이언트로부터 요청을 가져와서 등록된 대상에 분산합니다. 교차 영역 로드 밸런싱을 켜면 각 로드 밸런서 노드가 등록된 모든 가용 영역에 있는 등록된 대상 간에 트래픽을 분산합니다. 교차 영역 로드 밸런싱을 끄면 각 로드 밸런서 노드가 해당 가용 영역에 있는 등록된 대상 간에만 트래픽을 분산합니다. 지역보다 영역 장애 도메인을 선호하는 경우, 정상 영역이 비정상 영역의 영향을 받지 않도록 하거나 전반적인 지연 시간을 개선하는 데 사용할 수 있습니다.

Network Load Balancer를 사용하면 로드 밸런서 수준에서 기본적으로 교차 영역 로드 밸런싱이 해제되지만, 언제든지 켤 수 있습니다. 대상 그룹의 경우 기본적으로 로드 밸런서 설정을 사용하지만 대상 그룹 수준에서 교차 영역 로드 밸런싱을 명시적으로 켜거나 꺼서 기본값을 재정의할 수 있습니다.

고려 사항
  • Network Load Balancer에 대해 영역 간 로드 밸런싱을 활성화하면 EC2 데이터 전송 요금이 발생합니다. 자세한 내용은 AWS 데이터 내보내기 사용 설명서에서 데이터 전송 요금 이해를 참조하세요.

  • 대상 그룹 설정은 대상 그룹의 로드 밸런싱 동작을 결정합니다. 예를 들어, 교차 영역 로드 밸런싱이 로드 밸런서 수준에서 활성화되고 대상 그룹 수준에서 비활성화되어 있다면 대상 그룹으로 전송되는 트래픽은 가용 영역 간에 라우팅되지 않습니다.

  • 교차 영역 로드 밸런싱이 꺼져 있다면 각 영역에서 관련 워크로드를 처리할 수 있을 만큼 충분한 대상 용량이 각 로드 밸런서 가용 영역에 있는지 확인해야 합니다.

  • 교차 영역 로드 밸런싱이 꺼져 있다면 모든 대상 그룹이 동일한 가용 영역에 있어야 합니다. 빈 가용 영역은 비정상인 것으로 간주됩니다.

로드 밸런서의 교차 영역 로드 밸런싱 수정

언제든지 로드 밸런서 수준에서 교차 영역 로드 밸런싱을 켜거나 끌 수 있습니다.

콘솔을 사용하여 로드 밸런서의 교차 영역 로드 밸런싱을 수정하는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창의 로드 밸런싱에서 로드 밸런서를 선택합니다.

  3. 로드 밸런서 이름을 선택하여 세부 정보 페이지를 엽니다.

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

  5. Edit load balancer attributes(로드 밸런서 특성 편집) 페이지에서 Cross-zone load balancing(교차 영역 로드 밸런싱)을 켜거나 끕니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 로드 밸런서에 대한 교차 영역 로드 밸런싱을 수정하려면 AWS CLI

load_balancing.cross_zone.enabled 속성과 함께 modify-load-balancer-attributes 명령을 사용합니다.

대상 그룹의 교차 영역 로드 밸런싱 수정

대상 그룹 수준의 교차 영역 로드 밸런싱 설정은 로드 밸런서 수준의 설정을 재정의합니다.

대상 그룹 유형이 instance 또는 ip인 경우 대상 그룹 수준에서 교차 영역 로드 밸런싱을 켜거나 끌 수 있습니다. 대상 그룹 유형이 alb인 경우 대상 그룹은 항상 로드 밸런서로부터 교차 영역 로드 밸런싱 설정을 상속합니다.

콘솔을 사용하여 대상 그룹의 교차 영역 로드 밸런싱을 수정하는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창의 Load Balancing(로드 밸런싱)에서 Target Groups(대상 그룹)을 선택합니다.

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

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

  5. Edit target group attributes(대상 그룹 속성 편집) 페이지에서 Cross-zone load balancing(교차 영역 로드 밸런싱)에 대해 On(사용)을 선택합니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 대상 그룹에 대한 교차 영역 로드 밸런싱을 수정하려면 AWS CLI

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

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

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

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

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

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

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

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

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

  6. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 연결 종료 설정을 수정하려면 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. Save changes(변경 사항 저장)를 선택합니다.

를 사용하여 비정상 드레이닝 간격을 수정하려면 AWS CLI

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