Dataflow Config Store로 작업 설정 관리

Dataflow Config Store를 사용하여 Google Cloud 조직, 폴더, 프로젝트를 포함한 Resource Manager 리소스 전반에서 작업 설정을 구성하고 관리합니다.

Dataflow Config Store를 사용하면 개별 파이프라인 코드, 작업 템플릿 또는 배포 스크립트를 수정하지 않고도 대규모로 구성 정책을 설정할 수 있습니다. 예를 들어 전체 조직 또는 폴더에서 기본 실행기 머신 유형을 설정하여 Compute Engine 머신 유형 부족을 완화하거나, 머신 마이그레이션을 용이하게 하거나, 리소스 크기 조정을 표준화할 수 있습니다.

지원되는 설정 및 제한사항

Dataflow Config Store는 다음 설정을 지원합니다.

  • default_launcher_machine_type: Flex 템플릿 작업에 대해 템플릿 런처 VM에서 사용하는 기본 Compute Engine 머신 유형 (예: e2-standard-2 또는 n2-standard-2)을 지정합니다.

Dataflow Config Store에는 다음과 같은 제한사항이 있습니다.

  • default_launcher_machine_type 설정은 Flex 템플릿 작업의 템플릿 런처 VM에만 적용됩니다. 작업자 VM 또는 기본 템플릿 작업에는 영향을 미치지 않습니다. 작업자 VM 머신 유형을 구성하려면 Dataflow 작업자 VM 구성을 참조하세요.
  • 프로젝트를 타겟팅할 때는 숫자 프로젝트 번호를 지정해야 합니다. 프로젝트 ID는 지원되지 않습니다.
  • 구성 저장소 설정은 리전별로 적용되며 동일한 Dataflow 리전에서 실행되는 작업에만 적용됩니다.

해결 우선순위 설정

Dataflow 작업이 시작되면 가장 구체적인 구성이 우선 적용되는 계층적 우선순위 모델을 사용하여 설정이 확인됩니다.

  1. 작업 수준 구성: 작업 제출 중에 명시적으로 전달되는 설정입니다 (예: 파이프라인 옵션 또는 실행 매개변수를 통해).
  2. 프로젝트 수준 설정: 작업이 실행되는 프로젝트에서 직접 구성된 구성 저장소 설정입니다.
  3. 폴더 또는 조직 수준 설정: Resource Manager 계층 구조의 상위 리소스에 구성된 구성 저장소 설정입니다. 프로젝트에 가장 가까운 상위 폴더가 상위 폴더 및 조직보다 우선 적용됩니다.
  4. Dataflow 서비스 전체 기본값: 작업 또는 Resource Manager 계층 구조 수준에서 재정의가 정의되지 않은 경우에 사용되는 기본 제공 서비스 기본값입니다.

시작하기 전에

구성 저장소 설정을 관리하거나 검사하기 전에 대상 프로젝트, 폴더 또는 조직에 필요한 Identity and Access Management (IAM) 권한이 있는지 확인하세요.

필수 권한

작업 필요한 권한
설정 만들기 또는 업데이트 dataflow.configStoreSettings.create
명시적으로 구성된 설정 보기 dataflow.configStoreSettings.get
리소스의 설정 나열 dataflow.configStoreSettings.list
유효 설정 확인 dataflow.configStoreSettings.resolve
설정 재정의 삭제 dataflow.configStoreSettings.delete

사전 정의된 역할

대상 프로젝트, 폴더 또는 조직에 다음 사전 정의된 역할을 부여하거나 필요한 권한이 있는 커스텀 역할을 만들 수 있습니다.

  • Dataflow 관리자 (roles/dataflow.admin): 구성 저장소 설정(dataflow.configStoreSettings.*)을 만들고, 가져오고, 나열하고, 해결하고, 삭제할 수 있는 권한을 포함합니다.
  • Dataflow 개발자 (roles/dataflow.developer): 구성 저장소 설정을 가져오고, 나열하고, 해결할 수 있는 읽기 전용 권한이 포함됩니다.
  • Dataflow 뷰어 (roles/dataflow.viewer): 구성 저장소 설정을 가져오고, 나열하고, 해결할 수 있는 읽기 전용 권한을 포함합니다.

자세한 내용은 IAM으로 액세스 제어를 참조하세요.

gcloud CLI를 사용하여 설정 관리

gcloud CLI를 사용하여 구성 저장소 설정을 관리할 수 있습니다.

대상 리소스 범위 지정

gcloud dataflow config-store-settings 명령어를 사용할 때는 다음 상호 배타적인 플래그 중 하나를 사용하여 대상 리소스 범위를 지정합니다. 동일한 명령어에 결합하지 마세요.

  • --project=PROJECT_NUMBER (프로젝트 ID가 아닌 숫자 Google Cloud 프로젝트 번호 사용)프로젝트
  • --folder=FOLDER_ID (숫자 폴더 ID) 폴더
  • 조직: --organization=ORGANIZATION_ID(숫자로 된 조직 ID)

구성 저장소 설정 만들기 또는 업데이트

프로젝트, 폴더 또는 조직에 설정을 만들려면 gcloud dataflow config-store-settings create 명령어를 실행합니다. 설정이 대상 리소스에 이미 있는 경우 다른 --value로 create 명령어를 다시 실행하면 기존 설정 값이 덮어쓰기됩니다.

gcloud dataflow config-store-settings create SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --value="SETTING_VALUE"

