할당량 및 한도

이 문서에서는 Dataflow에 적용되는 할당량한도에 대해 설명합니다.

할당량은 하드웨어, 소프트웨어, 네트워크 구성요소를 포함하여 Google Cloud 프로젝트에서 사용할 수 있는 공유 Google Cloud 리소스의 양을 제한합니다. 따라서 할당량은 다음을 수행하는 시스템에 속합니다.

  • Google Cloud 제품 및 서비스 사용 또는 소비량을 모니터링합니다.
  • 공정성 보장 및 사용량 급증 방지 등의 이유로 리소스 소비를 제한합니다.
  • 사전 정의된 제한사항을 자동으로 적용하는 구성을 유지합니다.
  • 할당량을 요청하거나 변경할 수 있는 수단을 제공합니다.

대부분의 경우 할당량이 초과되면 시스템에서 관련 Google 리소스에 대한 액세스를 즉시 차단하고 수행하려는 작업이 실패합니다. 대부분의 경우 할당량은 각 Google Cloud 프로젝트에 적용되며 해당 Google Cloud 프로젝트를 사용하는 모든 애플리케이션과 IP 주소 전반에 공유됩니다.

대부분의 할당량은 Google Cloud 콘솔을 사용해 늘리거나 줄입니다. 자세한 내용은 할당량 상향 요청을 참조하세요.

Dataflow 리소스에도 한도가 있습니다. 이 한도는 할당량 시스템과 관련이 없습니다. 별도로 명시되지 않는 한 한도를 변경할 수 없습니다.

Dataflow 관리형 서비스의 할당량 및 한도는 다음과 같습니다.

  • 각 Google Cloud 프로젝트는 분당 최대 300만 개까지 요청할 수 있습니다.
  • 각 Dataflow 작업은 Compute Engine 인스턴스를 최대 2,000개까지 사용할 수 있습니다. 작업자 영역을 지정하지 않으면 Streaming Engine을 사용하는 각 스트리밍 작업 또는 서비스 기반 Dataflow Shuffle을 사용하는 일괄 작업이 최대 4,000개의 Compute Engine 인스턴스를 사용할 수 있습니다.
  • Google Cloud 프로젝트마다 기본적으로 동시 Dataflow 작업을 최대 25개까지 실행할 수 있습니다.
  • 각 Dataflow 작업자에는 시간 간격에서 출력할 수 있는 최대 로그 한도가 있습니다. 정확한 한도는 로깅 문서를 참조하세요.
  • 조직 수준의 할당량을 선택하면 조직마다 기본적으로 동시 Dataflow 작업을 최대 125개까지 실행할 수 있습니다.
  • 각 사용자는 분당 최대 15,000개까지 모니터링을 요청할 수 있습니다.
  • 각 사용자는 분당 최대 60개까지 작업 생성을 요청할 수 있습니다.
  • 각 사용자는 분당 최대 60개까지 작업 템플릿을 요청할 수 있습니다.
  • 각 사용자는 분당 최대 60개까지 작업 업데이트를 요청할 수 있습니다.
  • Google Cloud 프로젝트마다 각 리전에서 가져올 수 있는 Shuffle 슬롯 수는 다음과 같습니다.
    • asia-east1: 슬롯 48개
    • asia-northeast1: 슬롯 24개
    • asia-northeast3: 슬롯 32개
    • asia-south1: 슬롯 64개
    • asia-southeast1: 슬롯 64개
    • australia-southeast1: 슬롯 24개
    • europe-west1: 슬롯 640개
    • europe-west2: 슬롯 32개
    • europe-west3: 슬롯 40개
    • europe-west4: 슬롯 512개
    • northamerica-northeast1: 슬롯 512개
    • us-central1: 슬롯 640개
    • us-east1: 슬롯 640개
    • us-east4: 슬롯 64개
    • us-west1: 슬롯 384개
    • us-west2: 슬롯 24개
    • us-west3: 슬롯 24개
    • 기타: 슬롯 16개
    슬롯 16개면 약 10TB의 데이터를 동시에 셔플하기에 충분합니다.
  • Dataflow 일괄 작업은 30일 후에 취소됩니다.

Compute Engine 할당량

Dataflow 서비스에서 파이프라인을 실행하면 Dataflow가 파이프라인 코드를 실행할 Compute Engine 인스턴스를 만듭니다.

