네트워크 및 서브네트워크 지정

이 페이지에서는 Cloud Dataflow 작업을 실행할 때 네트워크 및 하위 네트워크를 지정하는 방법을 설명합니다.

VPC 및 공유 VPC

간혹 네트워크라고도 하는 VPC 네트워크프로젝트의 리소스에 연결을 제공합니다. VPC 네트워크에 대한 자세한 내용은 VPC 네트워크 개요를 참조하세요.

공유 VPC 네트워크는 조직 내 별도의 프로젝트(호스트 프로젝트라 함)에 있는 네트워크입니다. 공유 VPC 관리자가 사용자를 서비스 프로젝트 관리자로 정의한 경우 사용자에게는 최소한 호스트 프로젝트의 네트워크에 있는 일부 서브네트워크를 사용할 수 있는 권한이 있습니다. 공유 VPC에 대한 배경 정보는 공유 VPC 개요를 참조하세요.

VPC 서비스 제어

Cloud Dataflow VPC 서비스 제어는 파이프라인의 리소스와 서비스에 추가적인 보안을 제공합니다. VPC 서비스 제어에 대한 자세한 내용은 VPC 서비스 제어 개요를 참조하세요.

VPC 서비스 제어와 함께 Cloud Dataflow를 사용할 때의 제한사항을 알아보려면 지원되는 제품 및 제한사항을 참조하세요.

네트워크 및 서브네트워크 지정

Cloud Dataflow 작업을 만드는 경우 네트워크 또는 하위 네트워크 중 하나를 지정할 수 있습니다. 다음 섹션에서는 각 매개변수를 사용해야 하는 경우를 설명합니다.

서브네트워크와 네트워크 매개변수를 모두 생략하면 GCP는 개발자가 default라는 자동 모드 VPC 네트워크를 사용한다고 가정합니다. 하위 네트워크 및 네트워크 매개변수를 모두 생략하고 프로젝트에 default라는 이름의 네트워크가 없는 경우 오류가 발생합니다.

참고: 어떤 매개변수를 사용해야 할지 모르겠다면 하위 네트워크 매개변수만 지정하세요. 네트워크 매개변수가 암묵적으로 지정됩니다.

네트워크 매개변수

네트워크 매개변수를 사용하여 프로젝트에서 자동 모드 네트워크를 지정할 수 있습니다.

다음 두 조건에 모두 해당하는 경우에 한해 네트워크 매개변수를 사용하여 공유 VPC 네트워크를 선택할 수도 있습니다.

  • 선택한 VPC 공유 네트워크가 자동 모드 네트워크입니다.
  • 전체 공유 VPC 호스트 프로젝트에 대한 프로젝트 수준 권한을 가진 서비스 프로젝트 관리자입니다. 즉 공유 VPC 관리자가 전체 호스트 프로젝트에 대한 네트워크 사용자 역할을 부여했으며 모든 네트워크 및 하위 네트워크를 사용할 수 있습니다.

다른 모든 경우에는 하위 네트워크를 지정해야 합니다.

하위 네트워크 매개변수

네트워크의 특정 하위 네트워크를 선택해야 하는 경우에는 subnetwork 매개변수를 지정합니다. Cloud Dataflow 작업을 실행할 영역과 동일한 지역의 하위 네트워크를 선택해야 합니다. 예를 들어, 다음과 같은 상황에서 하위 네트워크 매개변수를 지정해야 합니다.

  • 필요한 하위 네트워크가 커스텀 모드 네트워크에 있습니다.
  • 공유 VPC 호스트 프로젝트의 특정 하위 네트워크에 대한 서브넷 수준 권한을 가진 서비스 프로젝트 관리자입니다.

전체 URL 또는 약식 경로를 사용하여 하위 네트워크를 지정할 수 있습니다. 하위 네트워크가 공유 VPC 네트워크에 있는 경우 전체 URL을 사용해야 합니다.

  • 전체 URL:
    https://www.googleapis.com/compute/v1/projects/<HOST_PROJECT>/regions/<REGION>/subnetworks/<SUBNETWORK>
  • 약식:
    regions/<REGION>/subnetworks/<SUBNETWORK>

subnetwork를 지정하면 Cloud Dataflow가 자동으로 network를 선택합니다. 따라서 subnetwork를 지정할 때 network 매개변수를 생략할 수 있습니다.

공개 IP 매개변수

