리소스 라벨 지정

라벨을 지정하면 서로 관련이 있거나 연결된 리소스를 간단하게 그룹화할 수 있습니다. 예를 들어 일반적인 방법은 각 개발 단계에 속하는 리소스를 쉽게 검색할 수 있도록 각각 프로덕션, 스테이징 또는 개발에 사용할 리소스에 라벨을 지정하는 것입니다. 라벨은 vmrole:webserver, environment:production, location:west 등으로 지정할 수 있습니다. 라벨은 항상 키-값 쌍으로 추가합니다.

{
 "labels": {
    "vmrole": "webserver",
    "environment": "production",
    "location": "west",...
    }
 }

다음 리소스에 라벨을 적용합니다.

  • 가상 머신 인스턴스
  • 전달 규칙(알파)
  • 이미지
  • 영구 디스크
  • 영구 디스크 스냅샷
  • 고정 외부 IP 주소(알파)
  • VPN 터널(알파)

리소스에 라벨을 추가한 후 중첩 필터링과 같은 기능을 활용하여 라벨을 사용해 리소스를 보다 정확하게 검색할 수 있습니다.

시작하기 전에

제한사항

  • 각 리소스에 라벨을 최대 64개까지 할당할 수 있습니다.
  • 목록에서 알파로 표시된 리소스는 아직 gcloud 또는 Google Cloud Platform Console에서 지원되지 않습니다. 대신 Compute Engine API(알파)를 사용하여 이러한 리소스의 라벨을 설정합니다.
  • 라벨 키 및 값은 다음 제한사항을 준수해야 합니다.

    • 키 및 값은 각각 63자보다 길 수 없습니다.
    • 키 및 값은 소문자, 숫자, 밑줄, 대시만 포함할 수 있습니다. 국제 문자는 허용됩니다.
    • 라벨 키는 소문자로 시작해야 하며 국제 문자는 허용됩니다.
    • 라벨 키는 비워 둘 수 없습니다.

라벨을 사용하여 리소스 만들기

새 리소스를 만들 때 리소스에 라벨을 적용할 수 있습니다.

Console

  1. 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기 페이지로 이동

  2. 관리, 보안, 디스크, 네트워킹, 단독 테넌트 섹션을 펼칩니다.
  3. 관리에서 이 리소스에 추가할 라벨을 지정합니다.
  4. 생성 프로세스를 계속 진행합니다.

gcloud

리소스를 만들 때 --labels 플래그를 포함하고 쉼표로 구분된 키-값 쌍의 라벨 목록을 차례로 입력합니다. 예를 들면 다음과 같습니다.

gcloud compute instances create ... --labels webserver=backend,media=images

이미지 및 디스크를 만들 때에도 동일한 플래그가 적용됩니다.

API

API에서 새 리소스를 추가하기 위한 POST 요청을 하는 동안 요청 본문에 labels 속성을 추가하여 새 리소스에 라벨을 적용합니다. 예를 들어 VM 인스턴스를 만들기 위한 요청 본문의 라벨은 다음과 같습니다.

body = {
  "name": "[INSTANCE_NAME]",
  "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
   ...,
  "labels": [{
    "key": "webserver",
    "value": "backend"
    },
    {
    "key": "media",
    "value": "images"
   }]
 }

이미지 및 디스크를 만들 때에도 동일한 속성을 적용할 수 있습니다.

기존 리소스에 라벨 추가 또는 업데이트

리소스의 기존 라벨을 추가하거나 업데이트할 수 있습니다.

Console

  1. 라벨을 추가할 각 리소스 페이지로 이동합니다.
  2. 라벨을 지정할 리소스 옆에 있는 체크박스를 선택합니다.
  3. 정보 패널 표시를 클릭하여 라벨 열을 확장합니다.
  4. 원하는 대로 라벨을 업데이트하거나 새 라벨을 추가합니다.
  5. 변경사항을 저장합니다.

gcloud

gcloud 명령줄 도구를 사용하여 라벨을 추가하거나 변경하려면 --update-labels 플래그와 함께 update 하위 명령어를 사용합니다. 예를 들어 디스크에 라벨을 추가하려면 gcloud compute disks update [DISK] --update-labels 하위 명령어를 사용합니다.

gcloud compute disks update example-disk --update-labels backend=webserver,media=images

이미 존재하는 라벨 키를 제공하면 기존 키가 새 라벨 값으로 업데이트됩니다. 새 키를 제공하면 라벨 목록에 새 키가 추가됩니다.

예를 들어 스냅샷 및 이미지에는 gcloud compute instances, gcloud compute snapshots 또는 gcloud compute images 명령어를 사용합니다.

API

라벨을 추가하거나 업데이트하려면 최신 디지털 지문과 적용할 라벨의 전체 목록을 사용하여 적절한 리소스의 setLabels 메서드에 대해 POST 요청을 실행합니다.

메타데이터 및 태그와 마찬가지로 리소스에 유지할 기존 라벨이 있는 경우 추가할 새 라벨과 함께 이러한 라벨을 요청에 포함해야 합니다.

