라벨 생성 및 관리

Dataproc 클러스터 및 작업 리소스에 사용자 라벨을 적용하여 나중에 필터링 및 나열할 리소스와 관련 작업을 그룹화할 수 있습니다. 리소스를 만드는 경우 리소스 생성 또는 작업 제출 시 라벨을 리소스와 연결합니다. 리소스가 라벨과 연결되면 리소스에서 수행되는 작업(클러스터 만들기/업데이트/패치 적용/삭제, 작업 제출/업데이트/취소/삭제)에 라벨이 반영되므로 클러스터, 작업, 운영을 라벨별로 필터링하고 나열할 수 있습니다.

가상 머신 인스턴스 및 디스크와 같은 클러스터 리소스와 연결된 Compute Engine 리소스에 라벨을 추가할 수도 있습니다.

라벨이란 무엇인가요?

라벨은 Google Cloud Dataproc 클러스터 및 작업을 구성하는 데 도움이 되는 키-값 쌍입니다. 각 리소스에 라벨을 연결한 다음 라벨을 기준으로 리소스를 필터링할 수 있습니다. 라벨에 대한 정보가 결제 시스템에 전달되므로 라벨을 기준으로 청구 상세 내역을 확인할 수 있습니다.

라벨의 일반적인 사용 사례

모든 API 호출의 타임스탬프 또는 개별 값과 같은 고유 라벨을 대량으로 만드는 것은 권장하지 않습니다. 다음은 라벨의 몇 가지 일반적인 사용 사례입니다.

  • 팀 또는 비용 센터 라벨: 팀 또는 비용 센터 기준의 라벨을 추가하여 team:researchteam:analytics와 같이 여러 팀에서 소유한 Dataproc 클러스터와 작업을 구별할 수 있습니다. 이 유형의 라벨은 비용 계산 또는 예산 책정에 사용할 수 있습니다.

  • 구성요소 라벨: component:redis, component:frontend, component:ingest, component:dashboard를 예로 들 수 있습니다.

  • 환경 또는 단계 라벨: environment:productionenvironment:test를 예로 들 수 있습니다.

  • 상태 라벨: state:active , state:readytodelete, state:archive를 예시로 들 수 있습니다.

라벨 요구사항

리소스에 적용된 라벨은 다음 요구사항을 충족해야 합니다.

  • 각 리소스는 여러 개의 라벨(최대 64개)을 가질 수 있습니다.
  • 각 라벨은 키-값 쌍이어야 합니다.
  • 키는 비워 둘 수 없으며 최소 길이는 1자(영문 기준)이고 최대 길이는 63자(영문 기준)입니다. 값은 비워 둘 수 있으며 최대 길이는 63자(영문 기준)입니다.
  • 키와 값에는 소문자, 숫자, 밑줄, 대시만 사용할 수 있습니다. 모든 문자는 UTF-8 인코딩을 사용해야 하며 국제 문자가 허용됩니다.
  • 라벨의 키 부분은 고유해야 합니다. 그러나 여러 리소스에 동일한 키를 사용할 수 있습니다.
  • 키는 소문자나 국제 문자로 시작해야 합니다.

Dataproc 라벨 만들기 및 사용

gcloud 명령

gcloud 명령줄 도구를 사용하여 만들거나 제출할 때 Dataproc 클러스터나 작업에 적용할 라벨을 한 개 이상 지정할 수 있습니다.

gcloud dataproc clusters create args --labels env=prod,customer=acme
gcloud dataproc jobs submit args --labels env=prod,customer=acme

Dataproc 클러스터나 작업이 생성되면 gcloud 명령줄 도구를 사용하여 리소스와 연결된 라벨을 업데이트할 수 있습니다.

gcloud dataproc clusters update args --update-labels env=prod,customer=acme
gcloud dataproc jobs update args --update-labels env=prod,customer=acme

마찬가지로 gcloud 명령줄 도구를 사용하여 labels.<key=value> 형식의 필터 표현식을 사용하여 라벨을 기준으로 Dataproc 리소스를 필터링할 수 있습니다.

gcloud dataproc clusters list \
    --region=region \
    --filter="status.state=ACTIVE AND labels.env=prod"
gcloud dataproc jobs list \
    --region=region \
    --filter="status.state=ACTIVE AND labels.customer=acme"

필터 표현식 작성에 대한 자세한 내용은 clusters.listjobs.list Cloud Dataproc API 문서를 참조하세요.

REST API

