영역별 NEG 설정

네트워크 엔드포인트 그룹 구성 및 엔드포인트 추가

이 문서에는 영역별 네트워크 엔드포인트 그룹(NEG)을 구성하기 위한 지침이 포함되어 있습니다. 영역별 NEG를 구성하기 전에 네트워크 엔드포인트 그룹 개요를 읽어보세요.

영역별 네트워크 엔드포인트 그룹 만들기

Console

영역별 네트워크 엔드포인트 그룹을 만들려면 다음 안내를 따르세요.

  1. Google Cloud Console의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
    네트워크 엔드포인트 그룹 페이지로 이동
  2. 네트워크 엔드포인트 그룹 만들기를 클릭합니다.
  3. 네트워크 엔드포인트 그룹 유형에서 네트워크 엔드포인트 유형: 영역을 선택합니다.
  4. 네트워크 엔드포인트 그룹의 이름을 입력합니다.
  5. VPC 네트워크 위치를 선택합니다.
  6. VPC 네트워크를 선택합니다.
  7. 서브넷을 선택합니다.
  8. 영역을 선택합니다.
  9. 네트워크 엔드포인트 유형을 선택합니다.
  10. 네트워크 엔드포인트 기본 포트를 입력합니다.
  11. 만들기를 클릭합니다.

gcloud

영역별 네트워크 엔드포인트 그룹을 만들려면 다음 gcloud compute network-endpoint-groups create 명령어를 사용합니다.

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]은 네트워크 엔드포인트가 속하는 서브넷의 이름입니다. 네트워크가 자동 모드 네트워크인 경우 이 플래그는 선택사항입니다. 생략할 경우 NEG는 선택한 영역의 리전에서 자동으로 생성된 서브넷에 있습니다. 네트워크가 커스텀 모드 네트워크이거나 수동으로 생성된 서브넷을 지정해야 하는 경우 플래그가 필요합니다.
  • [DEFAULT_PORT]는 NEG와 연결된 기본 포트입니다. 이 플래그는 선택사항입니다. 생략할 경우 모든 엔드포인트를 IP:port로 지정해야 합니다. 포함할 경우 엔드포인트 지정 시 port 부분을 생략할 수 있으며, 이 경우 기본 포트가 가정됩니다.

예를 들면 다음과 같습니다.

gcloud compute network-endpoint-groups create my-lb-neg \
    --network=my-network \
    --subnet=my-subnet \
    --default-port=80  \
    --zone=asia-southeast1-a

네트워크 엔드포인트 그룹에 엔드포인트 추가

Console

