라벨 생성 및 관리

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

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

라벨이란 무엇인가요?

라벨은 Google Cloud Dataproc 클러스터 및 작업에 할당할 수 있는 키-값 쌍입니다. 이러한 리소스를 구성하고 필요한 세부사항으로 규모에 맞게 비용을 관리하는 데 도움이 됩니다. 각 리소스에 라벨을 연결한 후 이 라벨을 기준으로 리소스를 필터링할 수 있습니다. 라벨에 대한 정보는 청구 요금을 라벨별로 분류할 수 있는 결제 시스템으로 전달됩니다. 기본 제공되는 결제 보고서를 통해 리소스 라벨별로 비용을 필터링하고 그룹화할 수 있습니다. 라벨을 사용하여 결제 데이터 내보내기를 쿼리할 수도 있습니다.

라벨 요구사항

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

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

이러한 한도는 각 라벨의 키와 값 및 라벨이 있는 개별 Google Cloud 리소스에 적용됩니다. 한 프로젝트의 모든 리소스에 적용할 수 있는 라벨 수에는 제한이 없습니다.

라벨의 일반적인 사용 사례

다음은 라벨의 몇 가지 일반적인 사용 사례입니다.

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

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

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

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

  • 소유권 라벨: 작업을 담당하는 팀을 식별하는 데 사용됩니다(예: team:shopping-cart).

모든 API 호출의 타임스탬프 또는 개별 값과 같은 다수의 고유 라벨을 만들지 않는 것이 좋습니다. 이 접근 방식의 문제는 값이 자주 변경되거나 카탈로그를 복잡하게 하는 키로 인해 리소스를 효과적으로 필터링하고 보고하기 어렵다는 것입니다.

라벨 및 태그

라벨은 리소스에 대해 쿼리 가능한 주석으로 사용될 수 있지만 정책에 조건을 설정하는 데는 사용할 수 없습니다. 태그를 사용하면 정책을 세밀하게 제어하여 리소스에 특정 태그가 있는지 여부에 따라 정책을 조건부로 허용하거나 거부할 수 있습니다. 자세한 내용은 태그 개요를 참조하세요.

Dataproc 라벨 만들기 및 사용

gcloud 명령

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

gcloud dataproc clusters create args --labels environment=production,customer=acme
gcloud dataproc jobs submit args --labels environment=production,customer=acme

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

gcloud dataproc clusters update args --update-labels environment=production,customer=acme
gcloud dataproc jobs update args --update-labels environment=production,customer=acme

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

gcloud dataproc clusters list \
    --region=region \
    --filter="status.state=ACTIVE AND labels.environment=production"
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 문서를 참조하세요.

콘솔

Google Cloud 콘솔을 사용하여 만들거나 제출할 때 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 리전 클러스터 엔드포인트

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

다음 단계