이 페이지에서는 인스턴스 템플릿을 사용하여 VM 인스턴스를 만드는 방법을 설명합니다. 인스턴스 템플릿은 VM 인스턴스의 속성을 정의하는 API 리소스입니다. 인스턴스 템플릿에서 머신 유형, OS 이미지, 영구 디스크 구성, 메타데이터, 시작 스크립트 등의 속성을 정의한 다음 해당 인스턴스 템플릿을 사용하여 개별 VM 인스턴스 또는 관리형 인스턴스의 그룹을 만들 수 있습니다.
인스턴스 템플릿에서 VM 인스턴스를 만들 때 기본 동작은 VM 인스턴스 이름과 해당 인스턴스가 위치할 영역을 제외하고 템플릿에 지정된 속성과 동일한 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.
템플릿에서 VM 인스턴스 만들기를 클릭합니다.
템플릿을 선택하고 계속을 클릭합니다.
VM 이름을 지정하고 필요에 따라 추가로 맞춤설정을 수행합니다.
만들기를 클릭합니다.
추가 설정 세부정보는 이미지에서 VM 인스턴스 만들기를 참조하세요.
VM_NAME
: 인스턴스 이름입니다.INSTANCE_TEMPLATE_NAME
: 사용할 인스턴스 템플릿의 이름입니다. 리전 인스턴스 템플릿의 경우 템플릿의 전체 또는 부분 URL을 지정해야 합니다. 전체 URL 예시는https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
이고 부분 URL은projects/example-project/regions/us-central1/instanceTemplates/example-regional-instance-template
입니다.- 기본 필드를 재정의하면 인스턴스 템플릿의 해당 기본 필드가 요청의 기본 필드 값으로 바뀝니다. 기본 필드에는
machineType
,sourceImage
,name
등이 포함됩니다. - 반복되는 필드를 재정의하면 해당 속성의 반복되는 모든 값이 요청에 제공된 해당 값으로 바뀝니다.
반복되는 필드는 일반적으로
list
유형의 속성입니다. 예를 들어disks
및networkInterfaces
는 반복되는 필드입니다. nested object
를 재정의하면 인스턴스 템플릿의 객체가 요청의 해당 객체 사양과 병합됩니다. 중첩된 객체가 반복되는 필드 내에 있는 경우 해당 필드는 반복되는 필드의 규칙에 따라 처리됩니다. 라벨은 이 규칙의 예외이며object
유형이더라도 반복되는 필드로 간주됩니다.- 선점형 VM 인스턴스 문서를 읽어보기
- 종료 스크립트 알아보기
- 선점형 인스턴스 가격 책정 참조
- 인스턴스에 연결
Go
이 페이지의 Go 샘플을 로컬 개발 환경에서 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
자세한 내용은 다음을 참조하세요: Set up authentication for a local development environment.
자바
이 페이지의 Java 샘플을 로컬 개발 환경에서 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
자세한 내용은 다음을 참조하세요: Set up authentication for a local development environment.
Node.js
이 페이지의 Node.js 샘플을 로컬 개발 환경에서 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
자세한 내용은 다음을 참조하세요: Set up authentication for a local development environment.
Python
이 페이지의 Python 샘플을 로컬 개발 환경에서 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
자세한 내용은 다음을 참조하세요: Set up authentication for a local development environment.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
인스턴스 템플릿에서 VM 인스턴스 만들기
리전 또는 전역 인스턴스 템플릿을 사용하여 VM 인스턴스를 만들 수 있습니다. 인스턴스 템플릿의 설명대로 정확하게 인스턴스를 만들려면 다음 안내를 따르세요.
콘솔
gcloud
리전 또는 전역 인스턴스 템플릿에서 VM을 만들려면 일반 인스턴스를 만들 때 사용하는 명령어와 동일한
gcloud compute instances create
명령어를 사용하되--source-instance-template
플래그를 추가합니다.gcloud compute instances create VM_NAME \ --source-instance-template INSTANCE_TEMPLATE_NAME
다음을 바꿉니다.
예를 들면 다음과 같습니다.
gcloud compute instances create example-instance \ --source-instance-template my-instance-template
Go
자바
Node.js
Python
REST
리전 또는 전역 인스턴스 템플릿에서 VM을 만들려면 인스턴스를 만들 일반 요청을 작성하되
sourceInstanceTemplate
쿼리 매개변수와 이 다음에 인스턴스 템플릿에 대한 정규화된 경로를 포함합니다.POST https://compute.googleapis.com/compute/v1/projects/ PROJECT_ID/zones/ZONE/ instances?sourceInstanceTemplate=INSTANCE_TEMPLATE_NAME
요청 본문에서 VM 인스턴스에 대해
name
을 제공합니다.{ "name": "example-instance" }
예를 들어 다음 스니펫에는
https://compute.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/example-instance-template
템플릿에 대한 정규화된 경로가 포함됩니다.POST https://compute.googleapis.com/ compute/v1/projects/myproject/zones/us-central1-a/instances?sourceInstanceTemplate= https://compute.googleapis.com/compute/v1/projects/myproject/global/ instanceTemplates/example-instance-template
{ "name": "example-instance" }
재정의를 사용하여 인스턴스 템플릿에서 VM 인스턴스 만들기
인스턴스 템플릿을 사용하여 VM 인스턴스를 시작하는 경우 기본 동작은 인스턴스 이름과 영역을 제외하고는 인스턴스 템플릿에 설명된 대로 정확히 VM 인스턴스를 만드는 것입니다.
기본적으로 인스턴스 템플릿을 기반으로 인스턴스를 만들지만 몇가지 변경 사항을 포함하려는 경우 재정의 동작을 사용할 수 있습니다. 재정의 동작을 사용하려면 인스턴스를 만들 때 속성을 전달하여 기존 인스턴스 템플릿을 재정의합니다.
gcloud
gcloud CLI를 사용하여
--source-instance-template
플래그가 포함된 인스턴스를 만드는 요청을 하고 해당gcloud
플래그와 함께 원하는 속성을 재정의합니다. 적용 가능한 플래그 목록을 보려면gcloud
참조를 검토하세요.예를 들어 인스턴스 템플릿의 머신 유형, 메타데이터, 운영체제, Persistent Disk 부팅 디스크, 보조 디스크를 재정의하도록 다음 플래그를 제공합니다.
gcloud compute instances create example-instance \ --source-instance-template example-instance --machine-type e2-standard-2 \ --image-family debian-9 --image-project debian-cloud \ --metadata bread=butter --disk=boot=no,name=my-override-disk
Go
자바
Node.js
Python
REST
API에서
sourceInstanceTemplate
쿼리 매개변수를 사용하고인스턴스를 생성하도록 일반 요청을 작성할 때 요청 본문에 재정의할 모든 필드를 제공합니다.API의 재정의 동작은 RFC 7396에서 설명하는 JSON 병합 패치 규칙을 따릅니다.
구체적으로는 다음과 같습니다.
예를 들어 2개의 비부팅 디스크가 포함된 인스턴스 템플릿이 있으나 그중 하나의 디스크를 재정의하고자 한다고 가정해 보겠습니다. 유지할 모든 디스크를 포함하여 요청에 전체
disks
사양을 제공해야 합니다.이 요청의 URL은 다음과 같습니다.
POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances? sourceInstanceTemplate=https://compute.googleapis.com/compute/v1/projects/myproject/global/instanceTemplates/example-instance-template
요청 본문은 다음과 같습니다.
{ "disks": [ { # Since you are overriding the repeated disk property, you must # specify a boot disk in the request, even if it is already # specified in the instance template "autoDelete": true, "boot": true, "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/family/debian-8" }, "mode": "READ_WRITE", "type": "PERSISTENT" }, { # New disk you want to use "autoDelete": false, "boot": false, "mode": "READ_WRITE", "source": "zones/us-central1-f/disks/my-override-disk", "type": "PERSISTENT" }, { # Assume this disk is already specified in instance template, but # you must specify it again since you are overriding the disks # property "autoDelete": false, "boot": false, "mode": "READ_WRITE", "source": "zones/us-central1-f/disks/my-other-disk-to-keep", "type": "PERSISTENT" } ], "machineType": "zones/us-central1-f/machineTypes/e2-standard-2", "name": "example-instance" }
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 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":"기타" }] -