스트리밍 작업에 Streaming Engine 사용

Dataflow의 Streaming Engine은 파이프라인 실행을 작업자 가상 머신(VM)에서 Dataflow 서비스 백엔드로 이동합니다. 스트리밍 작업에 Streaming Engine을 사용하지 않을 경우 Dataflow 실행기가 작업자 VM에서만 스트리밍 파이프라인 단계를 실행하여, 작업자 CPU, 메모리, Persistent Disk 스토리지를 소비합니다.

Streaming Engine은 다음 파이프라인에 대해 기본적으로 사용 설정됩니다.

  • Apache Beam Python SDK 버전 2.21.0 이상 및 Python 3를 사용하는 스트리밍 파이프라인
  • Apache Beam Go SDK 버전 2.33.0 이상을 사용하는 스트리밍 파이프라인

Streaming Engine의 구현에 대한 자세한 내용은 Streaming Engine: 확장성이 높고 지연 시간이 짧은 데이터 처리를 위한 실행 모델을 참조하세요.

이점

Streaming Engine 모델에는 다음과 같은 이점이 있습니다.

  • 작업자 VM에서 CPU, 메모리, Persistent Disk 스토리지 리소스 사용이 감소합니다. Streaming Engine은 더 작은 작업자 머신 유형(n1-standard-4 대신 n1-standard-2)에서 가장 잘 작동합니다. 작은 작업자 부팅 디스크 이상의 Persistent Disk를 필요로 하지 않으므로 리소스와 할당량을 적게 소모합니다.
  • 수신 데이터 볼륨의 변화에 대응하여 더 반응성 있는 수평 자동 확장 수행. Streaming Engine은 더욱 원활하고 세분화된 작업자 확장을 제공합니다.
  • 지원 용이성 개선. 서비스 업데이트를 적용하기 위해 파이프라인을 다시 배포하지 않아도 됩니다.

대부분의 작업자 리소스 감소는 워크로드를 Dataflow 서비스로 이전하면 발생합니다. 이러한 이유로 Streaming Engine을 사용하면 관련 요금이 청구됩니다.

지원 및 제한 사항

  • Java SDK의 경우 Streaming Engine에는 Apache Beam SDK 버전 2.10.0 이상이 필요합니다.
  • Python SDK의 경우 Streaming Engine에는 Apache Beam SDK 버전 2.16.0 이상이 필요합니다.
  • Go SDK의 경우 Streaming Engine에는 Apache Beam SDK 버전 2.33.0 이상이 필요합니다.
  • 이미 실행 중인 파이프라인은 Streaming Engine을 사용하도록 업데이트할 수 없습니다. 파이프라인이 Streaming Engine 없이 프로덕션에서 실행될 때 Streaming Engine을 사용하려면 Dataflow 드레이닝 옵션을 사용해서 파이프라인을 중지해야 합니다. 그런 다음 Streaming Engine 매개변수를 지정하고 파이프라인을 다시 실행해야 합니다.
  • Streaming Engine을 사용하는 작업의 경우, 열린 기간에 대해 집계된 입력 데이터는 키당 60GB로 제한됩니다. 집계된 입력 데이터에는 버퍼링된 요소커스텀 상태가 포함됩니다. 파이프라인이 이 한도를 초과하면 파이프라인이 높은 시스템 지연으로 인해 중단되지만 외부 로그 파일에 오류가 표시되지 않습니다. 큰 키를 생성하는 파이프라인 설계는 피하는 것이 좋습니다. 자세한 내용은 확장성을 염두에 둔 Dataflow 파이프라인 작성을 참조하세요.
  • 고객 관리 암호화 키(CMEK) 지원

Streaming Engine 사용

이 기능을 Dataflow가 지원되는 모든 리전에서 사용할 수 있습니다. 사용 가능한 위치를 확인하려면 Dataflow 위치를 참조하세요.

Java

Streaming Engine에는 Apache Beam Java SDK 버전 2.10.0 이상이 필요합니다.