예를 들어 다음 스니펫은 인스턴스의 setLabels 메서드에 대해 요청을 실행합니다. 디스크, 스냅샷 또는 이미지setLabels 메서드에 대해 요청을 실행할 수도 있습니다.

Request

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels

{
 "labels": {
  "environment": "test",
  "an-existing-tag": ""
 },
 "labelFingerprint": "42WmSpB8rSM="
}

마찬가지로 리소스를 만들 때도 labels 객체를 지정하여 리소스에 라벨을 추가할 수 있습니다.

API 요청의 라벨 디지털 지문 가져오기

API에서 라벨을 업데이트하거나 추가할 때 다른 요청과 충돌하지 않도록 최신 라벨 디지털 지문을 요청과 함께 제공해야 합니다. 이 작업은 API 요청에만 필요합니다. GCP Consolegcloud 도구에는 디지털 지문이 필요하지 않습니다.

요청을 할 수 있도록 최신 라벨 디지털 지문을 가져오려면 해당 리소스에 대해 GET 요청을 실행합니다. 예를 들어 다음 스니펫은 인스턴스의 labelsFingerprint를 가져옵니다. 디스크, 스냅샷 또는 이미지에도 유사한 요청을 실행할 수 있습니다.

labelFingerprint 속성을 찾습니다.

Request

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
200 OK

{

 "kind": "compute#instance",
 "id": "4392196237934605253",
 "creationTimestamp": "2015-09-15T14:05:16.475-07:00",
 "zone": "https://content.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f",
 "status": "RUNNING",
 ...
 "labels": {
  "environment": "test"
 },
 "labelFingerprint": "p1ty_9HoBk0="
}

라벨 삭제

Console

  1. 라벨을 추가할 각 리소스 페이지로 이동합니다.
  2. 라벨을 제거할 리소스 옆에 있는 체크박스를 선택합니다.
  3. 정보 패널 표시를 클릭하여 라벨 열을 확장합니다.
  4. 삭제할 모든 라벨 옆에 있는 X를 클릭합니다.
  5. 변경사항을 저장합니다.

gcloud

gcloud 명령줄 도구를 사용하여 --remove-labels 플래그와 함께 update 명령어를 실행합니다. 삭제할 라벨 키 집합을 제공합니다. 예를 들면 다음과 같습니다.

gcloud compute disks update example-disk --remove-labels backend,media

스냅샷 및 이미지의 경우 gcloud compute snapshots 또는 gcloud compute images 모음을 사용합니다.

API

API에서 해당 API 리소스(인스턴스, 디스크, 스냅샷)의 setLabels 메서드에 대해 POST 요청을 실행합니다.

최신 labelsFingerprint 및 비어 있는 라벨 목록을 제공하여 모든 라벨을 삭제하거나 유지하려는 라벨 목록을 제공합니다(삭제하려는 라벨은 생략). 예를 들면 다음과 같습니다.

Request

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels

{
 "labels": { },
 "labelFingerprint": "42WmSpB8rSM="
}

라벨을 사용한 검색 필터링

리소스를 검색하고 결과를 라벨을 기준으로 필터링할 수 있습니다.

Console

  1. 라벨을 추가할 각 리소스 페이지로 이동합니다.
    • 인스턴스의 경우 VM 인스턴스 페이지로 이동합니다.
    • 디스크의 경우 디스크 페이지로 이동합니다.
    • 스냅샷의 경우 스냅샷 페이지로 이동합니다.
    • 이미지의 경우 이미지 페이지로 이동합니다.
    • 메시지가 표시되면 프로젝트를 선택하고 계속을 클릭합니다.
    • 검색창에서 labels.를 입력하면 검색창에 필터링할 수 있는 라벨이 자동으로 나열됩니다.

gcloud

gcloud에서 list 요청을 수행하고 --filter 플래그를 사용합니다. 라벨을 필터링하려면 labels.key=[VALUE] 구문을 사용합니다. 예를 들어 env 키 및 dev 값으로 라벨을 필터링하려면 다음 명령어를 실행하면 됩니다.

gcloud compute instances list --filter labels.env=dev

gcloud 도구의 필터 구문에 대한 자세한 내용은 gcloud topic filters 문서를 참조하세요.

API

API에서 URL이 인코딩된 filter 쿼리 매개변수를 사용하여 목록 요청을 실행합니다. 예를 들어 env 라벨 키 값을 dev로 하여 필터링하려면 다음 GET 요청을 실행합니다.

GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/list?filter=labels.env+eq+dev

자세한 내용은 Compute Engine API 참조에서 filter 문서 문서를 참조하세요.

인스턴스 라벨과 네트워크 태그 사이의 관계

과거에는 라벨과 태그가 관련되어 있었습니다. 예를 들어 VM 인스턴스에 webserver:test 라벨을 추가한 경우 Compute Engine에서 자동으로 webserver 태그를 인스턴스에 추가했습니다.

이제 라벨과 태그는 분리되어 있습니다. 인스턴스에 라벨을 만드는 경우 Compute Engine에서 인스턴스의 태그를 생성하지 않습니다. 인스턴스에 태그를 만들어야 하는 경우 태그를 수동으로 생성해야 합니다.

태그를 만드는 방법에 대해서는 네트워크 태그 페이지를 참조하세요.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서