라벨은 Dataproc REST API를 통해 Dataproc 리소스에 연결될 수 있습니다. clusters.create, jobs.submit API를 사용하여 만들거나 제출할 때 클러스터나 작업에 라벨을 연결할 수 있습니다. clusters.patch, jobs.patch API를 사용하면 리소스를 만든 후에 라벨을 수정할 수 있습니다. 다음은 key1:value 라벨을 클러스터에 연결을 포함한 cluster.create 요청의 JSON 본문입니다.

{
  "clusterName":"cluster-1",
  "projectId":"my-project",
  "config":{
    "configBucket":"",
    "gceClusterConfig":{
      "networkUri":".../networks/default",
      "zoneUri":".../zones/us-central1-f"
    },
    "masterConfig":{
      "numInstances":1,
      "machineTypeUri":"..../machineTypes/n1-standard-4",
      "diskConfig":{
        "bootDiskSizeGb":500,
        "numLocalSsds":0
      }
    },
    "workerConfig":{
      "numInstances":2,
      "machineTypeUri":"...machineTypes/n1-standard-4",
      "diskConfig":{
        "bootDiskSizeGb":500,
        "numLocalSsds":0
      }
    }
  },
  "labels":{
    "key1":"value1"
  }
}

clusters.listjobs.list API를 사용하면 labels.<key=value> 형식을 사용하는 지정된 필터와 일치하는 리소스를 나열할 수 있습니다.

다음은 key=value 라벨 필터를 지정하는 Dataproc API clusters.list HTTPS GET 요청의 샘플입니다. 호출자는 project, region, 필터 label-keylabel-value, api-key를 삽입합니다. 이 요청 예는 가독성을 위해 두 개의 줄로 나누어져 있습니다.

GET https://dataproc.googleapis.com/v1/projects/project/regions/region/clusters?
filter=labels.label-key=label-value&key=api-key

필터 표현식 작성에 대한 자세한 내용은 clusters.listjobs.list Cloud Dataproc API 문서를 참조하세요.

Console

Cloud Console을 사용하여 만들거나 제출할 때 Dataproc 리소스에 추가할 라벨 집합을 지정할 수 있습니다.

  • Dataproc 클러스터 만들기 페이지의 클러스터 맞춤설정 패널의 라벨 섹션에서 클러스터에 라벨을 추가합니다.
  • Dataproc 작업 제출 페이지에서 작업에 라벨을 추가합니다.

Dataproc 리소스를 만든 후에는 이 리소스와 연결된 라벨을 업데이트할 수 있습니다. 라벨을 업데이트하려면 먼저 페이지 왼쪽 상단의 SHOW INFO PANEL을 클릭해야 합니다. 다음은 Dataproc→클러스터 나열 페이지의 예시입니다.

정보 패널이 표시되면 Dataproc 리소스의 라벨을 업데이트할 수 있습니다. 다음은 Dataproc 클러스터의 라벨을 업데이트하는 예시입니다.

또한 한 작업에서 여러 항목의 라벨을 업데이트할 수도 있습니다. 이 예시에서는 라벨을 동시에 여러 Dataproc 작업에 업데이트합니다.

라벨을 사용하면 Dataproc→클러스터 나열Dataproc→작업 나열 페이지에 표시된 Dataproc 리소스를 필터링할 수 있습니다. 페이지 상단에서 검색 패턴 labels.<labelname>=<value>를 사용하여 라벨별로 리소스를 필터링할 수 있습니다.

라벨 자동 적용

클러스터를 만들거나 업데이트할 때 Dataproc은 자동으로 클러스터와 클러스터 리소스에 라벨을 여러 개 적용합니다. 예를 들어 Dataproc은 클러스터가 생성될 때 가상 머신, 영구 디스크, 가속기에 라벨을 적용합니다. 자동으로 적용되는 라벨에는 특별한 goog-dataproc 프리픽스가 있습니다.

다음 goog-dataproc 라벨은 Dataproc 리소스에 자동으로 적용됩니다. 클러스터를 만들 때 지정되는 goog-dataproc 라벨에 다른 값을 입력하면 자동 적용된 값이 재정의됩니다. 따라서 자체 값을 입력하는 것은 권장되지 않습니다.

라벨 설명
goog-dataproc-cluster-name 사용자가 지정한 클러스터 이름
goog-dataproc-cluster-uuid 고유한 클러스터 ID
goog-dataproc-location Dataproc 리전 클러스터 엔드포인트

다음과 같은 다양한 방법으로 자동으로 적용되는 라벨을 사용할 수 있습니다.

다음 단계