스트리밍 파이프라인에 Streaming Engine을 사용하려면 다음 매개변수를 지정합니다.

  • --enableStreamingEngine - 자바용 Apache Beam SDK 버전 2.11.0 이상을 사용하는 경우
  • --experiments=enable_streaming_engine - Java용 Apache Beam SDK 버전 2.10.0을 사용하는 경우

파이프라인에 Dataflow Streaming Engine을 사용하는 경우 --zone 매개변수를 지정하지 않습니다. 대신 --region 매개변수를 지정하고 값을 지원되는 리전으로 설정합니다. Dataflow가 지정한 리전에서 영역을 자동 선택합니다. --zone 매개변수를 지정하고 사용 가능한 리전 외부의 영역으로 설정하면 Dataflow에서 오류가 보고됩니다.

Streaming Engine은 코어 작업자 머신 유형이 작을수록 더 좋습니다. 작업 유형을 사용해서 높은 메모리 작업자 머신 유형을 사용할지 여부를 결정하세요. 권장되는 머신 유형 예시에는 --workerMachineType=n1-standard-2--workerMachineType=n1-highmem-2가 있습니다. 또한 Streaming Engine에 작업자 부팅 이미지와 로컬 로그용 공간만 있으면 되므로 --diskSizeGb=30으로 설정하면 됩니다. 이러한 값이 기본값입니다.

Python

Streaming Engine에는 Apache Beam Python SDK 버전 2.16.0 이상이 필요합니다.

다음 조건이 충족되면 Streaming Engine은 새로운 Dataflow 스트리밍 파이프라인에 기본적으로 사용 설정됩니다.

  • 파이프라인은 Apache Beam Python SDK 버전 2.21.0 이상 및 Python 3를 사용합니다.
  • 고객 관리 암호화 키가 사용되지 않습니다.
  • Dataflow 작업자는 Dataflow 작업과 같은 리전에 있습니다.

Python SDK 버전 2.45.0 이상에서는 스트리밍 파이프라인에 Streaming Engine을 중지할 수 없습니다. Python SDK 버전 2.44.0 이하에서 Streaming Engine을 중지하려면 다음 매개변수를 지정합니다.

--experiments=disable_streaming_engine

Python 2를 사용하는 경우 Streaming Engine을 사용 설정하려면 다음 매개변수를 지정합니다.

--enable_streaming_engine

파이프라인에 Dataflow Streaming Engine을 사용하는 경우 --zone 매개변수를 지정하지 않습니다. 대신 --region 매개변수를 지정하고 값을 지원되는 리전으로 설정합니다. Dataflow가 지정한 리전에서 영역을 자동 선택합니다. --zone 매개변수를 지정하고 사용 가능한 리전 외부의 영역으로 설정하면 Dataflow에서 오류가 보고됩니다.

Streaming Engine은 코어 작업자 머신 유형이 작을수록 더 좋습니다. 작업 유형을 사용해서 높은 메모리 작업자 머신 유형을 사용할지 여부를 결정하세요. 권장되는 머신 유형 예시에는 --workerMachineType=n1-standard-2--workerMachineType=n1-highmem-2가 있습니다. 또한 Streaming Engine에 작업자 부팅 이미지와 로컬 로그용 공간만 있으면 되므로 --disk_size_gb=30으로 설정하면 됩니다. 이러한 값이 기본값입니다.

Go

Streaming Engine에는 Apache Beam Go SDK 버전 2.33.0 이상이 필요합니다.

Streaming Engine은 Apache Beam Go SDK를 사용하는 새 Dataflow 스트리밍 파이프라인에 대해 기본적으로 사용 설정됩니다.

Go 스트리밍 파이프라인에서 Streaming Engine을 사용 중지하려면 다음 매개변수를 지정합니다. 이 매개변수는 Streaming Engine을 사용 중지할 때마다 지정해야 합니다.

--experiments=disable_streaming_engine

