인터넷 액세스 및 방화벽 규칙 구성

이 페이지에서는 Dataflow 작업과 연결된 네트워크에 대한 경로를 제공하고 Google Cloud 방화벽 규칙을 정의하는 방법을 설명합니다.

Dataflow 인터넷 액세스

Dataflow 작업자 가상 머신(VM)은 Google Cloud APIs 및 서비스에 도달할 수 있어야 합니다. 작업자 VM이 인터넷 액세스 요건을 충족하도록 외부 IP 주소를 사용하여 구성하거나 비공개 Google 액세스를 사용하여 구성할 수 있습니다.

비공개 Google 액세스를 사용하면 내부 IP 주소만 있는 VM은 Google Cloud 및 서비스의 일부 공개 IP에 액세스할 수 있습니다. 라우팅 및 방화벽 규칙 요건구성 단계에 대한 자세한 내용은 비공개 Google 액세스 구성을 참조하세요.

Google Cloud 외부의 API 및 서비스에 액세스하는 작업에는 인터넷 액세스가 필요합니다. 예를 들어 Python SDK 작업은 Python Package Index(PyPI)에 대한 액세스 권한이 필요합니다. 이 경우 외부 IP 주소를 이용해 작업자 VM을 구성하거나 Cloud NAT 같은 네트워크 주소 변환 솔루션을 사용해야 합니다. 자세한 내용은 Apache Beam 웹사이트에서 Python 파이프라인 종속 항목 관리를 참조하세요.

DNS(Domain Name System) 제한

Dataflow를 사용할 때는 커스텀 BIND가 지원되지 않습니다. VPC 서비스 제어에 Dataflow를 사용할 때 DNS 확인을 맞춤설정하려면 커스텀 BIND 서버를 사용하는 대신 Cloud DNS 비공개 영역을 사용합니다. 고유한 온프레미스 DNS 확인을 사용하려면 Google Cloud DNS 전달 방법을 사용하는 것이 좋습니다.

방화벽 규칙

방화벽 규칙을 사용하면 VM 간의 트래픽을 허용 또는 거부할 수 있습니다. 이 페이지에서는 방화벽 규칙 개요 페이지와 방화벽 규칙 사용 페이지의 설명대로 암시적 방화벽 규칙을 비롯한 Google Cloud 방화벽 규칙이 작동하는 방식을 잘 알고 있다고 가정합니다.

Dataflow에 필요한 방화벽 규칙

Dataflow를 사용하려면 작업자 VM이 파이프라인 옵션을 지정하는 VPC 네트워크 내에서 특정 TCP 포트를 사용하여 서로 통신해야 합니다. 이러한 유형의 통신을 허용하려면 VPC 네트워크에서 방화벽 규칙을 구성해야 합니다.

자동으로 생성된 default 네트워크 같은 일부 VPC 네트워크에는 Dataflow의 방화벽 요건을 충족하는 default-allow-internal 규칙이 포함되어 있습니다.

모든 작업자 VM에는 값이 dataflow인 네트워크 태그가 있으므로, Dataflow에 대해 보다 구체적인 방화벽 규칙을 만들 수 있습니다. 프로젝트 소유자, 편집자 또는 보안 관리자는 다음 gcloud 명령어를 사용하여, 네트워크 태그 dataflow가 있는 VM에서 동일한 태그가 있는 VM으로 유입되는 트래픽을 TCP 포트 12345 및 12346에서 허가하는 인그레스 허용 규칙을 만들 수 있습니다.

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --network NETWORK \
    --action allow \
    --direction DIRECTION \
    --target-tags dataflow \
    --source-tags dataflow \
    --priority 0 \
    --rules tcp:12345-12346

앞의 예시에서 다음 변수를 바꿉니다.

  • FIREWALL_RULE_NAME을 방화벽 규칙 이름으로 바꿉니다.
  • NETWORK를 작업자 VM에 사용되는 네트워크 이름으로 바꿉니다.
  • DIRECTION을 방화벽 규칙의 방향으로 바꿉니다.

방화벽 규칙에 대한 자세한 지침은 방화벽 규칙 사용을 참조하세요. Dataflow에서 사용하는 특정 TCP 포트의 경우 프로젝트 컨테이너 매니페스트를 볼 수 있습니다. 컨테이너 매니페스트는 호스트 포트를 컨테이너에 매핑하기 위해 포트를 명시적으로 지정합니다. 작업자 중 한 명의 SSH 세션을 열고 iproute2를 실행해 네트워크 구성을 보는 방법도 있습니다. 자세한 내용은 iproute2 페이지를 참조하세요.

네트워크 태그 지정

네트워크 태그는 Compute Engine 가상 머신(VM) 인스턴스에 연결할 수 있는 텍스트 속성입니다. 태그를 사용하여 특정 VM 인스턴스에 방화벽 규칙과 경로를 적용할 수 있습니다. Dataflow는 특정 Dataflow 작업을 실행하는 모든 작업자 VM에 네트워크 태그를 추가할 수 있도록 지원합니다.

네트워크 태그 사용 설정

작업 생성 단계에서만 태그를 설정할 수 있습니다. Dataflow 작업을 만든 후에는 실행 중인 배치 또는 스트리밍 파이프라인의 태그를 업데이트할 수 없습니다.

자바

다음 매개변수를 지정합니다.

--experiments=use_network_tags=TAG-NAME

TAG-NAME을 태그의 이름으로 바꿉니다. 태그를 두 개 이상 추가하는 경우 다음 형식에 나타난 대로 각 태그를 ';' 기호로 구분합니다. TAG-NAME-1;TAG-NAME-2;TAG-NAME-3;...

PYTHON

다음 매개변수를 지정합니다.

--experiments=use_network_tags=TAG-NAME

TAG-NAME을 태그의 이름으로 바꿉니다. 태그를 두 개 이상 추가하는 경우 다음 형식에 나타난 대로 각 태그를 ';' 기호로 구분합니다. TAG-NAME-1;TAG-NAME-2;TAG-NAME-3;...

이 매개변수를 사용하지 않더라도 Dataflow는 항상 생성된 모든 작업자 VM에 네트워크 태그 dataflow를 추가합니다.

한도

네트워크 태그에는 다음과 같은 한도가 적용됩니다.

한도 설명
VM당 최대 태그 수 64 VM의 모든 태그는 고유해야 합니다. Dataflow는 항상 dataflow 태그를 추가하므로 VM당 최대 63개의 추가 태그를 할당할 수 있습니다.
각 태그의 최대 문자 수 63
태그에 허용되는 문자 소문자, 숫자, 대시 추가 사항:
• 태그는 소문자로 시작해야 합니다.
태그는 숫자 또는 소문자로 끝나야 합니다.

작업자 VM에 대한 SSH 액세스

Dataflow는 SSH가 필요하지 않지만 문제 해결에는 SSH가 사용됩니다.

작업자 VM에 외부 IP 주소가 있는 경우 Cloud Console이나 gcloud 명령줄 도구를 사용하여 VM에 연결할 수 있습니다. SSH를 사용하여 연결하려면 최소한 gcloud를 실행하는 시스템이나 Cloud Console을 이용해 웹브라우저를 실행하는 시스템의 IP 주소에서 TCP 포트 22로 들어오는 연결을 방화벽이 허용해야 합니다.

내부 IP 주소만 있는 작업자 VM에 연결해야 하는 경우에는 외부 IP 주소가 없는 인스턴스에 연결을 참조하세요.