이 문서에는 영역 네트워크 엔드포인트 그룹(NEG)을 구성하기 위한 지침이 포함되어 있습니다. 영역 NEG를 구성하기 전에 네트워크 엔드포인트 그룹 개요를 읽어보세요.
엔드포인트가 GCE_VM_IP
인 영역 NEG
이는 내부 패스 스루 네트워크 부하 분산기 및 외부 패스 스루 네트워크 부하 분산기에서 백엔드 서비스의 백엔드로 사용될 수 있습니다. 자세한 내용은 영역 NEG 개요: 부하 분산을 참조하세요.
엔드 투 엔드 예시는 다음을 참조하세요.
엔드포인트가 GCE_VM_IP_PORT
인 영역 NEG
다음 유형의 부하 분산기에서 백엔드 서비스의 백엔드로 사용할 수 있습니다.
- 외부 애플리케이션 부하 분산기(전역 및 리전)
- 내부 애플리케이션 부하 분산기
- 외부 프록시 네트워크 부하 분산기
- 리전 내부 프록시 네트워크 부하 분산기
- 리전 간 내부 프록시 네트워크 부하 분산기
- 엔드 투 엔드 예시: 영역별 NEG 백엔드로 리전 내부 프록시 네트워크 부하 분산기 설정
GCE_VM_IP_PORT
영역 NEG의 기본 사용 사례는 컨테이너 기반 부하 분산이므로, VM의 컨테이너에서 실행되는 마이크로서비스 간에 트래픽을 분산시킬 수 있습니다. 컨테이너 기반 부하 분산은 부하 분산기가 Pod를 직접 대상으로 지정하고, VM 수준 대신 Pod 수준으로 부하 분산 결정을 내릴 수 있게 해줍니다.
GKE 인그레스에서 관리되는 NEG 또는 독립형 NEG를 사용하는 두 가지 방법으로 컨테이너 기반 부하 분산을 구성할 수 있습니다.
자세한 안내는 다음을 참조하세요.
영역별 NEG 구성
이 페이지의 나머지 부분에서는 부하 분산기를 이미 만들기 이전 또는 이후에 영역별 NEG를 구성하는 방법을 설명합니다. 이러한 작업 중 일부는 인그레스로 생성 및 관리되는 영역별 NEG에 적용되지 않습니다.
영역별 네트워크 엔드포인트 그룹 만들기
콘솔
영역별 네트워크 엔드포인트 그룹을 만들려면 다음 안내를 따르세요.
- Google Cloud 콘솔의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
네트워크 엔드포인트 그룹 페이지로 이동 - 네트워크 엔드포인트 그룹 만들기를 클릭합니다.
- 네트워크 엔드포인트 그룹 유형에서 네트워크 엔드포인트 유형: 영역을 선택합니다.
- 네트워크 엔드포인트 그룹의 이름을 입력합니다.
- 네트워크 엔드포인트 유형으로 네트워크 엔드포인트 그룹(영역)을 선택합니다.
- 사용 중인 부하 분산기 유형에 따라 엔드포인트 유형을 선택합니다.
- 네트워크를 선택합니다.
- 서브네트워크를 선택합니다.
- 영역을 선택합니다.
GCE_VM_IP_PORT
엔드포인트만 있는 영역별 NEG의 경우 기본 포트를 입력합니다.- 만들기를 클릭합니다.
gcloud
GCE_VM_IP_PORT
영역별 NEG 만들기
gcloud compute network-endpoint-groups create NEG_NAME \ --zone=ZONE \ --network=NETWORK [--subnet=SUBNET] [--default-port=DEFAULT_PORT]
이 명령어에서 플래그는 다음과 같이 정의됩니다.
NEG_NAME
은 새 네트워크 엔드포인트 그룹의 이름입니다. 이름은 영역 내에서 고유해야 합니다.ZONE
은 NEG가 생성되는 영역의 이름입니다.NETWORK
는 NEG가 생성되는 네트워크의 이름입니다. 생략할 경우 Google Cloud는default
라는 네트워크를 사용합니다.SUBNET
은 네트워크 엔드포인트가 속하는 서브넷의 이름입니다. 네트워크가 자동 모드 VPC 네트워크인 경우 이 플래그는 선택사항입니다. 생략할 경우 NEG는 선택한 영역의 리전에서 자동으로 생성된 서브넷에 있습니다. 네트워크가 커스텀 모드 VPC이거나 수동으로 생성된 서브넷을 지정해야 하는 경우 플래그가 필요합니다.DEFAULT_PORT
는 NEG와 연결된 기본 포트입니다. 이 플래그는 선택사항입니다. 생략할 경우 모든 엔드포인트를 IP:port로 지정해야 합니다. 포함할 경우 엔드포인트 지정 시port
부분을 생략할 수 있으며, 이 경우 기본 포트가 가정됩니다.
GCE_VM_IP
영역별 NEG 만들기
GCE_VM_IP
영역 네트워크 엔드포인트 그룹을 만들려면 다음과 같이 network-endpoint-type
을 지정해야 합니다.
gcloud compute network-endpoint-groups
create
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=gce-vm-ip \ --zone=ZONE \ --network=NETWORK --subnet=SUBNET
이 명령어에서 플래그는 다음과 같이 정의됩니다.
NEG_NAME
은 새 네트워크 엔드포인트 그룹의 이름입니다. 이름은 영역 내에서 고유해야 합니다.ZONE
은 NEG가 생성되는 영역의 이름입니다.NETWORK
는 NEG가 생성되는 네트워크의 이름입니다.SUBNET
은 네트워크 엔드포인트가 속하는 서브넷의 이름입니다.
네트워크 엔드포인트 그룹에 엔드포인트 추가
콘솔
네트워크 엔드포인트 그룹에 엔드포인트를 추가하려면 다음 안내를 따르세요.
- Google Cloud 콘솔의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
네트워크 엔드포인트 그룹 페이지로 이동 - 엔드포인트를 추가할 네트워크 엔드포인트 그룹의 이름을 클릭합니다. 네트워크 엔드포인트 그룹 세부정보 페이지가 표시됩니다.
- 이 그룹의 네트워크 엔드포인트 섹션에서 네트워크 엔드포인트 추가를 클릭합니다. 네트워크 엔드포인트 추가 페이지가 표시됩니다.
- 내부 IP 주소를 네트워크 엔드포인트로 추가할 VM 인스턴스를 선택하고 추가를 클릭합니다. 네트워크 인터페이스, 영역, 서브넷, 엔드포인트에 할당된 VM 인터페이스의 내부 IP 주소가 표시됩니다.
GCE_VM_IP_PORT
엔드포인트만 있는 영역별 NEG의 경우 다음 단계를 수행합니다.- 새 네트워크 엔드포인트의 IP 주소 또는 범위를 입력합니다.
- 포트 유형을 선택합니다.
- 기본값을 선택할 경우 엔드포인트는 네트워크 엔드포인트 그룹의 모든 엔드포인트에 기본 포트를 사용합니다.
- 커스텀을 선택할 경우 엔드포인트에서 사용할 포트 번호를 입력합니다.
- 엔드포인트를 더 추가하려면 네트워크 엔드포인트 추가를 클릭하고 5단계와 6단계를 반복합니다.
- 필요한 엔드포인트를 모두 추가한 후 추가를 클릭합니다.
gcloud
네트워크 엔드포인트 그룹에 엔드포인트를 추가하려면 다음 안내를 따르세요.
gcloud compute network-endpoint-groups update NEG_NAME \ --zone=ZONE \ --add-endpoint 'instance=INSTANCE_NAME,[ip=IP_ADDRESS],[port=PORT]' \ [--add-endpoint ...]
다음을 바꿉니다.
NEG_NAME
: NEG 이름입니다.ZONE
: NEG가 있는 영역의 이름입니다.INSTANCE_NAME
: IP 주소가 속하는 VM의 이름입니다.IP_ADDRESS
: 추가하려는 네트워크 엔드포인트의 선택적인 IP 주소입니다. IP 주소를 생략하면 Google Cloud가 NEG의 서브네트워크와 일치하는 VM 인스턴스의 기본 내부 IP 주소를 선택합니다.PORT
: 추가하는 네트워크 엔드포인트의 포트입니다. NEG에서 기본 포트를 지정할 경우 포트는 선택사항입니다. 이 필드는GCE_VM_IP
엔드포인트가 있는 영역 NEG에서는 지원되지 않습니다.
자세한 내용은 영역별 네트워크 엔드포인트 그룹 개요를 참조하세요.
예를 들어 GCE_VM_IP_PORT
영역 NEG에 엔드포인트를 추가하려면 다음 명령어를 실행합니다.
gcloud compute network-endpoint-groups update my-lb-neg \ --zone=asia-southeast1-a \ --add-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80'
백엔드 서비스에 영역 NEG 추가
콘솔
백엔드 서비스에 네트워크 엔드포인트 그룹을 추가하는 방법
- Google Cloud 콘솔의 부하 분산 페이지로 이동합니다.
부하 분산 페이지로 이동 - 백엔드 서비스를 수정할 부하 분산기의 이름을 클릭합니다.
- 부하 분산기 세부정보 페이지에서 수정 을 클릭합니다.
- 부하 분산기 수정 페이지에서 백엔드 구성을 클릭합니다.
- 백엔드 구성 페이지에서 수정 을 클릭합니다.
- +백엔드 추가를 클릭합니다.
- 영역별 네트워크 엔드포인트 그룹을 선택하고 완료를 클릭합니다.
- 업데이트를 클릭합니다.
gcloud
백엔드 서비스에 NEG를 추가하려면 다음 명령어를 실행합니다.
gcloud compute backend-services add-backend BACKEND_SERVICE \ --network-endpoint-group=NETWORK_ENDPOINT_GROUP \ --network-endpoint-group-zone=ZONE
예를 들어 백엔드 서비스에 GCE_VM_IP_PORT
영역 NEG를 추가하려면 다음 명령어를 실행합니다.
gcloud compute backend-services add-backend my-lb \ --network-endpoint-group my-lb-neg \ --network-endpoint-group-zone=asia-southeast1-a \ --global \ --balancing-mode=RATE \ --max-rate-per-endpoint=5
백엔드 서비스에서 NEG 삭제
콘솔
- Google Cloud 콘솔의 부하 분산 페이지로 이동합니다.
부하 분산 페이지로 이동 - 백엔드 서비스를 수정할 부하 분산기의 이름을 클릭합니다.
- 부하 분산기 세부정보 페이지에서 수정 을 클릭합니다.
- 부하 분산기 수정 페이지에서 백엔드 구성을 클릭합니다.
- 백엔드 구성 페이지에서 NEG를 삭제할 백엔드 서비스에 대해 수정 을 클릭합니다.
- 백엔드 섹션에서 삭제할 NEG를 찾아 해당 NEG에 대해 휴지통 아이콘을 클릭합니다.
- 업데이트를 클릭합니다.
gcloud
백엔드 서비스에서 NEG를 삭제하는 방법
gcloud compute backend-services remove-backend BACKEND_SERVICE \ --network-endpoint-group=NETWORK_ENDPOINT_GROUP \ --network-endpoint-group-zone=NETWORK_ENDPOINT_GROUP_ZONE
예를 들면 다음과 같습니다.
gcloud compute backend-services remove-backend my-lb \ --network-endpoint-group=my-lb-neg \ --network-endpoint-group-zone=asia-southeast1-a
네트워크 엔드포인트 그룹에서 엔드포인트 삭제
네트워크 엔드포인트가 부하 분산 NEG에서 삭제되면 백엔드 서비스에 지정된 드레이닝 매개변수를 기반으로 연결 드레이닝이 트리거됩니다. 여러 백엔드 서비스가 동일한 NEG를 참조하면 모든 백엔드 서비스의 최대 드레이닝 간격이 적용됩니다.
콘솔
네트워크 엔드포인트 그룹에서 엔드포인트를 삭제하려면 다음 안내를 따르세요.
- Google Cloud 콘솔의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
네트워크 엔드포인트 그룹 페이지로 이동 - 엔드포인트를 삭제할 네트워크 엔드포인트 그룹의 이름을 클릭합니다. 네트워크 엔드포인트 그룹 세부정보 페이지가 표시됩니다.
- 삭제할 네트워크 엔드포인트를 선택하고 엔드포인트 삭제를 클릭합니다.
gcloud
네트워크 엔드포인트 그룹에서 엔드포인트를 삭제하려면 다음 안내를 따르세요.
gcloud compute network-endpoint-groups update NEG_NAME \ --zone=ZONE \ --remove-endpoint 'instance=INSTANCE_NAME,[ip=IP],[port=PORT]' \ [--remove-endpoint ...]
예를 들어 GCE_VM_IP_PORT
영역 NEG에서 엔드포인트를 삭제하려면 다음 명령어를 실행합니다.
gcloud compute network-endpoint-groups update my-lb-neg \ --remove-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80' \ --zone=asia-southeast1-a
네트워크 엔드포인트 그룹 나열
콘솔
네트워크 엔드포인트 그룹의 목록을 보려면 Google Cloud Console의 네트워크 엔드포인트 그룹 페이지로 이동하세요.
네트워크 엔드포인트 그룹 페이지로 이동
gcloud
네트워크 엔드포인트 그룹을 나열하는 방법
gcloud compute network-endpoint-groups list
특정 네트워크 엔드포인트 그룹 설명
콘솔
특정 네트워크 엔드포인트 그룹의 세부정보를 가져오려면 다음을 실행합니다.
- Google Cloud 콘솔의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
네트워크 엔드포인트 그룹 페이지로 이동 - 세부정보를 확인할 네트워크 엔드포인트 그룹의 이름을 클릭합니다.
gcloud
특정 네트워크 엔드포인트 그룹의 세부정보를 가져오려면 다음을 실행합니다.
gcloud compute network-endpoint-groups describe NEG_NAME \ --zone=ZONE
다음을 바꿉니다.
NEG_NAME
: 네트워크 엔드포인트 그룹의 이름입니다.ZONE
: NEG가 생성된 영역의 선택적인 이름입니다.
예를 들어 gcloud
명령어는 네트워크 엔드포인트 그룹 my-lb-neg
에 대한 정보를 나열합니다.
gcloud compute network-endpoint-groups describe my-lb-neg \ --zone=asia-southeast1-a
명령어를 실행하면 다음과 같이 출력됩니다.
creationTimestamp: '2018-04-09T14:51:34.381-07:00' id: '5260475207627726473' kind: compute#networkEndpointGroup loadBalancer: defaultPort: 80 network: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/default zone: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/asia-southeast1-a
네트워크 엔드포인트 그룹 삭제
네트워크 엔드포인트 그룹이 백엔드 서비스에 연결되어 있으면 삭제할 수 없습니다. NEG를 삭제하기 전에 백엔드 서비스에서 분리하세요.
VM을 삭제하면 VM의 모든 네트워크 엔드포인트가 NEG에서 즉시 삭제되고 모든 연결이 종료됩니다. 백엔드 서비스를 삭제한 후 NEG를 삭제해도 연결 드레이닝 없이 해당 NEG의 모든 엔드포인트가 삭제됩니다.
콘솔
네트워크 엔드포인트 그룹에서 엔드포인트를 삭제하려면 다음 안내를 따르세요.
- Google Cloud 콘솔의 부하 분산 페이지로 이동합니다.
부하 분산 페이지로 이동 - 백엔드 서비스를 수정할 부하 분산기의 이름을 클릭합니다.
- 부하 분산기 세부정보 페이지에서 수정 을 클릭합니다.
- 부하 분산기 수정 페이지에서 백엔드 구성을 클릭합니다.
- 백엔드 구성 페이지에서 NEG를 삭제할 백엔드 서비스에 대해 수정 을 클릭합니다.
- 백엔드 섹션에서 삭제할 NEG를 찾아 해당 NEG에 대해 휴지통 아이콘을 클릭합니다.
- 업데이트를 클릭합니다.
네트워크 엔드포인트 그룹을 삭제하려면 다음을 실행합니다.
- Google Cloud 콘솔의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
네트워크 엔드포인트 그룹 페이지로 이동 - 삭제할 네트워크 엔드포인트 그룹을 찾습니다.
- 해당 행에서 휴지통 아이콘을 클릭합니다.
gcloud
네트워크 엔드포인트 그룹에서 엔드포인트를 삭제하려면 다음 안내를 따르세요.
gcloud compute backend-services remove-backend BACKEND_SERVICE \ --network-endpoint-group=NETWORK_ENDPOINT_GROUP \ --network-endpoint-group-zone=ZONE
네트워크 엔드포인트 그룹을 삭제하려면 다음을 실행합니다.
gcloud compute network-endpoint-groups delete NEG_NAME \ --zone=ZONE
예를 들면 다음과 같습니다.
gcloud compute backend-services remove-backend my-neg-backend \ --network-endpoint-group=my-lb-neg \ --network-endpoint-group-zone=southeast1-a
gcloud compute network-endpoint-groups delete my-lb-neg \ --zone=asia-southeast1-a
네트워크 엔드포인트 그룹의 엔드포인트 나열
콘솔
네트워크 엔드포인트 그룹의 엔드포인트 목록을 보는 방법
- Google Cloud 콘솔의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
네트워크 엔드포인트 그룹 페이지로 이동 - 엔드포인트를 삭제할 네트워크 엔드포인트 그룹의 이름을 클릭합니다. 엔드포인트 그룹의 엔드포인트가 나열된 네트워크 엔드포인트 그룹 세부정보 페이지가 표시됩니다.
- 엔드포인트를 필터링하려면 이 그룹의 네트워크 엔드포인트의 텍스트 필드에 키-값 쌍을 만듭니다.
gcloud
네트워크 엔드포인트 그룹의 모든 네트워크 엔드포인트를 나열하는 방법
gcloud compute network-endpoint-groups list-network-endpoints NEG_NAME \ --zone=ZONE
네트워크 엔드포인트 그룹의 엔드포인트 나열 시 커스텀 필터링
커스텀 필터를 사용하여 네트워크 엔드포인트 그룹 내 엔드포인트를 제한할 수 있습니다. 커스텀 필터링은 REST API에만 사용 설정됩니다. Google Cloud 콘솔 또는 gcloud
명령줄 인터페이스에서 커스텀 필터링을 사용할 수 없습니다.
자세한 내용은 networkEndpointGroups.listNetworkEndpoints 메서드 문서를 참조하세요.
네트워크 엔드포인트의 상태 점검
영역별 NEG 백엔드가 있는 백엔드 서비스는 포트 사양이 다음 중 하나와 같이 지정된 상태 점검을 사용해야 합니다.
- 번호가 지정된 고정 포트(
--port
) - 네트워크 엔드포인트의 제공 포트를 사용하도록 구성(
--use-serving-port
)
다음 예시에서는 --use-serving-port
플래그와 함께 네트워크 엔드포인트의 제공 포트를 사용하는 HTTP 상태 점검을 만듭니다. --use-serving-port
플래그는 gcloud compute
health-checks create
로 구현되지만 gcloud compute health-checks update
로는 구현되지 않습니다.
gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME --use-serving-port
영역 NEG 백엔드가 있는 기존 상태 점검은 사용할 수 없습니다. 자세한 내용은 상태 점검 개념을 참조하세요.