라벨은 Google Cloud에서 관련 리소스 또는 연결된 리소스를 그룹화하는 데 사용할 수 있는 키-값 쌍입니다. 예를 들어 Compute Engine에서 라벨을 사용하면 프로덕션, 스테이징 또는 개발과 같은 카테고리로 VM을 그룹화하여 각 개발 단계에 속하는 리소스를 검색할 수 있습니다.
리소스에 라벨을 추가한 후 중첩 필터링 기능을 활용하여 라벨을 사용해 리소스를 보다 정확하게 검색할 수 있습니다.
시작하기 전에
- 영구 디스크 문서를 읽습니다.
- 이미지 문서를 읽습니다.
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- 각 리소스에 라벨을 최대 64개까지 사용할 수 있습니다.
- 각 라벨은 키-값 쌍이어야 합니다.
- 키는 비워 둘 수 없으며 최소 길이는 1자(영문 기준)이고 최대 길이는 63자(영문 기준)입니다. 값은 비워 둘 수 있으며 최대 길이는 63자(영문 기준)입니다.
- 키와 값에는 소문자, 숫자, 밑줄, 대시만 사용할 수 있습니다. 모든 문자는 UTF-8 인코딩을 사용해야 하며 국제 문자가 허용됩니다. 키는 소문자나 국제 문자로 시작해야 합니다.
- 라벨의 키 부분은 단일 리소스에서 고유해야 합니다. 그러나 여러 리소스에 같은 키를 사용할 수 있습니다.
팀 또는 비용 센터 라벨: 팀 또는 비용 센터를 기준으로 라벨을 추가하여 서로 다른 팀(예:
team:research
및team:analytics
)에서 소유하는 인스턴스를 구분할 수 있습니다. 비용 계산이나 예산 책정에 이 유형의 라벨을 사용할 수 있습니다.구성요소 라벨:
component:redis
,component:frontend
,component:ingest
,component:dashboard
를 예시로 들 수 있습니다.환경 또는 단계 라벨:
environment:production
과environment:test
를 예로 들 수 있습니다.상태 라벨:
state:active
,state:readytodelete
,state:archive
를 예로 들 수 있습니다.소유권 라벨: 작업을 담당하는 팀을 식별하는 데 사용됩니다(예:
team:shopping-cart
).- 가상 머신 라벨: 가상 머신에 라벨을 연결할 수 있습니다. 이전에 정의한 가상 머신 태그는 값이 없는 라벨로 나타납니다.
- 가상 머신(VM) 인스턴스
- 이미지
- 영구 디스크
- 영구 디스크 스냅샷
- Cloud Storage 버킷
- 네트워킹 리소스:
- VM 인스턴스의 경우
gcloud compute instances create
명령어를 사용합니다. - 스냅샷의 경우
gcloud compute disks snapshot
명령어를 사용합니다. - 이미지의 경우
gcloud compute images create
명령어를 사용합니다. - 디스크의 경우
gcloud compute disks create
명령어를 사용합니다. - VM 인스턴스의 경우
instances.insert()
메서드를 사용합니다. - 스냅샷의 경우
disks.createSnapshot()
메서드를 사용합니다. - 이미지의 경우
images.insert()
메서드를 사용합니다. - 디스크의 경우
disks.insert()
메서드를 사용합니다. 라벨을 추가할 각 리소스 페이지로 이동합니다.
라벨을 지정할 리소스 옆에 있는 체크박스를 선택합니다.
라벨 열을 펼치려면 정보 패널 표시를 클릭합니다.
패널에서 라벨을 선택합니다.
라벨을 추가하려면
라벨 추가를 클릭하고 키-값 쌍을 추가합니다.라벨을 업데이트하려면 기존 라벨을 선택하고 값을 수정합니다.
변경사항을 저장합니다.
- VM 인스턴스의 경우
gcloud compute instances update
명령어를 사용합니다. - 스냅샷의 경우
gcloud compute snapshots update
명령어를 사용합니다. - 이미지의 경우
gcloud compute images update
명령어를 사용합니다. - 디스크의 경우
gcloud compute disks update
명령어를 사용합니다. - 전달 규칙의 경우
gcloud compute forwarding-rules update
명령어를 사용합니다. - 고정 외부 IP 주소의 경우
gcloud beta compute addresses update
명령어를 사용합니다. - VPN 터널의 경우
gcloud beta compute vpn-tunnels update
명령어를 사용합니다. - VM 인스턴스의 경우
instances.setLabels()
메서드를 사용합니다. - 스냅샷의 경우
snapshots.setLabels()
메서드를 사용합니다. - 이미지의 경우
images.setLabels()
메서드를 사용합니다. - 디스크의 경우
disks.setLabels()
메서드를 사용합니다. - 전달 규칙의 경우
forwardingRules.setLabels()
메서드를 사용합니다. - 리전 고정 외부 IP 주소의 경우 베타
addresses.setLabels()
메서드를 사용합니다. - 전역 고정 외부 IP 주소의 경우 베타
globalAddresses.setLabels()
메서드를 사용합니다. - VPN 터널의 경우 베타
vpnTunnels.setLabels()
메서드를 사용합니다. - VM 인스턴스의 경우
gcloud compute instances describe
명령어를 사용합니다. - 스냅샷의 경우
gcloud compute snapshots describe
명령어를 사용합니다. - 이미지의 경우
gcloud compute images describe
명령어를 사용합니다. - 디스크의 경우
gcloud compute disks describe
명령어를 사용합니다. - 전달 규칙의 경우
gcloud compute forwarding-rules describe
명령어를 사용합니다. - 고정 외부 IP 주소의 경우
gcloud beta compute addresses describe
명령어를 사용합니다. - VPN 터널의 경우
gcloud beta compute vpn-gateways describe
명령어를 사용합니다. - VM 인스턴스의 경우
instances.get()
메서드를 사용합니다. - 스냅샷의 경우
snapshots.get()
메서드를 사용합니다. - 이미지의 경우
images.get()
메서드를 사용합니다. - 디스크의 경우
disks.get()
메서드를 사용합니다. - 전달 규칙의 경우
forwardingRules.get()
메서드를 사용합니다. - 리전 고정 외부 IP 주소의 경우 베타
addresses.get()
메서드를 사용합니다. - 전역 고정 외부 IP 주소의 경우 베타
globalAddresses.get()
메서드를 사용합니다. - VPN 터널의 경우 베타
vpnTunnels.get()
메서드를 사용합니다. - PROJECT_ID: 프로젝트 ID입니다.
- ZONE: VM의 영역입니다.
- VM_NAME: VM의 이름
- VM 인스턴스의 경우
instances.get()
메서드를 사용합니다. - 스냅샷의 경우
snapshots.get()
메서드를 사용합니다. - 이미지의 경우
images.get()
메서드를 사용합니다. - 디스크의 경우
disks.get()
메서드를 사용합니다. - 전달 규칙의 경우
forwardingRules.get()
메서드를 사용합니다. - 리전 고정 외부 IP 주소의 경우 베타
addresses.get()
메서드를 사용합니다. - 전역 고정 외부 IP 주소의 경우 베타
globalAddresses.get()
메서드를 사용합니다. - VPN 터널의 경우 베타
vpnTunnels.get()
메서드를 사용합니다. - VM 인스턴스의 경우
gcloud compute instances update
명령어를 사용합니다. - 스냅샷의 경우
gcloud compute snapshots update
명령어를 사용합니다. - 이미지의 경우
gcloud compute images update
명령어를 사용합니다. - 디스크의 경우
gcloud compute disks update
명령어를 사용합니다. - 전달 규칙의 경우
gcloud compute forwarding-rules update
명령어를 사용합니다. - 고정 외부 IP 주소의 경우
gcloud beta compute addresses update
명령어를 사용합니다. - VPN 터널의 경우
gcloud beta compute vpn-tunnels update
명령어를 사용합니다. - VM 인스턴스의 경우
instances.setLabels()
메서드를 사용합니다. - 스냅샷의 경우
snapshots.setLabels()
메서드를 사용합니다. - 이미지의 경우
images.setLabels()
메서드를 사용합니다. - 디스크의 경우
disks.setLabels()
메서드를 사용합니다. - 전달 규칙의 경우
forwardingRules.setLabels()
메서드를 사용합니다. - 리전 고정 외부 IP 주소의 경우 베타
addresses.setLabels()
메서드를 사용합니다. - 전역 고정 외부 IP 주소의 경우 베타
globalAddresses.setLabels()
메서드를 사용합니다. - VPN 터널의 경우 베타
vpnTunnels.setLabels()
메서드를 사용합니다. 필터링된 리소스 목록을 가져올 리소스 페이지로 이동합니다.
메시지가 표시되면 프로젝트를 선택하고 계속을 클릭합니다.
검색창에서 키, 값, 키-값 쌍을 입력합니다. 결과에 부분 일치 항목이 포함됩니다.
예를 들어
env:dev
라벨이 있는 리소스만 표시하려면 다음 중 하나를 입력하면 됩니다.env
키를 입력합니다.dev
값을 입력합니다.env:dev
키-값 쌍을 입력합니다.
- VM 인스턴스의 경우
gcloud compute instances list
명령어를 사용합니다. - 스냅샷의 경우
gcloud compute snapshots list
명령어를 사용합니다. - 이미지의 경우
gcloud compute images list
명령어를 사용합니다. - 디스크의 경우
gcloud compute disks list
명령어를 사용합니다. - 전달 규칙의 경우
gcloud compute forwarding-rules list
명령어를 사용합니다. - 고정 외부 IP 주소의 경우
gcloud beta compute addresses list
명령어를 사용합니다. - VPN 터널의 경우
gcloud beta compute vpn-tunnels list
명령어를 사용합니다. - VM 인스턴스의 경우
instances.list()
메서드를 사용합니다. - 스냅샷의 경우
snapshots.list()
메서드를 사용합니다. - 이미지의 경우
images.list()
메서드를 사용합니다. - 디스크의 경우
disks.list()
메서드를 사용합니다. - 전달 규칙의 경우
forwardingRules.list()
메서드를 사용합니다. - 리전 고정 외부 IP 주소의 경우 베타
addresses.list()
메서드를 사용합니다. - 전역 고정 외부 IP 주소의 경우 베타
globalAddresses.list()
메서드를 사용합니다. - VPN 터널의 경우 베타
vpnTunnels.list()
메서드를 사용합니다.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
라벨이란 무엇인가요?
라벨은 Google Cloud 인스턴스에 할당할 수 있는 키-값 쌍입니다. 이러한 리소스를 구성하고 필요한 세부사항으로 규모에 맞게 비용을 관리하는 데 도움이 됩니다. 각 리소스에 라벨을 연결한 후 이 라벨을 기준으로 리소스를 필터링할 수 있습니다. 라벨에 대한 정보는 청구 요금을 라벨별로 분류할 수 있는 결제 시스템으로 전달됩니다. 기본 제공되는 결제 보고서를 통해 리소스 라벨별로 비용을 필터링하고 그룹화할 수 있습니다. 라벨을 사용하여 결제 데이터 내보내기를 쿼리할 수도 있습니다.
라벨 요구사항
리소스에 적용된 라벨은 다음 요구사항을 충족해야 합니다.
이러한 한도는 각 라벨의 키와 값 및 라벨이 있는 개별 Google Cloud 리소스에 적용됩니다. 한 프로젝트의 모든 리소스에 적용할 수 있는 라벨 수에는 제한이 없습니다.
라벨의 일반적인 사용 사례
다음은 라벨의 몇 가지 일반적인 사용 사례입니다.
모든 API 호출의 타임스탬프 또는 개별 값과 같은 다수의 고유 라벨을 만들지 않는 것이 좋습니다. 이 접근 방식의 문제는 값이 자주 변경되거나 카탈로그를 복잡하게 하는 키로 인해 리소스를 효과적으로 필터링하고 보고하기 어렵다는 것입니다.
라벨 및 태그
라벨은 리소스에 대해 쿼리 가능한 주석으로 사용될 수 있지만 정책에 조건을 설정하는 데는 사용할 수 없습니다. 태그를 사용하면 정책을 세밀하게 제어하여 리소스에 특정 태그가 있는지 여부에 따라 정책을 조건부로 허용하거나 거부할 수 있습니다. 자세한 내용은 태그 개요를 참조하세요.
Compute Engine에서 라벨 사용
다음 Compute Engine 리소스에 라벨을 적용할 수 있습니다.
다음과 같은 관련 Google Cloud 구성요소에 라벨을 사용할 수도 있습니다.
예를 들어 다음 라벨을 리소스에 키-값 쌍으로 추가할 수 있습니다.
{ "labels": { "vmrole": "webserver", "environment": "production", "location": "west",... } }
라벨을 사용하여 리소스 만들기
새 리소스를 만들 때 리소스에 라벨을 적용할 수 있습니다.
콘솔
gcloud
라벨을 추가하려면
create
하위 명령어를--labels
플래그와 함께 사용합니다. 다음gcloud
명령어를 사용하여 Compute Engine 리소스에 라벨을 추가할 수 있습니다.예시
gcloud compute instances create ... \ --labels webserver=backend,media=images
API
API에서 새 리소스를 추가하기 위한
POST
요청을 하는 동안 요청 본문에labels
속성을 추가하여 새 리소스에 라벨을 적용합니다.예를 들어 다음 스니펫은
webserver:backend
및media:images
라벨을 사용하여 VM 인스턴스를 만들기 위해POST
요청을 수행합니다.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances { "name": "myVM", "machineType": "zones/us-central1-f/machineTypes/custom-2-15360-ext", ..., "labels": { "webserver": "backend", "media": "images" } }
기존 리소스에 라벨 추가 또는 업데이트
Google Cloud 콘솔, gcloud CLI 또는 Compute Engine API를 사용하여 리소스에 라벨을 추가하거나 기존 라벨을 업데이트할 수 있습니다. 전달 규칙의 라벨을 추가하거나 업데이트하려면 gcloud CLI 또는 Compute Engine API를 사용합니다.
콘솔
gcloud
라벨을 추가하거나 변경하려면
--update-labels
플래그와 함께update
하위 명령어를 사용합니다. 다음gcloud
명령어를 사용하여 Compute Engine 리소스의 라벨을 업데이트할 수 있습니다.예시
gcloud compute disks update example-disk \ --update-labels backend=webserver,media=images
이미 존재하는 라벨 키를 제공할 경우 Google Cloud CLI가 기존 키를 새 라벨 값으로 업데이트합니다. 새 키를 입력하면 도구에서 라벨 목록에 새 키를 추가합니다.
API
라벨을 추가하거나 업데이트하려면 최신 디지털 지문과 적용할 라벨의 전체 목록을 사용하여 리소스의
setLabels
메서드에 대해POST
요청을 실행합니다.메타데이터 및 태그와 마찬가지로 리소스에 유지할 기존 라벨이 있는 경우 추가할 새 라벨과 함께 이러한 라벨을 요청에 포함해야 합니다.
예를 들어 다음 스니펫은
environment:test
및an-existing-tag:yes
라벨을 설정하기 위해 VM 인스턴스에POST
요청을 수행합니다.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels { "labels": { "environment": "test", "an-existing-tag": "yes" }, "labelFingerprint": "42WmSpB8rSM=" }
라벨 보기
Google Cloud 콘솔, gcloud CLI 또는 Compute Engine API를 사용하여 리소스의 라벨을 볼 수 있습니다. 전달 규칙의 라벨을 보려면 gcloud CLI 또는 Compute Engine API를 사용합니다.
콘솔
gcloud
라벨을 보려면
describe
하위 명령어를 사용합니다. 다음gcloud
명령어를 사용하여 Compute Engine 리소스의 라벨을 볼 수 있습니다.예시
gcloud compute disks describe example-disk
출력에는 다음 라벨이 포함됩니다.
... id: '5047929990219134234' kind: compute#disk labelFingerprint: GHZ1Un209U=0 labels: environment: dev department: finance ...
API
라벨을 검색하려면 다음 리소스에
GET
요청을 수행합니다.예를 들어 다음 스니펫은 VM 인스턴스의 라벨을 검색하기 위해
GET
요청을 수행합니다.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
다음을 바꿉니다.
API 요청의 라벨 디지털 지문 가져오기
API에서 라벨을 업데이트하거나 추가할 때 다른 요청과 충돌하지 않도록 최신 라벨 디지털 지문을 요청과 함께 제공해야 합니다. 디지털 지문은 API 요청에만 필요합니다. Google Cloud 콘솔과 Google Cloud CLI 도구에는 디지털 지문이 필요하지 않습니다.
최신
labelsFingerprint
를 가져오려면 다음 리소스에GET
요청을 실행합니다.예를 들어 다음 스니펫은 VM 인스턴스의
labelsFingerprint
를 가져옵니다.GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
응답에
labelFingerprint
속성이 포함되어 있습니다.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=" }
라벨 삭제
Google Cloud 콘솔, gcloud CLI 또는 Compute Engine API를 사용하여 리소스에서 라벨을 삭제할 수 있습니다. 전달 규칙의 라벨을 삭제하려면 gcloud CLI 또는 Compute Engine API를 사용합니다.
콘솔
gcloud
라벨을 추가하거나 변경하려면
--remove-labels
플래그와 함께update
하위 명령어를 사용합니다. 다음gcloud
명령어를 사용하여 Compute Engine 리소스의 라벨을 삭제할 수 있습니다.예시
gcloud compute disks update example-disk \ --remove-labels backend,media
API
라벨을 삭제하려면 최신 디지털 지문과 적용할 라벨의 전체 목록을 사용하여 리소스의
setLabels
메서드에 대해POST
요청을 실행합니다.최신
labelsFingerprint
및 비어 있는 라벨 목록을 제공하여 모든 라벨을 삭제하거나 유지하려는 라벨 목록을 제공합니다(삭제하려는 라벨은 생략). 예를 들어 다음 스니펫은 VM에서 모든 라벨을 삭제합니다.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setLabels { "labels": { }, "labelFingerprint": "42WmSpB8rSM=" }
라벨을 사용하여 검색 필터링
Google Cloud 콘솔, gcloud CLI 또는 Compute Engine API를 사용하여 라벨을 기준으로 리소스를 검색하고 결과를 필터링할 수 있습니다. 라벨을 기준으로 전달 규칙을 필터링하려면 gcloud CLI 또는 Compute Engine API를 사용하세요.
콘솔
gcloud
라벨을 기준으로 필터링하려면
--filter
플래그를 지정하여 다음 리소스의list
하위 명령어를 사용합니다.--filter
플래그의 값은labels.KEY=VALUE
형식이어야 합니다. 예를 들어env
키 및dev
값으로 라벨을 필터링하려면 다음 명령어를 실행하면 됩니다.gcloud compute instances list \ --filter labels.env=dev
gcloud CLI의 필터 구문에 대한 상세 설명은
gcloud topic filters
문서를 참조하세요.API
리소스를 필터링하려면 다음 리소스의
list
메서드에GET
요청을 수행하고 필터 필드를 포함하세요.예를 들어
env:dev
키-값 쌍이 있는 라벨이 있는 프로젝트myproject
및 영역us-central1-a
의 모든 VM을 나열하려면list
요청에서 필터 필드를labels.env:dev
로 설정합니다. 필터 필드를 쿼리 문자열 매개변수로 포함하는 경우 URL로 인코딩된 매개변수 값filter=labels.env%3Adev
를 사용하세요.GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances?filter=labels.env%3Adev
자세한 내용은 Compute Engine API 참조에서
filter
문서 문서를 참조하세요.VM 라벨과 네트워크 태그 사이의 관계
과거에는 라벨과 태그가 관련되어 있었습니다. 예를 들어 VM에
webserver:test
라벨을 추가한 경우 Compute Engine에서 자동으로webserver
태그를 VM에 추가했습니다.이제 라벨과 태그는 분리되어 있습니다. VM에 라벨을 만드는 경우 Compute Engine에서 VM의 태그를 생성하지 않습니다. VM에 태그를 만들어야 하는 경우 태그를 수동으로 생성해야 합니다.
태그를 만드는 방법을 알아보려면 네트워크 태그를 참조하세요.
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-09-05(UTC)
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }] -