외부 패스 스루 네트워크 부하 분산기 등록

이 페이지에서는 서비스 디렉터리에 자동으로 등록되도록 외부 패스 스루 네트워크 부하 분산기를 구성하는 방법을 설명합니다.

부하 분산기를 만들 때 원하는 기존 서비스 디렉터리 네임스페이스 및 서비스에 엔드포인트로 등록할 수 있습니다. 그런 다음 클라이언트 애플리케이션은 서비스 디렉터리 (HTTP 또는 gRPC 사용)를 사용하여 외부 패스 스루 네트워크 부하 분산기 서비스의 주소를 확인하고 직접 연결할 수 있습니다.

제한사항

외부 패스 스루 네트워크 부하 분산기와의 서비스 디렉터리 통합에는 다음과 같은 제한사항이 있습니다.

시작하기 전에

이 안내를 따르려면 다음이 필요합니다.

  • 서비스 디렉터리 네임스페이스 및 서비스가 이미 있어야 합니다. 그렇지 않은 경우 서비스 디렉터리 구성의 절차에 따라 네임스페이스와 서비스를 만듭니다.

    서비스 디렉터리 네임스페이스 및 서비스는 만들고 있는 외부 패스 스루 네트워크 부하 분산기 전달 규칙과 동일한 프로젝트 및 리전에 있어야 합니다.

  • 외부 패스 스루 네트워크 부하 분산기 전달 규칙을 만드는 데 필요한 리소스를 이미 설정해야 합니다.

    외부 패스 스루 네트워크 부하 분산기를 만드는 방법에 대한 자세한 내용은 외부 패스 스루 네트워크 부하 분산기 설정을 참조하세요.

서비스 디렉터리에 외부 패스 스루 네트워크 부하 분산기를 등록하도록 전달 규칙 설정

서비스 디렉터리에 외부 패스 스루 네트워크 부하 분산기를 등록하려면 전달 규칙을 설정해야 합니다. 외부 패스 스루 네트워크 부하 분산기를 등록하려면 다음 섹션을 참조하세요.

외부 패스 스루 네트워크 부하 분산기 등록

리전 외부 패스 스루 네트워크 부하 분산기를 등록하려면 gcloud compute forwarding-rules create 명령어를 실행하고 service-directory-registration 플래그를 설정합니다.

gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=EXTERNAL \
    --address=RESERVED_IP_ADDRESS \
    --ip-protocol=PROTOCOL_TYPE \
    --ports=PORT_NUMBER \
    --backend-service=BACKEND_SERVICE_NAME \
    --backend-service-region=REGION \
    --service-directory-registration=SD_SERVICE_NAME

다음을 바꿉니다.

  • FORWARDING_RULE_NAME: 만들려는 전달 규칙의 이름
  • REGION: 전달 규칙을 만들 리전
  • RESERVED_IP_ADDRESS: 전달 규칙이 제공하는 IP 주소
  • PROTOCOL_TYPE: 규칙이 제공할 IP 프로토콜
  • PORT_NUMBER: 쉼표로 구분된 포트 목록
  • BACKEND_SERVICE_NAME: 트래픽을 수신하는 대상 백엔드 서비스
  • SD_SERVICE_NAME: 엔드포인트를 등록할 서비스 디렉터리 서비스의 정규화된 이름. 이 서비스는 만들려는 전달 규칙과 동일한 프로젝트 및 리전에 있어야 합니다. 예: projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME.

엔드포인트 확인

외부 패스 스루 네트워크 부하 분산기를 등록할 때 생성되는 서비스 디렉터리 엔드포인트에는 다음과 같은 특징이 있습니다.

  • 엔드포인트의 이름은 지정된 포트 번호 (<forwarding rule name>-<port>)가 있는 전달 규칙의 이름과 동일합니다. 예를 들어 전달 규칙 RULE--port=8080으로 만들면 RULE-8080이라는 엔드포인트가 생성됩니다. 동일한 규칙에 대해 포트 2개(--port=8080, 8081)를 지정하면 엔드포인트 RULE-8080RULE-8081이 생성됩니다. --port=ALL을 지정하면 서비스 디렉터리 엔드포인트가 포트 0으로 등록됩니다. 외부 패스 스루 네트워크 부하 분산기의 소유자인 경우 API 호출자가 연결할 포트를 알고 있는지 확인해야 합니다.
  • 공개 서비스 디렉터리 API를 사용하여 엔드포인트를 수정하거나 삭제할 수 없습니다. 전달 규칙을 삭제할 때만 엔드포인트가 자동으로 삭제됩니다. 즉, 전달 규칙이 있는 동안에는 엔드포인트가 있는 서비스 및 네임스페이스를 삭제할 수 없습니다.
  • 엔드포인트 자체에는 요금이 청구되지 않지만 엔드포인트에 대한 API 호출에는 일반적인 가격 책정 세부정보가 적용됩니다.

엔드포인트가 생성되었는지 확인하려면 서비스 디렉터리에서 서비스를 확인합니다. 지정된 포트 번호가 있는 전달 규칙의 이름과 동일한 이름의 엔드포인트가 표시됩니다.

서비스 디렉터리에서 서비스를 확인하려면 gcloud service-directory services resolve 명령어를 실행합니다.

gcloud service-directory services resolve SD_SERVICE_NAME \
    --namespace=SD_NAMESPACE_NAME \
    --location=REGION

다음을 바꿉니다.

  • SD_SERVICE_NAME: 확인할 서비스 디렉터리 서비스의 이름입니다. 서비스 디렉터리 네임스페이스 이름에 있어야 합니다.
  • SD_NAMESPACE_NAME: 서비스가 포함된 네임스페이스에 지정한 이름입니다.
  • REGION: 네임스페이스가 포함된 Google Cloud 리전입니다. 전달 규칙을 만든 리전과 동일해야 합니다.

삭제

만든 리소스를 삭제하려면 다음 단계를 따르세요.

  1. 전달 규칙을 삭제하려면 gcloud compute forwarding-rules delete 명령어를 실행합니다.

    gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
      --region=REGION
    

    다음을 바꿉니다.

    • FORWARDING_RULE_NAME: 만든 전달 규칙의 이름
    • REGION: 전달 규칙의 리전

    자세한 내용은 전달 규칙 삭제를 참조하세요.

    전달 규칙을 삭제하면 서비스 디렉터리에서 엔드포인트가 자동으로 삭제되는지 확인하려면 서비스 디렉터리 서비스의 엔드포인트 확인 섹션에 설명된 gcloud service-directory services resolve 명령어를 실행합니다.

  2. 서비스 디렉터리 네임스페이스 및 서비스를 삭제하려면 삭제 리소스를 참조하세요.

다음 단계

  • 서비스 디렉터리 개요를 보려면 서비스 디렉터리 개요를 참조하세요.
  • 서비스 디렉터리를 사용할 때 발생할 수 있는 일반적인 문제에 대한 해결책을 찾으려면 문제 해결을 참조하세요.