이 페이지에서는 네트워크 내에서 비공개 네트워크 액세스를 설정하고 트래픽을 라우팅하는 방법을 설명합니다. Google Cloud
비공개 네트워크 액세스를 설정하려면 다음 세 가지 프로젝트를 구성합니다.
- 대상 가상 머신 인스턴스 (VM) 또는 대상 내부 부하 분산기에서 사용할 Virtual Private Cloud (VPC) 네트워크가 포함된 프로젝트
- 서비스 디렉터리 서비스 프로젝트 역할을 하는 프로젝트
- 비공개 네트워크 액세스를 호출하는 구성이 있는 Google Cloud 제품의 프로젝트 비공개 네트워크 액세스를 사용하여 엔드포인트를 호출할 수 있는 Google Cloud 제품의 예시는 Dialogflow CX입니다.
프로젝트의 아티팩트는 동일한 프로젝트 또는 다른 프로젝트에 있을 수 있습니다.
시작하기 전에
비공개 네트워크 액세스를 구성하기 전에 다음 단계를 완료하세요.
각 프로젝트의 Google Cloud 콘솔에 있는 API 및 서비스 페이지에서 API 및 서비스 사용 설정을 클릭하여 서비스 디렉터리 API를 비롯해 사용하려는 API를 사용 설정합니다.
VPC 네트워크를 온프레미스 호스트에 연결하려면 Cloud VPN 터널 또는 Cloud Interconnect 연결을 만듭니다.
프로젝트가 네트워크 프로젝트와 서비스 디렉터리 프로젝트 모두의 VPC 서비스 제어 경계 내에 있는지 확인합니다. Google Cloud
servicedirectory.googleapis.comVPC 서비스 제어 자세히 알아보기
VPC 네트워크의 프로젝트 구성
VPC 네트워크의 프로젝트를 구성하려면 다음 단계를 따르세요.
VPC 네트워크를 만들거나 사용하려는 리전에 IPv4 전용 또는 듀얼 스택 서브넷이 있는 기존 VPC 네트워크를 선택합니다. 이전 네트워크는 지원되지 않습니다.
필요한 인그레스 허용 방화벽 규칙을 만듭니다.
대상 VM 또는 내부 패스 스루 네트워크 부하 분산기인 경우 방화벽 규칙은
35.199.192.0/19범위에서 대상 VM 인스턴스에서 실행되는 소프트웨어에서 사용하는 포트로의 TCP 트래픽을 허용해야 합니다.대상 내부 애플리케이션 부하 분산기 또는 내부 프록시 네트워크 부하 분산기인 경우 방화벽 규칙은
35.199.192.0/19범위에서 부하 분산기에서 사용하는 IP 주소 및 포트로의 TCP 트래픽을 허용해야 합니다.
35.199.192.0/19범위에 대한 자세한 내용은 Cloud DNS 및 서비스 디렉터리의 경로를 참조하세요.엔드포인트를 호출할 Google Cloud 제품의 서비스 에이전트에 Identity and Access Management (IAM) Private Service Connect 승인된 서비스 역할 (
roles/servicedirectory.pscAuthorizedService)을 부여합니다.역할 및 권한에 대한 자세한 내용은 서비스 디렉터리 권한 및 역할을 참조하세요.
서비스 디렉터리 프로젝트 구성
서비스 디렉터리 프로젝트를 구성하려면 다음 단계를 따르세요.
엔드포인트를 호출할 Google Cloud 제품의 서비스 에이전트에 IAM 서비스 디렉터리 뷰어 역할 (
roles/servicedirectory.viewer)을 부여합니다.서비스 디렉터리 네임스페이스 및 서비스를 만듭니다. 그런 다음 다음 섹션의 단계에 따라 이 서비스의 엔드포인트를 만듭니다.
비공개 네트워크 액세스로 엔드포인트 만들기
비공개 네트워크 액세스가 구성된 엔드포인트를 만들려면 다음 단계를 따르세요.
콘솔
- 콘솔에서 **서비스 디렉터리 네임스페이스** 페이지로 이동합니다. Google Cloud 서비스 디렉터리 네임스페이스로 이동
- 네임스페이스를 클릭합니다.
- 서비스를 클릭합니다.
- 엔드포인트 추가 를 클릭합니다.
- 연결 이름에 엔드포인트 이름을 입력합니다.
- IP 주소에 IPv4 주소(예:
192.0.2.0)를 입력합니다. - 포트에 포트 번호(예:
443또는80)를 입력합니다. - 비공개 네트워크 액세스를 사용 설정하려면 **연결된 VPC 네트워크**에서 필요한
옵션을 선택합니다.
- 사용 가능한 네트워크 목록에서 선택하려면 목록에서 선택 을 클릭한 후 네트워크를 선택합니다.
- 프로젝트 및 네트워크를 지정하려면 프로젝트 및 네트워크 이름으로 지정을 클릭한 후 프로젝트 번호와 네트워크 이름을 입력합니다.
- 만들기 를 클릭합니다.
gcloud
지정된 프로젝트 ID 및 네트워크 경로와 함께 gcloud service-directory endpoints create
command를 사용합니다.
gcloud service-directory endpoints create ENDPOINT_NAME \ --project=PROJECT_ID \ --location=REGION \ --namespace=NAMESPACE_NAME \ --service=SERVICE_ID \ --address=IP_ADDRESS \ --port=PORT_NUMBER \ --network=NETWORK_PATH
다음을 바꿉니다.
ENDPOINT_NAME: 서비스에서 만들려는 엔드포인트의 이름(예:my-endpoint)PROJECT_ID: 프로젝트 IDREGION: 네임스페이스가 포함된 리전 Google CloudNAMESPACE_NAME: 네임스페이스에 지정한 이름(예:my-namespace)SERVICE_ID: 서비스 IDIP_ADDRESS: 엔드포인트의 IP 주소(예:192.0.2.0)PORT_NUMBER: 엔드포인트가 실행 중인 포트(일반적으로443또는80)NETWORK_PATH: 네트워크의 URL(예:projects/PROJECT_NUMBER/locations/global/networks/NETWORK_NAME)
제품 프로젝트 구성 Google Cloud
제품 프로젝트를 구성하려면 다음 단계를 따르세요. Google Cloud
제품 API를 사용 설정합니다. Google Cloud
만든 서비스 디렉터리 서비스를 호출하도록 Google Cloud 제품을 구성합니다. 필요한 단계는 특정 Google Cloud 제품에 따라 다릅니다.
사용 사례
이 섹션에서는 비공개 네트워크 액세스를 구성하는 사용 사례 예시를 제공합니다.
VPC 네트워크, VM, 서비스 디렉터리가 동일한 프로젝트에 있는 경우 HTTP 엔드포인트 호출
이 사용 사례에서는 자연어 처리를 위한 Google Cloud 제품 인 Dialogflow CX를 설정하여 VM에서 HTTP 엔드포인트를 호출합니다. 엔드포인트를 호출하는 동안 트래픽이 공개 인터넷을 통해 전환되지 않도록 합니다.
이 사용 사례에서는 동일한 프로젝트에서 다음 아티팩트를 만듭니다.
- VPC 네트워크
- VM
- 서비스 디렉터리 서비스
- Dialogflow CX
그림 1은 프로젝트의 Google 서비스 구성이 VM으로 이그레스되도록 허용하는 방법을 보여줍니다. VM은 프로젝트의 VPC 네트워크에 있습니다.
네트워크 및 대상 네트워크 설정
- 프로젝트를 만듭니다. 예를 들어
myproject와 같이 . VPC 네트워크를 만듭니다(예:
vpc-1).VPC 네트워크를 만드는 동안 서브넷 생성 모드에서 자동을 선택합니다.
방화벽 규칙을 만듭니다.
firewall-1과 같은방화벽 규칙을 만드는 동안 다음 값을 입력하거나 선택합니다.
- 네트워크에서
vpc-1을 선택합니다. - 소스 IPv4 범위에
35.199.192.0/19를 입력합니다. - 프로토콜 및 포트에서 TCP를 선택하고
443또는80을 입력합니다.
- 네트워크에서
us-central1리전에서 VM을(를) 만듭니다(예:vm-1).VM을 만드는 동안 다음 값을 입력하거나 선택합니다.
- 네트워킹 > 네트워크 인터페이스에서
vpc-1을 선택합니다. - 방화벽에서 HTTP 트래픽 허용을 선택합니다.
HTTPS를 사용하려면 HTTPS 트래픽 허용 을 선택합니다. 공개 키 인프라 (PKI) 전송 계층 보안 (TLS) 인증서도 설치해야 합니다.
- 네트워킹 > 네트워크 인터페이스에서
us-central1리전에서namespace-1과 같은 네임스페이스를 만듭니다.네임스페이스에서 서비스 디렉터리 서비스(예:
sd-1)를 등록합니다.sd-1에서 엔드포인트를 만듭니다. 엔드포인트 주소에는 포트443에서vm-1의 내부 IP 주소를 사용합니다. 자세한 내용은 비공개 네트워크 액세스로 엔드포인트 만들기를 참조하세요.엔드포인트를 호출할 Google Cloud 제품의 서비스 에이전트에 다음 IAM 역할을 부여합니다.
- 서비스 디렉터리 뷰어 역할 (
roles/servicedirectory.viewer) - Private Service Connect 승인된 서비스 역할(
roles/servicedirectory.pscAuthorizedService)
- 서비스 디렉터리 뷰어 역할 (
선택사항: VM을 더 추가하려면
vm-2와 같은 다른 VM을 설정하고endpoint-2와 같은 엔드포인트를 추가하면 됩니다.
제품 설정 Google Cloud
- ' Google Cloud Cloud Scheduler, 매분 전화해'와 같은 제품 구성을 구성합니다.
- HTTP 요청을 설정합니다.
- 요청이
sd-1을 통해 비공개 네트워킹을 통해 전달되도록 지정합니다. - 선택사항: Certificate Authority Service 설정을 구성합니다.
이제 Google Cloud 제품이 sd-1을 사용하여 HTTP 요청을 호출할 수 있습니다.
공유 VPC 네트워크, VM, 서비스 디렉터리가 서로 다른 프로젝트에 있는 경우 HTTP 엔드포인트 호출
이 사용 사례에서는 자연어 처리를 위한 서비스인 Dialogflow CX를 설정하여 VM에서 HTTP 엔드포인트를 호출합니다. Google Cloud 엔드포인트를 호출하는 동안 트래픽이 공개 인터넷을 통해 전환되지 않도록 합니다.
이 사용 사례에서는 서로 다른 프로젝트에서 다음 아티팩트를 만듭니다.
- 공유 VPC 네트워크
- VM
- 서비스 디렉터리 서비스
- Dialogflow CX
프로젝트를 만들기 전에 다음 사항에 유의하세요.
- API 호출이 VPC 서비스 제어 경계를 준수하는지 확인합니다.
- 서비스 프로젝트의 구성이 VPC 네트워크 프로젝트에 있는 VM으로 이그레스되도록 허용하는지 확인합니다. Google Cloud
- 생산자 프로젝트는 Google Cloud 서비스 프로젝트와 동일하지 않을 수 있습니다.
- 두 프로젝트의 VPC 서비스 제어 경계가 모두 사용되는지 확인합니다.
- 서비스 디렉터리 프로젝트와 네트워크 프로젝트는 연결할 필요가 없지만 둘 다 동일한 VPC 서비스 제어에 속해야 합니다.
- 네트워크 및 서비스에서 방화벽과 IAM은 기본적으로 사용 중지되어 있습니다.
그림 2는 VPC 서비스 제어 경계가 적용된 비공개 네트워크 액세스를 사용하여 트래픽을 전송하는 방법을 보여줍니다.
네트워크 프로젝트 구성
- 프로젝트를 만듭니다. 예:
my-vpc-project. VPC 네트워크를 만듭니다(예:
vpc-1).VPC 네트워크를 만드는 동안 서브넷 생성 모드에서 자동을 선택합니다.
방화벽 규칙을 만듭니다.
firewall-1과 같은규칙을 만드는 동안 다음 값을 입력하거나 선택합니다.
- 네트워크에서
vpc-1을 선택합니다. - 소스 IPv4 범위에
35.199.192.0/19를 입력합니다. - 프로토콜 및 포트에서 TCP를 선택하고
443또는80을 입력합니다.
- 네트워크에서
us-central1리전에서 VM을(를) 만듭니다(예:vm-1).VM을 만드는 동안 다음 값을 입력하거나 선택합니다.
- 네트워킹 > 네트워크 인터페이스에서
vpc-1을 선택합니다. - 방화벽에서 HTTP 트래픽 허용을 선택합니다.
HTTPS를 사용하려면 HTTPS 트래픽 허용 을 선택합니다. 공개 키 인프라 (PKI) 전송 계층 보안 (TLS) 인증서도 설치해야 합니다.
- 네트워킹 > 네트워크 인터페이스에서
VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어 경계를 통해 서비스 디렉터리가 Google Cloud 서비스 프로젝트와 서비스 디렉터리 프로젝트 모두에 연결할 수 있습니다.
서비스 디렉터리 프로젝트 구성
프로젝트를 만듭니다. 예를 들면
my-sd-project입니다.VPC 네트워크 프로젝트와 서비스 디렉터리 프로젝트가 서로 다른 프로젝트이므로 추가 IAM 권한이 필요합니다.
네트워크 프로젝트에서 서비스 디렉터리 엔드포인트를 만드는 IAM 주 구성원에 서비스 디렉터리 네트워크 연결자 역할(
roles/servicedirectory.networkAttacher)을 부여합니다.VPC 네트워크의 VM을 가리키는 서비스 디렉터리 엔드포인트를 만듭니다.
us-central1리전에서namespace-1과 같은 네임스페이스를 만듭니다.- 네임스페이스에서 서비스 디렉터리 서비스(예:
sd-1)를 등록합니다. sd-1에서 엔드포인트를 만듭니다. 엔드포인트 주소에는 포트443에서vm-1의 내부 IP 주소를 사용합니다. 자세한 내용은 비공개 네트워크 액세스로 엔드포인트 만들기를 참조하세요.
엔드포인트를 호출할 Google Cloud 제품의 서비스 에이전트에 다음 IAM 역할을 부여합니다.
- 서비스 디렉터리 프로젝트의 서비스 디렉터리 뷰어 역할 (
roles/servicedirectory.viewer) - 네트워크 프로젝트의 Private Service Connect 승인된 서비스 역할(
roles/servicedirectory.pscAuthorizedService)
- 서비스 디렉터리 프로젝트의 서비스 디렉터리 뷰어 역할 (
VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어 경계를 통해 서비스 디렉터리가 Google Cloud 서비스 프로젝트와 서비스 디렉터리 프로젝트 모두에 연결할 수 있습니다.
서비스 프로젝트 구성 Google Cloud
- 사용 중인 Google Cloud 서비스의 API를 사용 설정합니다.
- 서비스 Google Cloud 서비스
PUSH를 구성하려면 서비스 디렉터리 프로젝트의 서비스 디렉터리 서비스를 사용합니다.
VPC 서비스 제어를 사용하는 경우 VPC 서비스 제어 경계를 통해 서비스 디렉터리가 네트워크 프로젝트와 서비스 디렉터리 프로젝트 모두에 연결할 수 있습니다.
Dialogflow에서 서비스 디렉터리 비공개 네트워크 액세스 사용
Dialogflow에서 서비스 디렉터리 비공개 네트워크 액세스 를 사용하는 방법에 대한 안내는 비공개 네트워크 액세스에 서비스 디렉터리 사용 을 참조하세요.
다음 단계
- 서비스 디렉터리 개요를 보려면 서비스 디렉터리 개요를 참조하세요.
- Private Service Connect에 대해 자세히 알아보려면 Private Service Connect를 참조하세요.
- 서비스 디렉터리를 사용할 때 발생할 수 있는 일반적인 문제에 대한 해결책을 찾으려면 문제 해결을 참조하세요.