다음을 바꿉니다.

  • SETTING_ID: 구성할 지원되는 설정의 ID입니다(예: default_launcher_machine_type).
  • PROJECT_NUMBER: 숫자 Google Cloud프로젝트 번호입니다. 프로젝트 대신 폴더 또는 조직을 타겟팅하려면 --project=PROJECT_NUMBER를 --folder=FOLDER_ID 또는 --organization=ORGANIZATION_ID로 바꿉니다.
  • REGION: 설정이 적용되는 Dataflow 리전입니다(예: us-central1).
  • SETTING_VALUE: 설정 값입니다(예: default_launcher_machine_type의 경우 e2-standard-2).

구성 저장소 설정 가져오기

리소스에 직접 구성된 설정을 가져오려면 gcloud dataflow config-store-settings describe 명령어를 실행합니다.

gcloud dataflow config-store-settings describe SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

다음을 바꿉니다.

  • SETTING_ID: 검색할 지원되는 설정의 ID입니다(예: default_launcher_machine_type).
  • PROJECT_NUMBER: 숫자 Google Cloud프로젝트 번호입니다. 프로젝트 대신 폴더 또는 조직을 타겟팅하려면 --project=PROJECT_NUMBER를 --folder=FOLDER_ID 또는 --organization=ORGANIZATION_ID로 바꿉니다.
  • REGION: 설정의 Dataflow 리전(예: us-central1)

구성 저장소 설정 나열

리소스에 직접 구성된 모든 구성 저장소 설정을 나열하려면 gcloud dataflow config-store-settings list 명령어를 실행합니다.

gcloud dataflow config-store-settings list \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --page-size=10

다음을 바꿉니다.

  • PROJECT_NUMBER: 숫자 Google Cloud프로젝트 번호입니다. 프로젝트 대신 폴더 또는 조직을 타겟팅하려면 --project=PROJECT_NUMBER를 --folder=FOLDER_ID 또는 --organization=ORGANIZATION_ID로 바꿉니다.
  • REGION: 설정을 나열할 Dataflow 리전입니다(예: us-central1).

유효 설정 확인

리소스 계층 구조 내에서 시작된 작업에 적용되는 설정 값을 평가하려면 gcloud dataflow config-store-settings resolve 명령어를 실행합니다. 이 명령어는 작업에서 사용하는 설정 값을 확인하는 드라이 런 역할을 합니다.

gcloud dataflow config-store-settings resolve SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

다음을 바꿉니다.

  • SETTING_ID: 확인할 지원되는 설정의 ID입니다(예: default_launcher_machine_type).
  • PROJECT_NUMBER: 숫자 Google Cloud프로젝트 번호입니다. 프로젝트 대신 폴더 또는 조직을 타겟팅하려면 --project=PROJECT_NUMBER를 --folder=FOLDER_ID 또는 --organization=ORGANIZATION_ID로 바꿉니다.
  • REGION: 작업이 실행되는 Dataflow 리전(예: us-central1)

출력은 계층 구조의 모든 후보 choices와 함께 유효한 setting를 반환합니다.

setting:
  name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
choices:
- name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
- name: organizations/987654321098/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: n1-standard-1

이 예시에서는 프로젝트와 조직 모두 값을 정의하며 더 구체적인 프로젝트 수준 설정 (e2-standard-2)이 우선 적용됩니다.

구성 저장소 설정 삭제

리소스에서 설정 재정의를 삭제하려면 gcloud dataflow config-store-settings delete 명령어를 실행합니다.

gcloud dataflow config-store-settings delete SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

다음을 바꿉니다.

  • SETTING_ID: 삭제할 지원되는 설정의 ID입니다(예: default_launcher_machine_type).
  • PROJECT_NUMBER: 숫자 Google Cloud프로젝트 번호입니다. 프로젝트 대신 폴더 또는 조직을 타겟팅하려면 --project=PROJECT_NUMBER를 --folder=FOLDER_ID 또는 --organization=ORGANIZATION_ID로 바꿉니다.
  • REGION: 설정의 Dataflow 리전(예: us-central1)

설정을 삭제하면 Dataflow는 상위 폴더 또는 조직에 구성된 설정이나 서비스 전체 기본값으로 대체됩니다.

구성 저장소 오류 문제 해결

다음 목록에서는 일반적인 구성 저장소 오류를 해결하는 방법을 설명합니다.

  • INVALID_ARGUMENT (HTTP 400): 설정 값이 지원되지 않거나 (예: 잘못된 Compute Engine 머신 유형), --project가 숫자 프로젝트 번호 대신 프로젝트 ID를 지정하거나, --location가 유효한 Dataflow 리전이 아닙니다.
  • NOT_FOUND (HTTP 404): 지정된 리소스에 설정이 직접 생성되지 않았습니다. gcloud dataflow config-store-settings list를 실행하여 리소스의 설정을 보거나 resolve를 실행하여 상속된 설정을 확인합니다.
  • PERMISSION_DENIED (HTTP 403): 호출자에게 대상 프로젝트, 폴더 또는 조직 범위에서 필수 IAM 권한이 없습니다.
  • ABORTED (HTTP 409): 요청 중에 동시 업데이트로 인해 설정이 수정되었습니다. 명령어를 재실행합니다.
  • 설정을 만든 후 작업 실패: 구성 저장소 설정을 만들면 설정 형식이 검증되지만 리전 리소스 가용성은 확인되지 않습니다. 구성된 리소스를 사용할 수 없는 경우 실행 시 작업이 실패할 수 있습니다. 예를 들어 대상 리전에서 머신 유형이 지원되지 않거나 영역에 리소스가 부족할 수 있습니다. 이 문제를 해결하려면 사용 가능한 머신 유형을 사용하도록 설정을 업데이트하세요. 자세한 내용은 사용 가능한 리전 및 영역과 런처 VM 리소스 소진을 참조하세요.

다음 단계