공개 IP 매개변수는 Cloud Dataflow 작업자에 공개 IP 주소를 할당할지 여부를 Cloud Dataflow 서비스에게 알려줍니다. 기본적으로 Cloud Dataflow 서비스는 작업자에게 공개 IP 주소와 비공개 IP 주소 모두를 할당합니다. 공개 IP 주소를 사용 중지하면 Cloud Dataflow 파이프라인은 다음 위치에 있는 리소스에만 액세스할 수 있습니다.

  • 동일한 VPC 네트워크의 다른 인스턴스
  • 공유 VPC 네트워크
  • VPC 네트워크 피어링을 사용 설정한 네트워크

공개 IP를 사용 중지해도 관리 및 모니터링 작업을 계속 수행할 수 있습니다. 위에 나열된 옵션을 통해 SSH를 사용하여 작업자에 액세스할 수 있습니다. 그러나 파이프라인은 인터넷 및 기타 GCP 네트워크에 액세스할 수 없으며 인터넷 호스트는 Cloud Dataflow 작업자에 액세스할 수 없습니다.

공개 IP를 사용 중지하면 데이터 처리 인프라의 보안을 강화할 수 있습니다. 또한 Cloud Dataflow 작업자에서 공개 IP 주소를 사용하지 않는 경우 GCP 프로젝트 할당량에 대해 사용하는 공개 IP 주소의 수를 줄일 수 있습니다.

자바

공개 IP를 사용 중지하려면 다음 단계를 따르세요.

  1. 네트워크 또는 하위 네트워크에서 비공개 Google 액세스를 사용 설정합니다.
  2. Cloud Dataflow 작업의 매개변수에서 --usePublicIps=false--network=[NETWORK] 또는 --subnetwork=[SUBNETWORK]를 지정합니다.

Python

공개 IP 매개변수를 사용하려면 Python용 Beam SDK가 필요합니다. Python용 Cloud Dataflow SDK는 이 매개변수를 지원하지 않습니다. 공개 IP를 사용 중지하려면 다음 단계를 따르세요.

  1. Apache Beam 파이프라인 종속 항목 안내를 따라 모든 Python 패키지 종속 항목을 스테이징합니다.
  2. 네트워크 또는 하위 네트워크에서 비공개 Google 액세스를 사용 설정합니다.
  3. Cloud Dataflow 작업의 매개변수에서 --no_use_public_ips--network=[NETWORK] 또는 --subnetwork=[SUBNETWORK]를 지정합니다.

지정된 네트워크 및 하위 네트워크로 파이프라인 실행

다음 예는 지정된 networksubnetwork 매개변수를 사용하여 Cloud Dataflow 서비스에서 파이프라인을 실행하는 방법을 보여줍니다.

공유 VPC 네트워크에서 특정 서브네트워크를 사용할 수 있는 권한만 있는 서비스 프로젝트 관리자인 경우 사용 권한이 있는 서브네트워크의 subnetwork 매개변수를 지정해야 합니다.

명령줄 사용

다음 예에서는 하위 네트워크를 지정하여 명령줄에서 파이프라인을 실행하는 방법을 보여줍니다. 하위 네트워크를 지정하면 암묵적으로 네트워크가 지정됩니다.

자바

mvn compile exec:java \
  -Dexec.mainClass=com.example.WordCount \
  -Dexec.args="--project=my-cloud-project \
    --stagingLocation=gs://my-wordcount-storage-bucket/staging/ \
    --output=gs://my-wordcount-storage-bucket/output \
    --runner=DataflowRunner \
    --subnetwork=https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork"

Python

python -m apache_beam.examples.wordcount \
  --project my-cloud-project \
  --runner DataflowRunner \
  --staging_location gs://my-wordcount-storage-bucket/staging \
  --temp_location gs://my-wordcount-storage-bucket/temp \
  --output gs://my-wordcount-storage-bucket/output \
  --subnetwork https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork"

REST API 사용

다음 예에서는 템플릿을 실행하고 하위 네트워크를 지정하는 방법을 보여줍니다. 하위 네트워크를 지정하면 암묵적으로 네트워크가 지정됩니다.

REST API를 사용하여 Cloud Dataflow 템플릿을 실행하는 경우, environment 객체에 network 또는 subnetwork를 추가합니다. 예를 들면 다음과 같습니다.

POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/wordcount/template_file
{
    "jobName": "my_job",
    "parameters": {
       "inputFile" : "gs://dataflow-samples/shakespeare/kinglear.txt",
       "output": "gs://my-wordcount-storage-bucket/output"
    },
    "environment": {
       "tempLocation": "gs://my-wordcount-storage-bucket/temp",
       "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork",
       "zone": "us-central1-f"
    }
}
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.