이 페이지에서는 외부 패스 스루 네트워크 부하 분산기가 서비스 디렉터리에 자동으로 등록되도록 구성하는 방법을 설명합니다.
부하 분산기를 만들 때 원하는 기존 서비스 디렉터리 네임스페이스 및 서비스에 엔드포인트로 등록할 수 있습니다. 그러면 클라이언트 애플리케이션은 HTTP 또는 gRPC를 사용하는 서비스 디렉터리를 사용하여 외부 패스 스루 네트워크 부하 분산기 서비스의 주소를 확인하고 여기에 직접 연결할 수 있습니다.
제한사항
외부 패스 스루 네트워크 부하 분산기와의 서비스 디렉터리 통합에는 다음과 같은 제한사항이 있습니다.
- 자동 등록은 외부 레이어 4 부하 분산기만 지원합니다. GKE 통합을 사용하여 Google Kubernetes Engine 부하 분산 서비스를 등록할 수 있습니다. 서비스 디렉터리 API를 호출하여 다른 외부 부하 분산기, 전역 부하 분산기, Google Kubernetes Engine 인그레스 및 게이트를 등록할 수 있습니다.
- 자동 등록은 전달 규칙을 만들 때만 사용할 수 있습니다. 이미 존재하는 전달 규칙에 Google Cloud CLI 업데이트를 사용한 자동 등록은 사용할 수 없습니다.
- 서비스 디렉터리는 연결을 제공하지 않습니다. 즉, 서비스 디렉터리에 외부 패스 스루 네트워크 부하 분산기의 가상 IP 주소가 저장되어 있더라도 서비스 디렉터리에서 외부 패스 스루 네트워크 부하 분산기를 조회한다고 해서 가상 IP 주소에 연결할 수 있는 것은 아닙니다.
시작하기 전에
이 안내를 따르려면 다음이 필요합니다.
이미 서비스 디렉터리 네임스페이스와 서비스가 있어야 합니다. 네임스페이스가 없는 경우 서비스 디렉터리 구성의 절차에 따라 네임스페이스와 서비스를 만듭니다.
서비스 디렉터리 네임스페이스와 서비스는 만들려는 외부 패스 스루 네트워크 부하 분산기 전달 규칙과 동일한 프로젝트 및 리전에 있어야 합니다.
외부 패스 스루 네트워크 부하 분산기 전달 규칙을 만들기 위해 필요한 리소스를 이미 설정했어야 합니다.
외부 패스 스루 네트워크 부하 분산기를 만드는 방법에 대한 자세한 내용은 외부 패스 스루 네트워크 부하 분산기 설정을 참고하세요.
서비스 디렉터리에 외부 패스 스루 네트워크 부하 분산기를 등록하도록 전달 규칙 설정
서비스 디렉터리에 외부 패스 스루 네트워크 부하 분산기를 등록하려면 전달 규칙을 설정해야 합니다. 외부 패스 스루 네트워크 부하 분산기를 등록하려면 다음 섹션을 참고하세요.
외부 패스 스루 네트워크 부하 분산기 등록
외부 패스 스루 네트워크 부하 분산기를 등록하려면 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>
)가 있는 전달 규칙의 이름과 동일합니다. 예를 들어--port=8080
로 전달 규칙RULE
를 만들면RULE-8080
라는 엔드포인트가 생성됩니다. 동일한 규칙에서 포트--port=8080, 8081
를 두 개 지정하면 엔드포인트RULE-8080
및RULE-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 리전입니다. 전달 규칙을 만든 리전과 동일해야 합니다.
삭제
생성한 리소스를 삭제하려면 다음 단계를 따르세요.
전달 규칙을 삭제하려면
gcloud compute forwarding-rules delete
명령어를 실행합니다.gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --region=REGION
다음을 바꿉니다.
FORWARDING_RULE_NAME
: 내가 만든 전달 규칙의 이름REGION
: 전달 규칙의 리전입니다.
자세한 내용은 전달 규칙 삭제를 참고하세요.
전달 규칙을 삭제하면 서비스 디렉터리에서 엔드포인트가 자동으로 삭제되었는지 확인하려면 서비스 디렉터리 서비스의 엔드포인트 확인 섹션에 설명된
gcloud service-directory services resolve
명령어를 실행합니다.서비스 디렉터리 네임스페이스와 서비스를 삭제하려면 리소스 삭제를 참고하세요.
다음 단계
- 서비스 디렉터리에 대한 개요는 서비스 디렉터리 개요를 참고하세요.
- 서비스 디렉터리를 사용할 때 발생할 수 있는 일반적인 문제에 대한 해결책을 찾으려면 문제 해결을 참고하세요.