네트워크 엔드포인트 그룹에 엔드포인트를 추가하려면 다음 안내를 따르세요.

  1. Google Cloud Console의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
    네트워크 엔드포인트 그룹 페이지로 이동
  2. 엔드포인트를 추가할 네트워크 엔드포인트 그룹의 이름을 클릭합니다. 네트워크 엔드포인트 그룹 세부정보 페이지가 표시됩니다.
  3. 이 그룹의 네트워크 엔드포인트 섹션에서 네트워크 엔드포인트 추가를 클릭합니다. 네트워크 엔드포인트 추가 페이지가 표시됩니다.
  4. 내부 IP 주소를 네트워크 엔드포인트로 추가할 VM 인스턴스를 선택하고 추가를 클릭합니다. VM의 네트워크 인터페이스, 영역, 서브넷이 표시됩니다.
  5. 새 네트워크 엔드포인트의 IP 주소 또는 범위를 입력합니다.
  6. 포트 유형을 선택합니다.
    1. 기본값을 선택할 경우 엔드포인트는 네트워크 엔드포인트 그룹의 모든 엔드포인트에 기본 포트를 사용합니다.
    2. 커스텀을 선택할 경우 엔드포인트에서 사용할 포트 번호를 입력합니다.
  7. 엔드포인트를 더 추가하려면 네트워크 엔드포인트 추가를 클릭하고 5단계와 6단계를 반복합니다.
  8. 필요한 엔드포인트를 모두 추가한 후 추가를 클릭합니다.

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 주소입니다.
  • [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 추가

Console


백엔드 서비스에 네트워크 엔드포인트 그룹을 추가하려면 다음 안내를 따르세요.

  1. Google Cloud Console의 부하 분산 페이지로 이동합니다.
    부하 분산 페이지로 이동
  2. 백엔드 서비스를 수정할 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 페이지에서 수정 을 클릭합니다.
  4. 부하 분산기 수정 페이지에서 백엔드 구성을 클릭합니다.
  5. 백엔드 구성 페이지에서 수정 을 클릭합니다.
  6. +백엔드 추가를 클릭합니다.
  7. 영역별 네트워크 엔드포인트 그룹을 선택하고 완료를 클릭합니다.
  8. 업데이트를 클릭합니다.

gcloud


백엔드 서비스에 NEG를 추가하는 방법

gcloud compute backend-services add-backend [BACKEND_SERVICE] \
    [--network-endpoint-group=[NETWORK_ENDPOINT_GROUP]] \
    [--network-endpoint-group-zone=[ZONE]]

예를 들면 다음과 같습니다.

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 삭제

Console

  1. Google Cloud Console의 부하 분산 페이지로 이동합니다.
    부하 분산 페이지로 이동
  2. 백엔드 서비스를 수정할 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 페이지에서 수정 을 클릭합니다.
  4. 부하 분산기 수정 페이지에서 백엔드 구성을 클릭합니다.
  5. 백엔드 구성 페이지에서 NEG를 삭제할 백엔드 서비스에 대해 수정 을 클릭합니다.
  6. 백엔드 섹션에서 삭제할 NEG를 찾아 해당 NEG에 대해 휴지통 아이콘을 클릭합니다.
  7. 업데이트를 클릭합니다.

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를 참조하면 모든 백엔드 서비스의 최대 드레이닝 간격이 적용됩니다.

Console

네트워크 엔드포인트 그룹에서 엔드포인트를 삭제하려면 다음 안내를 따르세요.

  1. Google Cloud Console의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
    네트워크 엔드포인트 그룹 페이지로 이동
  2. 엔드포인트를 삭제할 네트워크 엔드포인트 그룹의 이름을 클릭합니다. 네트워크 엔드포인트 그룹 세부정보 페이지가 표시됩니다.
  3. 삭제할 네트워크 엔드포인트를 선택하고 엔드포인트 삭제를 클릭합니다.

gcloud

네트워크 엔드포인트 그룹에서 엔드포인트를 삭제하는 방법

gcloud compute network-endpoint-groups update NEG_NAME \
[--zone=ZONE] \
--remove-endpoint 'instance=INSTANCE_NAME,[ip=IP],[port=PORT]' \
--remove-endpoint ...

예를 들면 다음과 같습니다.

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

네트워크 엔드포인트 그룹 나열

Console

네트워크 엔드포인트 그룹의 목록을 보려면 Google Cloud Console의 네트워크 엔드포인트 그룹 페이지로 이동하세요.
네트워크 엔드포인트 그룹 페이지로 이동

gcloud

네트워크 엔드포인트 그룹을 나열하는 방법

gcloud compute network-endpoint-groups list

특정 네트워크 엔드포인트 그룹 설명

Console

특정 네트워크 엔드포인트 그룹의 세부정보를 가져오는 방법

  1. Google Cloud Console의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
    네트워크 엔드포인트 그룹 페이지로 이동
  2. 세부정보를 확인할 네트워크 엔드포인트 그룹의 이름을 클릭합니다.

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의 모든 엔드포인트가 삭제됩니다.

Console

백엔드 서비스에서 네트워크 엔드포인트 그룹을 삭제하는 방법

  1. Google Cloud Console의 부하 분산 페이지로 이동합니다.
    부하 분산 페이지로 이동
  2. 백엔드 서비스를 수정할 부하 분산기의 이름을 클릭합니다.
  3. 부하 분산기 세부정보 페이지에서 수정 을 클릭합니다.
  4. 부하 분산기 수정 페이지에서 백엔드 구성을 클릭합니다.
  5. 백엔드 구성 페이지에서 NEG를 삭제할 백엔드 서비스에 대해 수정 을 클릭합니다.
  6. 백엔드 섹션에서 삭제할 NEG를 찾아 해당 NEG에 대해 휴지통 아이콘을 클릭합니다.
  7. 업데이트를 클릭합니다.

네트워크 엔드포인트 그룹을 삭제하는 방법

  1. Google Cloud Console의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
    네트워크 엔드포인트 그룹 페이지로 이동
  2. 삭제할 네트워크 엔드포인트 그룹을 찾습니다.
  3. 해당 행에서 휴지통 아이콘을 클릭합니다.

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

네트워크 엔드포인트 그룹의 엔드포인트 나열

Console

네트워크 엔드포인트 그룹의 엔드포인트 목록을 보는 방법

  1. Google Cloud Console의 네트워크 엔드포인트 그룹 페이지로 이동합니다.
    네트워크 엔드포인트 그룹 페이지로 이동
  2. 엔드포인트를 삭제할 네트워크 엔드포인트 그룹의 이름을 클릭합니다. 엔드포인트 그룹의 엔드포인트가 나열된 네트워크 엔드포인트 그룹 세부정보 페이지가 표시됩니다.
  3. 엔드포인트를 필터링하려면 이 그룹의 네트워크 엔드포인트의 텍스트 필드에 키-값 쌍을 만듭니다.

gcloud

네트워크 엔드포인트 그룹의 모든 네트워크 엔드포인트를 나열하는 방법

gcloud compute network-endpoint-groups list-network-endpoints NEG_NAME \
    [--zone=ZONE]

네트워크 엔드포인트 그룹의 엔드포인트 나열 시 커스텀 필터링

커스텀 필터링은 베타 기능입니다.

커스텀 필터를 사용하여 네트워크 엔드포인트 그룹 내 엔드포인트를 제한할 수 있습니다. 커스텀 필터링은 REST API에만 사용 설정됩니다. Cloud Console 또는 gcloud 명령줄 인터페이스에서는 커스텀 필터링을 사용할 수 없습니다.

자세한 내용은 networkEndpointGroups.listNetworkEndpoints 메서드 문서를 참조하세요.

네트워크 엔드포인트의 상태 확인

영역별 NEG 백엔드가 있는 백엔드 서비스는 포트 사양이 다음 중 하나와 같이 지정된 상태 확인을 사용해야 합니다.

  • 번호가 지정된 고정 포트(--port)
  • 네트워크 엔드포인트의 제공 포트를 사용하도록 구성(--use-serving-port)

다음 예시에서는 --use-serving-port 플래그와 함께 네트워크 엔드포인트의 제공 포트를 사용하는 상태 확인을 만듭니다. --use-serving-port 플래그는 gcloud compute health-checks create로 구현되지만 gcloud compute health-checks update로는 구현되지 않습니다.

영역별 NEG 백엔드가 있는 기존 상태 확인은 사용할 수 없습니다. 자세한 내용은 상태 확인 개념을 참조하세요.

부하 분산 영역별 NEG 예시

다음 예시에서는 부하 분산 영역별 NEG를 만들고, 네트워크 엔드포인트 3개를 NEG에 연결하고, 엔드포인트를 나열합니다. 여기서는 포트에서 서비스가 실행 중인 VM 3개가 이미 있다고 가정합니다.

  1. 서브넷, 별칭 IP 주소, VM 2개를 만듭니다.

    gcloud compute networks subnets create subnet-a \
        --network network-a \
        --range 10.128.0.0/16 \
        --secondary-range container-range=192.168.0.0/16
    
    gcloud compute instances create vm1 --zone asia-southeast1-a \
        --network-interface \
        "subnet=subnet-a,aliases=r1:192.168.0.0/24;secondaryrange1:192.168.1.0/24"
    
    gcloud compute instances create vm2 --zone asia-southeast1-a \
        --network-interface \
        "subnet=subnet-a,aliases=r1:192.168.2.0/24"
    
  2. NEG를 만듭니다. 동일한 영역에서 여러 NEG를 사용할 수 있습니다.

    gcloud compute network-endpoint-groups create neg1 \
         --zone=asia-southeast1-a \
         --network=network-a --subnet=subnet-a \
         --default-port=80
    
        Created [https://www.googleapis.com/compute/v1/projects/project/zones/asia-southeast1-a/networkEndpointGroups/my-lb-neg].
        NAME       LOCATION       TYPE            ENDPOINT_TYPE   DEFAULT_PORT ENDPOINTS
        neg1  asia-southeast1-a  LOAD_BALANCING  80           0
    
  3. NEG에 엔드포인트를 추가합니다.

    gcloud compute network-endpoint-groups update neg1 \
       --zone=asia-southeast1-a
       --add-endpoint 'instance=vm1,ip=192.168.0.1' \
       --add-endpoint 'instance=vm1,ip=192.168.0.1,port=8080' \
       --add-endpoint 'instance=vm1,ip=192.168.1.2,port=8088' \
       --add-endpoint 'instance=vm1,ip=192.168.1.2,port=8080' \
       --add-endpoint 'instance=vm2,ip=192.168.2.1,port=8088' \
       --add-endpoint 'instance=vm2,ip=192.168.2.2,port=8080'
    
  4. 상태 확인을 만듭니다.

    gcloud compute health-checks create http healthcheck1 --use-serving-port
    
  5. 백엔드 서비스를 만듭니다.

    gcloud compute backend-services create backendservice1 \
        --global \
        --health-checks healthcheck1 \
        --global-health-checks
    
  6. 백엔드 서비스에 백엔드를 추가합니다.

    gcloud compute backend-services add-backend backendservice1 --global \
       --network-endpoint-group=neg1 \
       --network-endpoint-group-zone=asia-southeast1-a \
       --balancing-mode=RATE --max-rate-per-endpoint=5
    
  7. URL 맵을 만듭니다.

    gcloud compute url-maps create urlmap1 --default-service backendservice1
    
  8. 대상 프록시를 만듭니다.

    gcloud compute target-http-proxies create httpproxy1 --url-map urlmap1
    
  9. 전달 규칙을 만듭니다.

    gcloud compute forwarding-rules create forwardingrule1 \
        --ip-protocol TCP --ports=80 --global --target-http-proxy httpproxy1
    
  10. 방화벽 규칙을 만듭니다.

    gcloud compute firewall-rules create allow-load-balancer \
        --network network-a \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --target-tags lb \
        --allow tcp