가상 머신(VM) 인스턴스는 메타데이터 서버에 메타데이터를 저장합니다. VM은 추가 승인 없이 메타데이터 서버 API에 자동으로 액세스할 수 있습니다. 메타데이터는 키-값 쌍으로 저장됩니다.
이 문서에서는 VM 메타데이터에 대한 개요를 제공하고 VM 메타데이터의 유형 및 속성에 대해 설명합니다.
VM 메타데이터 사용
다음 섹션에서는 메타데이터 항목을 사용하여 VM을 관리할 수 있는 몇 가지 시나리오에 대해 설명합니다.
시작 및 종료 스크립트
특히 메타데이터 서버를 시작 및 종료 스크립트와 함께 사용하면 유용합니다. 메타데이터 서버를 프로그래매틱 방식으로 사용하여 추가 승인 없이 인스턴스에 대한 고유한 정보를 가져올 수 있기 때문입니다.
예를 들어 VM의 외부 IP에 대한 메타데이터 키-값 쌍을 가져오는 시작 스크립트를 작성하고 스크립트에서 IP를 사용하여 데이터베이스를 설정할 수 있습니다. Compute Engine 사전 정의된 메타데이터 키는 모든 VM에서 동일하므로 각 VM에 대해 키를 업데이트할 필요 없이 스크립트를 재사용할 수 있습니다. 따라서 덜 불안정한 애플리케이션 코드를 작성할 수 있습니다.
- 시작 스크립트에 대한 자세한 내용은 시작 스크립트 개요를 참조하세요.
- 종료 스크립트에 대한 자세한 내용은 종료 스크립트 실행을 참조하세요.
호스트 유지보수
메타데이터 서버는 scheduling/
메타데이터 디렉터리 항목 및 maintenance-event
속성을 통해 VM 예약 옵션에 대한 정보를 제공합니다. 이러한 메타데이터 값을 사용하여 유지보수 이벤트가 발생하려고 할 때 해당 이벤트에 대해 환경을 준비할 수 있도록 알림을 받을 수 있습니다.
자세한 내용은 라이브 마이그레이션 알림 받기를 참조하세요.
게스트 속성
게스트 속성은 애플리케이션이 VM에서 실행되는 동안 쓸 수 있는 특정 유형의 커스텀 메타데이터입니다. 게스트 속성은 자주 변경되지 않는 소량의 데이터가 필요한 경우에만 사용합니다. 게스트 속성에 대한 자세한 내용은 게스트 속성 설정 및 쿼리를 참조하세요.
파트너 속성
파트너 속성은 특정 유형의 인스턴스 메타데이터입니다. Google Cloud 서비스는 파트너 속성을 사용하여 네임스페이스를 만들어 여기에 인스턴스 메타데이터 항목을 정의합니다. 인스턴스 메타데이터 항목의 값을 설정, 업데이트, 삭제, 확인하여 해당 서비스를 구성할 수 있습니다.
예를 들어 Compute Engine에 관리형 워크로드 ID를 사용하는 경우 서비스 네임스페이스의 메타데이터 항목에서 구성 세부정보를 지정할 수 있습니다.
메타데이터 보안 고려사항
메타데이터 서버에서 정보를 가져오도록 요청할 경우 요청과 이후의 메타데이터 응답은 VM을 실행하는 물리적 호스트에 그대로 있습니다.
하지만 메타데이터 URL을 쿼리할 수 있는 모든 프로세스에서 메타데이터 서버의 모든 값에 액세스할 수 있습니다. 여기에는 서버에 쓰는 모든 커스텀 메타데이터 값이 포함됩니다. 메타데이터 서버에 민감한 값을 쓰거나 타사 프로세스를 실행할 때 주의하는 것이 좋습니다.
사전 정의 및 커스텀 메타데이터 키
각 메타데이터 항목은 메타데이터 서버에 키-값 쌍으로 저장됩니다. 메타데이터 키는 대소문자를 구분합니다. 키는 사전 정의된 또는 커스텀 메타데이터 키일 수 있습니다.
사전 정의된 메타데이터 키
사전 정의된 메타데이터 키는 Compute Engine에서 생성된 메타데이터 키입니다.
VM을 만들면 Compute Engine이 VM 인스턴스 ID 또는 프로젝트 ID와 같이 해당 VM에서 이러한 일부 키에 대해 메타데이터 값을 자동으로 설정합니다. Compute Engine이 값을 자동으로 설정하지 않는 사전 정의된 키의 경우 시스템 구성에 따라 제공되는 값 집합 중에서 선택할 수 있습니다.
예를 들어 특정 VM에 대해 OS 로그인을 사용 설정하려면 enable-oslogin
사전 정의된 키의 값을 해당 VM에 대해 TRUE
로 설정하면 됩니다. 해당 VM에 대해 OS 로그인을 사용 중지하려면 키 값을 FALSE
로 설정하면 됩니다.이러한 키의 값만 업데이트할 수 있고 키 자체는 업데이트할 수 없습니다.
사전 정의된 메타데이터 키 관련 정보와 이러한 키 목록은 사전 정의된 메타데이터 키를 참조하세요.
커스텀 메타데이터 키
커스텀 메타데이터를 사용하면 개별 VM 또는 프로젝트에서 자체 메타데이터 키-값 쌍을 만들고 사용할 수 있습니다. 새 커스텀 메타데이터 키를 추가하고 기존 키의 값을 업데이트하고 필요하지 않은 커스텀 메타데이터 항목을 삭제할 수 있습니다. 커스텀 메타데이터 설정은 프로젝트에서 VM에 임의의 값을 전달하는 데 유용합니다. 또한 시작 및 종료 스크립트를 만드는 데에도 유용합니다.
VM에 대해 커스텀 메타데이터를 추가, 업데이트, 삭제하는 방법은 커스텀 메타데이터 구성을 참조하세요.
메타데이터 유형
VM 메타데이터 항목은 개별 VM 또는 프로젝트와 관련된 정보를 제공할 수 있습니다. 메타데이터는 메타데이터를 설정한 범위에 따라 프로젝트, 영역, 인스턴스 메타데이터로 구분됩니다.
프로젝트 메타데이터
프로젝트 메타데이터는 프로젝트 범위에서 정의되며 프로젝트의 모든 VM에 적용되는 정보를 제공합니다. 이 메타데이터를 설정하면 메타데이터 항목이 해당 프로젝트의 모든 VM에 전파됩니다.
사전 정의 및 커스텀 메타데이터 키를 둘 다 사용하여 프로젝트 메타데이터를 설정할 수 있습니다. 사전 정의된 프로젝트 메타데이터 키 및 커스텀 프로젝트 전역 메타데이터 설정 방법을 자세히 알아보세요.
영역별 메타데이터
영역 메타데이터는 프로젝트 내의 영역 범위에 정의되며 해당 프로젝트의 특정 영역에 있는 VM에 대한 정보를 제공합니다. 영역 메타데이터를 설정하면 메타데이터 항목이 해당 프로젝트의 구성된 영역에 있는 모든 VM에 전파됩니다. 프로젝트 메타데이터와 비교할 때 영역 메타데이터는 결함 격리에 도움이 되고 우수한 신뢰성을 제공합니다.
Compute Engine은 영역 메타데이터에 사전 정의된 키를 제공하지 않습니다. 영역 메타데이터를 설정하려면 자체 커스텀 메타데이터 키를 만들어야 합니다. 커스텀 영역 메타데이터 설정 방법을 자세히 알아보세요.
인스턴스 메타데이터
인스턴스 메타데이터는 특정 VM 인스턴스에 대한 정보를 제공합니다. 각 VM 인스턴스에 대해 인스턴스 메타데이터를 개별적으로 설정합니다.
사전 정의 및 커스텀 메타데이터 키를 모두 사용해서 인스턴스 메타데이터를 설정할 수 있습니다. 사전 정의된 인스턴스 메타데이터 키 및 커스텀 인스턴스 메타데이터 설정 방법에 대해 자세히 알아보세요.
메타데이터 정렬 방법
Compute Engine은 VM 및 프로젝트에 대한 메타데이터 키와 값을 디렉터리 목록으로 저장하고 유지보수합니다. 메타데이터 유형에 따라 Compute Engine은 다음 디렉터리 중 하나에 메타데이터 항목을 저장합니다.
메타데이터 유형 | 디렉터리 |
---|---|
|
http://metadata.google.internal/computeMetadata/v1/project/ |
인스턴스 메타데이터 | http://metadata.google.internal/computeMetadata/v1/instance/ |
각 디렉터리에는 키-값 쌍의 형식으로 메타데이터 항목이 저장됩니다. 또한 일부 메타데이터 항목은 다른 메타데이터 키가 있는 디렉터리입니다. 디렉터리로 작동하는 메타데이터 항목은 메타데이터 키 이름에서 후행 슬래시(/
)로 표시됩니다. 예를 들어 /project/attributes/
는 다른 메타데이터 키가 포함된 project/
디렉터리 아래의 디렉터리입니다. 자체 메타데이터 디렉터리 목록을 만들려면 커스텀 메타데이터 항목을 만들 때 메타데이터 키 이름에 후행 슬래시(/
)를 사용해야 합니다.
프로젝트 및 영역 메타데이터 항목은 같은 project/
디렉터리에 저장됩니다. 프로젝트 수준과 영역 수준에서 VM의 동일한 커스텀 메타데이터 키에 서로 다른 값을 설정하면 이러한 키의 영역 메타데이터 값이 해당 영역에 있는 프로젝트 메타데이터 값보다 우선 적용됩니다.
- 이미 프로젝트 메타데이터 값이 있는 메타데이터 키에 영역 메타데이터 값을 추가하면 Compute Engine에서 지정된 영역에 있는 VM의 프로젝트 메타데이터 값을 재정의하고
/project
디렉터리를 영역 값으로 업데이트합니다. - 이미 영역 메타데이터 값이 있는 메타데이터 키에 새로운 프로젝트 전체 메타데이터 값을 추가하면 아무 것도 변경되지 않습니다. Compute Engine은 특정 영역의
/project
디렉터리에 영역 메타데이터 값을 보관합니다. - 특정 영역의 커스텀 메타데이터 키에 영역 메타데이터 값을 지정하지 않았지만 키에 프로젝트 메타데이터 값이 있으면 VM에 해당 영역의 프로젝트 메타데이터 값이 계속 포함됩니다.
예를 들어 key-1=value-1
의 프로젝트 전역 메타데이터 쌍을 정의한다고 가정해 보세요. 또한 us-central1-a
영역에 대해서만 key-1=zonal-value-1
의 영역 메타데이터 쌍을 정의한다고 가정해 보세요. 프로젝트의 us-central1-a
영역에 있는 모든 VM에 key-1=zonal-value1
이 메타데이터 쌍으로 상속됩니다. 메타데이터 쌍은 key-1
에 영역 메타데이터를 설정하지 않은 다른 영역의 모든 VM에 대한 key-1=value-1
을 유지됩니다.
다음 단계
- Google Cloud에서 제공하는 사전 정의된 메타데이터 키 자세히 알아보기
- 커스텀 메타데이터 항목 구성 방법 알아보기
- 게스트 속성 설정 및 쿼리 방법 알아보기
- 메타데이터 키의 값을 설정한 후 VM 또는 프로젝트에 대한 VM 메타데이터 정보 보기 및 쿼리 방법 알아보기
- 메타데이터 서버에서 라이브 마이그레이션 알림 받기 방법 알아보기