파이프라인에 Dataflow Streaming Engine을 사용하는 경우 --zone 매개변수를 지정하지 않습니다. 대신 --region 매개변수를 지정하고 값을 지원되는 리전으로 설정합니다. Dataflow가 지정한 리전에서 영역을 자동 선택합니다. --zone 매개변수를 지정하고 사용 가능한 리전 외부의 영역으로 설정하면 Dataflow에서 오류가 보고됩니다.

Streaming Engine은 코어 작업자 머신 유형이 작을수록 더 좋습니다. 작업 유형을 사용해서 높은 메모리 작업자 머신 유형을 사용할지 여부를 결정하세요. 권장되는 머신 유형 예시에는 --workerMachineType=n1-standard-2--workerMachineType=n1-highmem-2가 있습니다. 또한 Streaming Engine에 작업자 부팅 이미지와 로컬 로그용 공간만 있으면 되므로 --disk_size_gb=30으로 설정하면 됩니다. 이러한 값이 기본값입니다.

gcloud CLI

gcloud dataflow jobs run 명령어 또는 gcloud dataflow flex-template run 명령어를 사용하여 파이프라인을 실행할 때 Streaming Engine을 사용 설정하려면 다음 플래그를 사용합니다.

--enable-streaming-engine

Streaming Engine을 사용 중지하려면 다음 플래그를 사용합니다.

--additional-experiments=disable_streaming_engine

REST

REST API에서 projects.locations.jobs.create 메서드를 사용하여 파이프라인을 실행할 때 Job 리소스를 사용하여 Streaming Engine을 사용 설정하거나 사용 중지할 수 있습니다. Streaming Engine을 사용 설정하려면 environment에서 experiments 필드를 enable_streaming_engine으로 설정합니다.

"environment": {
          "experiments": "enable_streaming_engine"
      }

Streaming Engine을 사용 중지하려면 environment에서 experiments 필드를 disable_streaming_engine으로 설정합니다.

"environment": {
          "experiments": "disable_streaming_engine"
      }

가격 책정

Dataflow Streaming Engine은 작업에서 사용하는 총 리소스에 대해 요금을 청구하는 리소스 기반 결제 모델을 제공합니다. 리소스 기반 결제를 사용하면 작업에서 사용하는 Streaming Engine 리소스는 Streaming Engine 컴퓨팅 단위로 계량되고 측정됩니다. 작업자 CPU, 작업자 메모리, Streaming Engine 컴퓨팅 단위에 대한 요금이 청구됩니다.

리소스 기반 결제 사용

리소스 기반 결제를 사용하려면 작업을 시작하거나 업데이트할 때 다음 Dataflow 서비스 옵션을 포함합니다.

Java

--dataflowServiceOptions=enable_streaming_engine_resource_based_billing

Python

--dataflow_service_options=enable_streaming_engine_resource_based_billing

Go

--dataflow_service_options=enable_streaming_engine_resource_based_billing

데이터 처리 결제(기존)

리소스 기반 결제를 사용 설정하지 않으면 기존 데이터 처리 결제를 사용하여 작업에 비용이 청구됩니다.

결제 모델 확인

Dataflow Prime을 사용하지 않는 한, 리소스 기반 결제를 사용하는 작업이 있으면 청구서에 SKU Streaming Engine Compute Unit이 포함됩니다. 데이터 처리 결제를 사용하는 작업이 있는 경우 청구서에 SKU Streaming Engine data processed가 포함됩니다. 리소스 기반 결제를 사용하는 작업과 데이터 처리 결제를 사용하는 다른 작업이 있다면 청구서에 두 SKU가 모두 포함됩니다.

리소스 기반 결제로 Dataflow Prime을 사용하는 경우 데이터 컴퓨팅 단위(DCU) SKU가 사용됩니다.

작업이 사용하는 가격 책정 모델을 보려면 Dataflow 모니터링 인터페이스에서 작업을 선택합니다. 작업에 리소스 기반 결제가 사용되는 경우 작업 정보 측면 패널에 Streaming Engine 컴퓨팅 단위 필드가 포함됩니다.

결제에 대해 궁금한 점이 있으면 Cloud Customer Care에 문의하세요.