Compute Engine 할당량은 리전별로 지정됩니다. 프로젝트의 Compute Engine 할당량을 검토한 후 필요에 따라 다음과 같은 조정을 요청합니다.

  • CPU: Dataflow의 기본 머신 유형은 일괄 작업의 경우 n1-standard-1, 스트리밍 엔진을 사용하는 작업의 경우 n1-standard-2, 스트리밍 엔진을 사용하지 않는 작업의 경우 n1-standard-4입니다. FlexRS는 n1-standard-2 머신을 기본으로 사용합니다. 베타 출시 기간 동안 FlexRS는 선점형 VM(90%)과 일반 VM(10%)을 사용합니다. Compute Engine은 각 인스턴스의 총 CPU 개수를 합산하여 CPU 수를 계산합니다. 예를 들어 n1-standard-4 인스턴스를 10개 실행하면 CPU는 40개로 집계됩니다. 머신 유형의 CPU 개수 매핑은 Compute Engine 머신 유형을 참조하세요.
  • 사용 중인 IP 주소: 프로젝트에서 사용 중인 IP 주소의 수가 원하는 인스턴스 수를 수용하기에 충분해야 합니다. Compute Engine 인스턴스를 10개 사용하려면 사용 중인 IP 주소가 10개 필요합니다.
  • Persistent Disk: Dataflow는 Persistent Disk를 각 인스턴스에 연결합니다.
    • 기본 디스크 크기는 일괄 파이프라인의 경우 250GB, 스트리밍 파이프라인의 경우 400GB입니다. 인스턴스가 10개이면 기본적으로 일괄 작업 1개당 2,500GB의 Persistent Disk가 필요합니다.
    • Dataflow Shuffle 일괄 파이프라인의 기본 디스크 크기는 25GB입니다.
    • Streaming Engine 스트리밍 파이프라인의 기본 디스크 크기는 30GB입니다.
    • Dataflow 서비스는 현재 스트리밍 작업을 실행할 때 15개의 작업자 인스턴스당 영구 디스크로 제한됩니다. 각 영구 디스크는 개별 Compute Engine 가상 머신에 대해 로컬입니다. 작업자와 디스크 간 1:1 비율이 최소 리소스 할당입니다.
    • Compute Engine 사용량은 평균 작업자 수를 기준으로 하며, Persistent Disk 사용량은 --maxNumWorkers의 정확한 수를 기준으로 합니다. 영구 디스크는 각 작업자에게 동일한 수의 연결된 디스크가 할당되도록 재분배됩니다.
  • 리전 관리형 인스턴스 그룹: Dataflow는 Compute Engine 인스턴스를 관리형 인스턴스 그룹으로 배포합니다. 다음과 같은 관련 할당량을 사용할 수 있어야 합니다.
    • Dataflow 작업당 인스턴스 그룹 1개
    • Dataflow 작업당 인스턴스 템플릿 1개
    • Dataflow 작업당 리전 관리형 인스턴스 그룹 1개

추가 할당량

사용 중인 소스와 싱크에 따라 추가 할당량이 필요할 수도 있습니다.

  1. Pub/Sub: Pub/Sub를 사용할 경우 추가 할당량이 필요할 수 있습니다. 할당량을 계획할 때 Pub/Sub에서 메시지 1개를 처리하려면 작업이 3개 필요하다는 점에 유의하세요. 커스텀 타임스탬프를 사용하는 경우 Dataflow에서 커스텀 타임스탬프를 추적하기 위해 별도의 구독을 생성하므로 예상되는 작업 수를 2배로 늘려야 합니다.
  2. BigQuery: BigQuery에 스트리밍 API를 사용하는 경우 할당량 한도 및 기타 제한사항이 적용됩니다.

할당량 찾기 및 늘리기

다음 안내를 따라 Dataflow 관련 할당량의 현재 사용량을 확인할 수 있습니다.

  1. Google Cloud Console에서 API 및 서비스로 이동합니다.
    API 및 서비스로 이동
  2. 현재 Shuffle 슬롯 할당량 사용량을 확인하려면 할당량 탭의 테이블 및 사용량 차트 열에서 Shuffle 슬롯 행을 찾아 사용량 차트 표시를 클릭합니다.

작업 할당량을 늘리려면 Google Cloud 지원팀에 문의하세요. 요구에 가장 적합한 값으로 한도를 늘릴 수 있습니다. 기본 할당량은 프로젝트의 경우 25개 동시 Dataflow 작업이고, 조직의 경우 125개 동시 Dataflow 작업입니다.

또한 지원 요청을 제출하고 프로젝트의 모든 작업에 예상되는 최대 동시 Shuffle 데이터 세트 크기를 지정하여 일괄 작업에 대한 Shuffle 슬롯 할당량을 늘릴 수 있습니다. Shuffle 할당량을 추가로 요청하기 전에 Dataflow Shuffle을 사용하여 파이프라인을 실행하고 실제 Shuffle 할당량 사용량을 확인합니다.

스트리밍 작업의 경우 Google Cloud Platform 지원팀에 지원 요청을 제출하여 Streaming Engine 처리량을 늘릴 수 있습니다. 요청에 작업이 실행되는 리전마다 작업자 간에 셔플할 분당 최대 데이터양을 지정합니다.

Dataflow 서비스에서는 BigQuery, Cloud Storage, Pub/Sub, Compute Engine과 같은 다양한 Google Cloud 구성요소를 실행합니다. 이러한 구성요소와 기타 Google Cloud 서비스는 할당량을 통해 프로젝트에서 사용할 수 있는 최대 리소스 수를 제한합니다. Dataflow를 사용하는 경우 이러한 서비스의 할당량 설정을 조정해야 할 수도 있습니다.

Dataflow Prime

할당량 및 한도는 Dataflow와 Dataflow Prime 모두 동일합니다. Dataflow 할당량이 있으면 Dataflow Prime을 사용하여 작업을 실행할 때 추가 할당량이 필요하지 않습니다.

한도

이 섹션에서는 Dataflow의 실질적인 프로덕션 한도에 대해 설명합니다.

한도 용량
파이프라인당 최대 작업자 수 1,000
작업 생성 요청의 최대 크기(파이프라인 설명의 단계가 많고 이름이 매우 상세한 경우 이 한도에 도달할 수 있음) 10MB
템플릿 실행 요청의 최대 크기입니다. 1MB
최대 부차 입력 샤드 수 20,000
단일 요소의 최대 크기(Streaming Engine과 같이 더 엄격한 조건이 적용되는 경우 제외) 2 GB
Streaming Engine에서 단일 요소 값의 최대 크기 80MB
특정 기간 동안 작업자당 최대 로그 항목 30초마다 15,000개의 메시지
프로젝트당 최대 커스텀 측정항목 100
권장사항이 저장되는 기간입니다. 30일
Streaming Engine 한도 용량
Pub/Sub 메시지의 최대 바이트  7MB
대규모 키의 최대 크기.  64KB를 초과하는 키는 성능이 저하됩니다.  2MB
부차 입력의 최대 크기 80MB
TagValueTagBag에서 사용되는 상태 태그의 최대 길이  64KB