이 문서에서는 Dataflow에 적용되는 할당량과 시스템 한도를 설명합니다.
- 할당량은 사용할 수 있는 계수 가능한 공유 리소스의 양을 지정합니다. 할당량은 Dataflow와 같은 Google Cloud 서비스에서 정의합니다.
- 시스템 한도는 변경할 수 없는 고정 값입니다.
Google Cloud는 공정성을 보장하고 리소스 사용 및 가용성의 급증을 줄이기 위해 할당량을 사용합니다. 할당량은 Google Cloud 프로젝트에서 사용할 수 있는 Google Cloud 리소스의 양을 제한합니다. 할당량은 하드웨어, 소프트웨어, 네트워크 구성요소를 포함하여 다양한 리소스 유형에 적용됩니다. 예를 들어 할당량에 따라 서비스에 대한 API 호출 수, 프로젝트에서 동시에 사용하는 부하 분산기 수, 만들 수 있는 프로젝트 수가 제한될 수 있습니다. 할당량은 서비스 과부하를 방지하여 Google Cloud 사용자 커뮤니티를 보호합니다. 할당량은 자체 Google Cloud 리소스를 관리하는 데도 도움이 됩니다.
Cloud Quotas 시스템은 다음을 수행합니다.
- Google Cloud 제품 및 서비스 소비량 모니터링
- 리소스 소비 제한
- 할당량 값 변경을 요청할 수 있는 수단 제공
대부분의 경우 할당량이 허용하는 것보다 더 많은 리소스를 소비하려고 하면 시스템에서 리소스에 대한 액세스를 차단하고 수행하려는 작업이 실패합니다.
할당량은 일반적으로 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개
- Dataflow 일괄 작업은 10일 후에 취소됩니다.
Compute Engine 할당량
Dataflow 서비스에서 파이프라인을 실행하면 Dataflow가 파이프라인 코드를 실행할 Compute Engine 인스턴스를 만듭니다.
Compute Engine 할당량은 리전별로 지정됩니다. 프로젝트의 Compute Engine 할당량을 검토한 후 필요에 따라 다음과 같은 조정을 요청합니다.
- CPU: 다음 리전에서 Dataflow의 기본 머신 유형은 일괄 작업의 경우
n1-standard-1
, Streaming Engine을 사용하는 작업의 경우n1-standard-2
, Streaming Engine을 사용하지 않는 스트리밍 작업의 경우n1-standard-4
, 가변형 리소스 예약(FlexRS)을 사용하는 작업의 경우n1-standard-2
입니다. FlexRS는 선점형 VM(90%)과 일반 VM(10%)을 사용합니다.asia-east1
asia-east2
asia-northeast1
asia-northeast2
asia-northeast3
asia-south1
asia-south2
asia-southeast1
asia-southeast2
australia-southeast1
australia-southeast2
europe-central2
europe-north1
europe-west1
europe-west2
europe-west3
europe-west4
europe-west5
europe-west6
northamerica-northeast1
northamerica-northeast2
southamerica-east1
us-central1
us-central2
us-east1
us-east4
us-west1
us-west2
us-west3
us-west4
다른 리전의 경우 기본 머신 유형은 일괄 작업의 경우
e2-standard-2
, Streaming Engine을 사용하는 작업의 경우e2-standard-2
, Streaming Engine을 사용하지 않는 스트리밍 작업의 경우e2-standard-4
, FlexRS를 사용하는 작업의 경우e2-standard-2
입니다.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개
- 스트리밍 작업에 7일 넘게 관리형 인스턴스 그룹이 없으면 작업이 취소됩니다.
- 일괄 작업에 1시간 넘게 관리형 인스턴스 그룹이 없으면 작업이 취소됩니다.
추가 할당량
사용 중인 소스와 싱크에 따라 추가 할당량이 필요할 수도 있습니다.
- Pub/Sub: Pub/Sub를 사용할 경우 추가 할당량이 필요할 수 있습니다. 할당량을 계획할 때 Pub/Sub에서 메시지 1개를 처리하려면 작업이 3개 필요하다는 점에 유의하세요. 커스텀 타임스탬프를 사용하는 경우 Dataflow에서 커스텀 타임스탬프를 추적하기 위해 별도의 구독을 생성하므로 예상되는 작업 수를 2배로 늘려야 합니다.
- BigQuery: BigQuery에 스트리밍 API를 사용하는 경우 할당량 한도 및 기타 제한사항이 적용됩니다.
할당량 찾기 및 늘리기
다음 안내를 따라 Dataflow 관련 할당량의 현재 사용량을 확인할 수 있습니다.
- Google Cloud 콘솔에서 API 및 서비스로 이동합니다.
API 및 서비스로 이동 - 현재 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의 실질적인 프로덕션 한도에 대해 설명합니다.
한도 | 용량 |
---|---|
파이프라인당 최대 작업자 수 | 2,000 |
작업 생성 요청의 최대 크기(파이프라인 설명의 단계가 많고 이름이 매우 상세한 경우 이 한도에 도달할 수 있음) | 10MB |
템플릿 실행 요청의 최대 크기입니다. | 1MB |
최대 부차 입력 샤드 수 | 20,000 |
단일 요소의 최대 크기(Streaming Engine과 같이 더 엄격한 조건이 적용되는 경우 제외) | 2GB |
일괄 처리 파이프라인의 최대 키 크기입니다. | 1.5MB |
특정 기간 동안 작업자당 최대 로그 항목 수 | 30초마다 15,000개의 메시지 |
프로젝트당 최대 커스텀 측정항목 수 | 100 |
권장사항이 저장되는 기간입니다. | 30일 |
Streaming Engine 한도 | 용량 |
---|---|
Pub/Sub 메시지의 최대 바이트 | 7MB |
단일 요소 값의 최대 크기 | 80MB |
대규모 키의 최대 크기. 64KB를 초과하는 키는 성능이 저하됩니다. | 2MB |
부차 입력의 최대 크기 | 80MB |
TagValue 및 TagBag 에서 사용되는 상태 태그의 최대 길이 |
64KB |