VM 인스턴스 만들기 및 시작

이 문서에서는 부팅 디스크 이미지, 부팅 디스크 스냅샷 또는 컨테이너 이미지를 사용하여 가상 머신(VM) 인스턴스를 만드는 방법을 설명합니다. 일부 이미지보안 VM 기능을 지원하며, 보안 VM 기능은 UEFI 규격 펌웨어, 보안 부팅, vTPM 보호가 적용된 신중한 부팅과 같은 보안 기능을 제공합니다. 보안 VM에서 vTPM 및 무결성 모니터링은 기본적으로 사용 설정되어 있습니다.

VM을 생성하는 동안 VM에 대해 하나 이상의 디스크를 만들 수 있습니다. 이미 만들어진 VM에 디스크를 추가할 수도 있습니다. VM 인스턴스를 만들면 Compute Engine에서 이 인스턴스를 자동으로 시작합니다.

VM을 만드는 동안 네트워크 인터페이스를 여러 개 추가할 수도 있습니다. VM이 인터넷에 대한 위협에 노출되지 않도록 하려면 인스턴스에 네트워크 인터페이스를 추가할 때 외부 IP 주소를 생략하면 됩니다. 이러한 경우 Cloud NAT를 구성하지 않는 한 동일한 VPC 네트워크 또는 연결된 네트워크의 다른 VM에서만 VM에 액세스할 수 있습니다.

VM을 처음 만드는 경우 빠른 시작: Linux VM 사용 또는 빠른 시작: Windows Server VM 사용을 참조하세요.

더 구체적이거나 복잡한 VM 구성에 대해서는 다음 리소스를 참조하세요.

기존 라이선스를 가져 오는 경우 단독 테넌트 노드로 사용자 라이선스 사용하기를 참조하세요.

시작하기 전에

이미지에서 VM 인스턴스 만들기

이 섹션에서는 공개 OS 이미지 또는 커스텀 이미지에서 VM을 만드는 방법을 설명합니다. VM은 부트로더, 부트 파일 시스템, OS 이미지를 포함합니다.

Compute Engine에서 사용 가능한 공개 이미지 목록 보기

공개 이미지를 사용하여 VM을 만들기 전에 Compute Engine에서 사용할 수 있는 공개 이미지 목록을 살펴보세요.

각 공개 이미지에서 사용할 수 있는 기능에 대한 자세한 내용은 운영체제별 기능 지원을 참조하세요.

Console

  1. Google Cloud Console에서 이미지 페이지로 이동합니다.

    이미지로 이동

gcloud

  1. 다음 명령어를 실행합니다.

    gcloud compute images list
  2. 이미지 이름 또는 이미지 계열과 이미지가 포함된 프로젝트의 이름을 기록해 둡니다.

  3. 선택사항: 이미지에서 보안 VM 기능을 지원하는지 확인하려면 다음 명령어를 실행합니다.

    gcloud compute images describe IMAGE_NAME \
        --project=IMAGE_PROJECT
    

    다음을 바꿉니다.

    • IMAGE_NAME: 보안 VM 기능 지원을 확인할 이미지의 이름입니다.
    • IMAGE_PROJECT: 이미지가 포함된 프로젝트입니다.

    이미지가 보안 VM 기능을 지원하는 경우 출력에 type: UEFI_COMPATIBLE 행이 표시됩니다.

API

  1. 다음 명령어를 실행합니다.

    GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/
    
  2. 이미지 이름 또는 이미지 계열과 이미지가 포함된 프로젝트의 이름을 기록해 둡니다.

  3. 선택사항: 이미지에서 보안 VM 기능을 지원하는지 확인하려면 다음 명령어를 실행합니다.

    GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/IMAGE_NAME
    

    다음을 바꿉니다.

    • IMAGE_PROJECT: 이미지가 포함된 프로젝트입니다.
    • IMAGE_NAME: 보안 VM 기능 지원을 확인할 이미지의 이름입니다.

    이미지가 보안 VM 기능을 지원하는 경우 출력에 type: UEFI_COMPATIBLE 행이 표시됩니다.

공개 이미지에서 VM 인스턴스 만들기

Google, 오픈소스 커뮤니티, 타사 공급업체는 공개 OS 이미지를 제공하고 유지보수합니다. 기본적으로 모든 Google Cloud 프로젝트는 공개 OS 이미지를 사용하여 VM을 만들 수 있습니다. 그러나 Cloud 프로젝트에신뢰할 수 있는 이미지 목록이 정의된 경우에는 해당 목록의 이미지만 사용하여 VM을 만들 수 있습니다.

로컬 SSD보안 VM 이미지를 만들면 무결성 모니터링 또는 vTPM(virtual Trusted Platform Module)으로 데이터를 보호할 수 없습니다.

Console

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 프로젝트를 선택하고 계속을 클릭합니다.

  3. 인스턴스 만들기를 클릭합니다.

  4. VM의 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

  5. 선택사항: 이 VM의 영역을 변경합니다. Compute Engine은 각 리전 내의 영역 목록의 순서를 무작위로 지정하여 여러 영역에서 사용하도록 권장합니다.

  6. VM의 머신 구성을 선택합니다.

  7. 부팅 디스크 섹션에서 변경을 클릭한 후 다음을 수행합니다.

    1. 공개 이미지 탭에서 다음을 선택합니다.
      • 운영체제
      • OS 버전
      • 부팅 디스크 유형
      • 부팅 디스크 크기
    2. 선택사항: 고급 구성 옵션의 경우 고급 구성 표시를 클릭합니다.
    3. 부팅 디스크 옵션을 확인하려면 선택을 클릭합니다.
  8. 방화벽 섹션에서 VM에 대한 HTTP 또는 HTTPS 트래픽을 허용하려면 HTTP 트래픽 허용 또는 HTTPS 트래픽 허용을 선택합니다. 이 중 하나를 선택하면 Compute Engine에서 VM에 네트워크 태그를 추가합니다. 방화벽 규칙과 VM이 연결됩니다. 그런 다음 Compute Engine은 tcp:80(HTTP) 또는 tcp:443(HTTPS)에서 들어오는 모든 트래픽을 허용하는 인그레스 방화벽 규칙을 만듭니다.

  9. 선택사항: 보안 VM 기능을 지원하는 OS 이미지를 선택한 경우 다음과 같이 보안 VM 설정을 수정할 수 있습니다. 보안 VM 설정을 수정하려면 네트워킹, 디스크, 보안, 관리, 단독 테넌시 섹션에서 보안 섹션을 펼치고 필요에 따라 다음을 수행합니다.

  10. 만들기를 클릭하여 VM을 만들고 시작합니다.

gcloud

  1. 공개 이미지를 선택합니다. 이미지 이름 또는 이미지 계열과 이미지가 포함된 프로젝트의 이름을 기록해 둡니다.
  2. gcloud compute instances create 명령어를 사용하여 이미지 계열 또는 특정 버전의 OS 이미지로 VM을 만듭니다.

    선택적 --shielded-secure-boot 플래그를 지정하면 Compute Engine에서 세 가지 보안 VM 기능을 모두 사용 설정하여 VM을 만듭니다.

    Compute Engine에서 VM을 시작한 후 보안 VM 옵션을 수정하려면 VM을 중지해야 합니다.

    gcloud compute instances create VM_NAME \
        [--image=IMAGE | --image-family=IMAGE_FAMILY] \
        --image-project=IMAGE_PROJECT
        --machine-type=MACHINE_TYPE

    다음을 바꿉니다.

    • VM_NAME: 새 VM의 이름입니다.
    • IMAGE 또는 IMAGE_FAMILY: 다음 중 하나를 지정합니다.

      • IMAGE: 공개 이미지의 특정 버전입니다.

        예를 들면 --image=debian-10-buster-v20200309입니다.

      • IMAGE_FAMILY: 이미지 계열입니다.

        이렇게 하면 지원 중단되지 않은 최신 OS 이미지를 사용하여 VM이 생성됩니다. 예를 들어 --image-family=debian-10을 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

    • IMAGE_PROJECT: 이미지가 포함된 프로젝트입니다.

    • MACHINE_TYPE: 새 VM의 머신 유형(사전 정의 또는 커스텀)입니다.

      영역에서 사용 가능한 머신 유형 목록을 보려면 --zones 플래그와 함께 gcloud compute machine-types list 명령어를 사용합니다.

  3. Compute Engine에서 VM을 만들었는지 확인합니다.

    gcloud compute instances describe VM_NAME
    

    VM_NAME을 VM의 이름으로 바꿉니다.

API

  1. 공개 이미지를 선택합니다. 이미지 이름 또는 이미지 계열과 이미지가 포함된 프로젝트의 이름을 기록해 둡니다.
  2. instances.insert 메서드를 사용하여 이미지 계열 또는 특정 버전의 OS 이미지로 VM을 만듭니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    
    {
     "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
     "name": "VM_NAME",
     "disks": [
       {
         "initializeParams": {
           "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot": true
       }
     ],
     "shieldedInstanceConfig": {
       "enableSecureBoot": ENABLE_SECURE_BOOT
     }
    }
    

    다음을 바꿉니다.

    • PROJECT_ID: VM을 만들 프로젝트의 ID입니다.
    • ZONE: VM을 만들 영역입니다.
    • MACHINE_TYPE_ZONE: 새 VM에 사용할 머신 유형이 포함된 영역입니다.
    • MACHINE_TYPE: 새 VM의 머신 유형(사전 정의 또는 커스텀)입니다.
    • VM_NAME: 새 VM의 이름입니다.
    • IMAGE_PROJECT: 이미지가 포함된 프로젝트입니다.

      예를 들어 debian-10을 이미지 계열로 지정하면 debian-cloud를 이미지 프로젝트로 지정합니다.

    • IMAGE 또는 IMAGE_FAMILY: 다음 중 하나를 지정합니다.

      • IMAGE: 공개 이미지의 특정 버전입니다.

        예를 들면 "sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"입니다.

      • IMAGE_FAMILY: 이미지 계열입니다.

        이렇게 하면 지원 중단되지 않은 최신 OS 이미지를 사용하여 VM이 생성됩니다. 예를 들어 "sourceImage": "projects/debian-cloud/global/images/family/debian-10"을 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

    • ENABLE_SECURE_BOOT: 선택사항: 보안 VM을 지원하는 이미지를 선택한 경우 기본적으로 Compute Engine은 vTPM(Virtual Trusted Platform Module)무결성 모니터링을 사용 설정합니다. Compute Engine은 기본적으로 보안 부팅을 사용 설정하지 않습니다.

      enableSecureBoottrue를 지정하면 Compute Engine은 보안 VM 기능 3가지를 모두 사용 설정하여 VM을 만듭니다. Compute Engine에서 VM을 시작한 후 보안 VM 옵션을 수정하려면 VM을 중지해야 합니다.

Python

def create_instance(compute, project, zone, name, bucket):
    # Get the latest Debian Jessie image.
    image_response = compute.images().getFromFamily(
        project='debian-cloud', family='debian-9').execute()
    source_disk_image = image_response['selfLink']

    # Configure the machine
    machine_type = "zones/%s/machineTypes/n1-standard-1" % zone
    startup_script = open(
        os.path.join(
            os.path.dirname(__file__), 'startup-script.sh'), 'r').read()
    image_url = "http://storage.googleapis.com/gce-demo-input/photo.jpg"
    image_caption = "Ready for dessert?"

    config = {
        'name': name,
        'machineType': machine_type,

        # Specify the boot disk and the image to use as a source.
        'disks': [
            {
                'boot': True,
                'autoDelete': True,
                'initializeParams': {
                    'sourceImage': source_disk_image,
                }
            }
        ],

        # Specify a network interface with NAT to access the public
        # internet.
        'networkInterfaces': [{
            'network': 'global/networks/default',
            'accessConfigs': [
                {'type': 'ONE_TO_ONE_NAT', 'name': 'External NAT'}
            ]
        }],

        # Allow the instance to access cloud storage and logging.
        'serviceAccounts': [{
            'email': 'default',
            'scopes': [
                'https://www.googleapis.com/auth/devstorage.read_write',
                'https://www.googleapis.com/auth/logging.write'
            ]
        }],

        # Metadata is readable from the instance and allows you to
        # pass configuration from deployment scripts to instances.
        'metadata': {
            'items': [{
                # Startup script is automatically executed by the
                # instance upon startup.
                'key': 'startup-script',
                'value': startup_script
            }, {
                'key': 'url',
                'value': image_url
            }, {
                'key': 'text',
                'value': image_caption
            }, {
                'key': 'bucket',
                'value': bucket
            }]
        }
    }

    return compute.instances().insert(
        project=project,
        zone=zone,
        body=config).execute()

커스텀 이미지를 사용하여 VM 만들기

커스텀 이미지는 사용자 프로젝트에만 속합니다. 커스텀 이미지로 VM을 만들려면 먼저 커스텀 이미지를 만들어야 합니다(아직 없는 경우).

Console

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 프로젝트를 선택하고 계속을 클릭합니다.

  3. 인스턴스 만들기를 클릭합니다.

  4. VM의 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

  5. 선택사항: 이 VM의 영역을 변경합니다. Compute Engine은 각 리전 내의 영역 목록의 순서를 무작위로 지정하여 여러 영역에서 사용하도록 권장합니다.

  6. VM의 머신 구성을 선택합니다.

  7. 부팅 디스크 섹션에서 변경을 클릭한 후 다음을 수행합니다.

    1. 커스텀 이미지 탭을 선택합니다.
    2. 이미지 프로젝트를 선택하려면 프로젝트 선택을 클릭한 후 다음을 수행합니다.
      1. 이미지가 포함된 프로젝트를 선택합니다.
      2. 열기를 클릭합니다.
    3. 이미지 목록에서 가져올 이미지를 클릭합니다.
    4. 부팅 디스크의 유형과 크기를 선택합니다.
    5. 선택사항: 고급 구성 옵션의 경우 고급 구성 표시를 클릭합니다.
    6. 부팅 디스크 옵션을 확인하려면 선택을 클릭합니다.
  8. 방화벽 섹션에서 VM에 대한 HTTP 또는 HTTPS 트래픽을 허용하려면 HTTP 트래픽 허용 또는 HTTPS 트래픽 허용을 선택합니다.

    Cloud Console은 VM에 네트워크 태그를 추가하고 tcp:80(HTTP) 또는 tcp:443(HTTPS)에서 들어오는 모든 트래픽을 허용하는 인그레스 방화벽 규칙을 만듭니다. 네트워크 태그는 방화벽 규칙을 VM과 연결합니다. 자세한 내용은 Virtual Private Cloud 문서의 방화벽 규칙 개요를 참조하세요.

  9. 만들기를 클릭하여 VM을 만들고 시작합니다.

gcloud

gcloud compute instances create 명령어를 실행하여 커스텀 이미지로 VM을 만듭니다.

gcloud compute instances create VM_NAME \
    --image-project IMAGE_PROJECT \
    [--image IMAGE | --image-family IMAGE_FAMILY]

다음을 바꿉니다.

  • VM_NAME: VM 이름입니다.
  • IMAGE_PROJECT: 이미지가 포함된 프로젝트의 이름입니다.
  • IMAGE 또는 IMAGE_FAMILY: 다음 중 하나를 지정합니다.
    • IMAGE: 커스텀 이미지의 이름입니다.

      예를 들면 --image=my-debian-image-v2입니다.

    • IMAGE_FAMILY: 커스텀 이미지 계열의 일부로 커스텀 이미지를 만든 경우 해당 커스텀 이미지 계열을 지정합니다.

      이렇게 하면 커스텀 이미지 계열에서 지원 중단되지 않은 최신 OS 이미지와 OS 버전에서 VM이 생성됩니다. 예를 들어 --image-family=my-debian-family를 지정하면 Compute Engine이 커스텀 my-debian-family 이미지 계열에서 최신 OS 이미지를 사용하여 VM을 만듭니다.

API

API에서 커스텀 이미지로 VM을 만드는 프로세스는 공개적으로 사용 가능한 이미지로 VM을 만드는 프로세스와 동일합니다.

커스텀 이미지에서 VM을 만들려면 instances.insert 메서드를 사용합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
 "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
 "name": "VM_NAME",
 "disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
     },
     "boot": true
   }
 ],
 .....
}

다음을 바꿉니다.

  • PROJECT_ID: VM을 만들 프로젝트의 ID입니다.
  • ZONE: VM을 만들 영역입니다.
  • MACHINE_TYPE_ZONE: 새 VM에 사용할 머신 유형이 포함된 영역입니다.
  • MACHINE_TYPE: 새 VM의 머신 유형(사전 정의 또는 커스텀)입니다.
  • VM_NAME: 새 VM의 이름입니다.
  • IMAGE_PROJECT: 커스텀 이미지가 포함된 프로젝트의 이름입니다.
  • IMAGE 또는 IMAGE_FAMILY: 다음 중 하나를 지정합니다.

    • IMAGE: 커스텀 이미지의 이름입니다.

      예를 들면 "sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2"입니다.

    • IMAGE_FAMILY: 커스텀 이미지 계열의 일부로 커스텀 이미지를 만든 경우 해당 커스텀 이미지 계열을 지정합니다.

      이렇게 하면 커스텀 이미지 계열에서 지원 중단되지 않은 최신 OS 이미지로 VM이 생성됩니다. 예를 들어 "sourceImage": "projects/my-project-1234/global/images/family/my-debian-family"를 지정하면 Compute Engine이 커스텀 my-debian-family 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

추가 비부팅 디스크가 포함된 VM 인스턴스 만들기

Console

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 프로젝트를 선택하고 계속을 클릭합니다.

  3. 인스턴스 만들기를 클릭합니다.

  4. VM의 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

  5. 선택사항: 이 VM의 영역을 변경합니다. Compute Engine은 각 리전 내의 영역 목록의 순서를 무작위로 지정하여 여러 영역에서 사용하도록 권장합니다.

  6. VM의 머신 구성을 선택합니다.

  7. 부팅 디스크 섹션에서 변경을 클릭한 후 다음을 수행합니다.

    1. 공개 이미지 탭에서 다음을 선택합니다.
      • 운영체제
      • OS 버전
      • 부팅 디스크 유형
      • 부팅 디스크 크기
    2. 선택사항: 고급 구성 옵션의 경우 고급 구성 표시를 클릭합니다.
    3. 부팅 디스크 옵션을 확인하려면 선택을 클릭합니다.
  8. 방화벽 섹션에서 VM에 대한 HTTP 또는 HTTPS 트래픽을 허용하려면 HTTP 트래픽 허용 또는 HTTPS 트래픽 허용을 선택합니다. 이 중 하나를 선택하면 Compute Engine에서 VM에 네트워크 태그를 추가합니다. 방화벽 규칙과 VM이 연결됩니다. 그런 다음 Compute Engine은 tcp:80(HTTP) 또는 tcp:443(HTTPS)에서 들어오는 모든 트래픽을 허용하는 인그레스 방화벽 규칙을 만듭니다.

  9. 비부팅 디스크를 VM에 추가하려면 네트워킹, 디스크, 보안, 관리, 단독 테넌시 섹션을 펼친 후 다음을 수행합니다.

    1. 디스크 섹션을 펼칩니다.
    2. 새 디스크 추가를 클릭한 후 다음을 수행합니다.
      1. 디스크의 이름, 유형, 소스 유형, 크기를 지정합니다.
      2. 연결 설정 섹션에서 디스크의 연결 모드삭제 규칙을 선택합니다. 새 디스크 추가에 대한 자세한 내용은 디스크 만들기 및 연결을 참조하세요.
      3. 저장을 클릭합니다.
  10. 만들기를 클릭하여 VM을 만들고 시작합니다.

gcloud

gcloud compute instances create 명령어를 실행하여 추가 비부팅 디스크가 포함된 VM을 만듭니다.

VM을 만드는 동안 비부팅 디스크를 최대 128개까지 추가할 수 있습니다. 만든 각 비부팅 디스크마다 --create-disk 플래그를 지정합니다.

공개 또는 스톡 이미지에서 비부팅 디스크를 만들려면 --create-disk 플래그에 image 또는 image-familyimage-project 속성을 지정합니다. 빈 디스크를 만들려면 이러한 속성을 포함하지 마세요. 필요할 경우 디스크 sizetype에 속성을 포함할 수 있습니다.

gcloud compute instances create VM_NAME \
    [--image=IMAGE | --image-family=IMAGE_FAMILY] \
    --image-project=IMAGE_PROJECT \
    --create-disk [image=DISK_IMAGE | image-family=DISK_IMAGE_FAMILY ],image-project=DISK_IMAGE_PROJECT,size=SIZE_GB,type=DISK_TYPE

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.
  • IMAGE 또는 IMAGE_FAMILY. 다음 중 하나를 지정합니다.

    • IMAGE: 공개 이미지의 특정 버전입니다.

      예를 들면 --image=debian-10-buster-v20200309입니다.

    • IMAGE_FAMILY: 이미지 계열입니다.

      이렇게 하면 지원 중단되지 않은 최신 OS 이미지를 사용하여 VM이 생성됩니다. 예를 들어 --image-family=debian-10을 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

  • IMAGE_PROJECT: 이미지가 포함된 프로젝트입니다.

  • 추가 디스크의 경우 다음을 바꿉니다.

    • DISK_IMAGE 또는 DISK_IMAGE_FAMILY: 다음 중 하나를 지정합니다.
      • DISK_IMAGE: 비부팅 디스크로 사용할 이미지의 이름입니다.
      • DISK_IMAGE_FAMILY: 비부팅 디스크로 사용할 이미지 계열입니다.
    • DISK_IMAGE_PROJECT: 디스크 이미지가 속한 이미지 프로젝트입니다.
    • SIZE_GB: 선택사항: 비부팅 디스크의 크기입니다.
    • DISK_TYPE: 선택사항: 영구 디스크 유형의 전체 또는 부분 URL입니다.

      예를 들면 https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd입니다. 사용 가능한 디스크 유형을 보려면 gcloud compute disk-types list 명령어를 실행합니다.

    빈 디스크의 경우 DISK_IMAGE, DISK_IMAGE_FAMILY 또는 DISK_IMAGE_PROJECT 매개변수를 지정하지 마세요.

API

각 추가 디스크에 initializeParams 속성을 사용하여 VM을 만들 때 비부팅 디스크를 최대 128개까지 만들 수 있습니다. 공개 또는 비공개 이미지를 사용하여 추가 디스크를 만듭니다. 빈 디스크를 추가하려면 sourceImage 값 없이 initializeParams 항목을 정의합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
 "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
 "name": "VM_NAME",
 "disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
     },
     "boot": true
   },
   {
     "initializeParams": {
       "diskSizeGb": "SIZE_GB",
       "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE",
       "diskType": "DISK_TYPE"
   },
   {
     "initializeParams": {
     "diskSizeGb": "SIZE_GB",
     "diskType": "DISK_TYPE"
   }
    }...]

다음을 바꿉니다.

  • PROJECT_ID: VM을 만들 프로젝트의 ID입니다.
  • ZONE: VM을 만들 영역입니다.
  • MACHINE_TYPE_ZONE: 새 VM에 사용할 머신 유형이 포함된 영역입니다.
  • MACHINE_TYPE: 새 VM의 머신 유형(사전 정의 또는 커스텀)입니다.
  • VM_NAME: 새 VM의 이름입니다.
  • IMAGE_PROJECT: 커스텀 이미지가 포함된 프로젝트의 이름입니다.
  • IMAGE 또는 IMAGE_FAMILY: 다음 중 하나를 지정합니다.

    • IMAGE: 커스텀 이미지의 이름입니다.

      예를 들면 "sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2"입니다.

    • IMAGE_FAMILY: 커스텀 이미지 계열의 일부로 커스텀 이미지를 만든 경우 해당 커스텀 이미지 계열을 지정합니다.

      이렇게 하면 커스텀 이미지 계열에서 지원 중단되지 않은 최신 OS 이미지 OS 버전으로 VM이 생성됩니다. 예를 들어 "sourceImage": "projects/my-project-1234/global/images/family/my-debian-family"를 지정하면 Compute Engine이 커스텀 my-debian-family 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

  • 추가 디스크의 경우 다음을 바꿉니다.

    • SIZE_GB: 디스크 크기입니다.
    • DISK_IMAGE 또는 DISK_IMAGE_FAMILY: 비부팅 디스크의 소스 이미지 또는 이미지 계열을 지정합니다.

      • DISK_IMAGE: 비부팅 디스크로 사용할 이미지의 이름입니다.

        예를 들면 "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE"입니다.

      • DISK_IMAGE_FAMILY: 비부팅 디스크로 사용할 이미지 계열입니다.

        예를 들면 "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/family/DISK_IMAGE_FAMILY"입니다.

    • DISK_TYPE: 영구 디스크 유형의 전체 또는 부분 URL입니다.

    예를 들면 https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd입니다.

    빈 디스크의 경우 DISK_IMAGE, DISK_IMAGE_FAMILY 또는 DISK_IMAGE_PROJECT 매개변수를 지정하지 마세요.

디스크를 사용하기 전에 먼저 디스크를 포맷하고 마운트하세요.

공유 이미지를 사용하여 VM 인스턴스 만들기

다른 사용자가 나와 이미지를 공유한 경우 이미지를 사용하여 VM을 만들 수 있습니다.

Console

  1. Google Cloud Console에서 인스턴스 만들기 페이지로 이동합니다.

    인스턴스 만들기로 이동

  2. VM의 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.
  3. 선택사항: 이 VM의 영역을 변경합니다. Compute Engine은 각 리전 내의 영역 목록 순서를 무작위로 지정하여 여러 영역에서 사용하도록 권장합니다.
  4. VM의 머신 구성을 선택합니다.
  5. 부팅 디스크 섹션에서 변경을 클릭하여 부팅 디스크를 구성한 후 다음을 수행합니다.
    1. 커스텀 이미지 탭을 선택합니다.
    2. 이미지 프로젝트를 선택하려면 프로젝트 선택을 클릭한 후 다음을 수행합니다.
      1. 이미지가 포함된 프로젝트를 선택합니다.
      2. 열기를 클릭합니다.
    3. 이미지 목록에서 가져올 이미지를 클릭합니다.
    4. 부팅 디스크의 유형과 크기를 선택합니다.
    5. 부팅 디스크 옵션을 확인하려면 선택을 클릭합니다.
  6. VM에 HTTP 또는 HTTPS 트래픽을 허용하려면 방화벽 섹션에서 HTTP 트래픽 허용이나 HTTPS 트래픽 허용을 선택합니다.

    Cloud Console은 VM에 네트워크 태그를 추가하고 tcp:80(HTTP) 또는 tcp:443(HTTPS)에서 들어오는 모든 트래픽을 허용하는 해당 인그레스 방화벽 규칙을 만듭니다. 네트워크 태그는 방화벽 규칙을 VM과 연결합니다. 자세한 내용은 Virtual Private Cloud 문서의 방화벽 규칙 개요를 참조하세요.

  7. VM을 시작하고 만들려면 만들기를 클릭합니다.

gcloud

gcloud compute instances create command를 사용하여 VM을 만들고 --image--image-project 플래그를 사용하여 이미지 이름과 이미지가 상주하는 프로젝트를 지정합니다.

 gcloud compute instances create VM_NAME \
        --image=IMAGE \
        --image-project=IMAGE_PROJECT
    

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.
  • IMAGE: 이미지의 이름입니다.
  • IMAGE_PROJECT: 이미지가 속한 프로젝트입니다.

명령어가 정상적으로 실행되면 gcloud에서 새 VM의 속성으로 응답합니다.

    Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
    NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    example-instance     us-central1-b  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING

API

API 안내를 따라 공개 이미지에서 VM을 만들고 요청 본문에 image 필드를 지정합니다. 빈 디스크를 추가하려면 이미지 소스를 지정하지 마세요. 필요한 경우 diskSizeGb, diskType, labels 속성을 지정할 수 있습니다.

    [...
    image: "projects/PROJECT_ID/global/images/IMAGE_NAME
    {
     "initializeParams": {
        "diskSizeGb": "SIZE_GB",
        "sourceImage": "IMAGE"
           }
     }
     ...]

다음을 바꿉니다.

  • PROJECT_ID: 이미지가 포함된 프로젝트입니다.
  • IMAGE_NAME: 소스 이미지입니다.
  • SIZE_GB: 디스크 크기입니다.
  • IMAGE: 비부팅 디스크의 소스 이미지입니다.
  • 빈 디스크의 경우 이미지 소스를 지정하지 마세요.

스냅샷을 사용하여 VM 인스턴스 만들기

스냅샷으로 부팅 영구 디스크를 백업한 경우 해당 스냅샷을 사용하여 VM을 만들 수 있습니다.

동일한 부팅 디스크로 VM을 두 개 이상 빠르게 만들려면 커스텀 이미지를 만들고 스냅샷 대신 해당 이미지에서 VM을 만듭니다.

스냅샷을 사용하여 VM 인스턴스 부팅 디스크 만들기

VM을 만들 때 부팅 디스크의 스냅샷을 새 부팅 디스크로 복원할 수 있습니다.

Console

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 프로젝트를 선택하고 계속을 클릭합니다.

  3. 인스턴스 만들기를 클릭합니다.

  4. VM의 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

  5. 선택사항: 이 VM의 영역을 변경합니다. Compute Engine은 각 리전 내의 영역 목록의 순서를 무작위로 지정하여 여러 영역에서 사용하도록 권장합니다.

  6. VM의 머신 구성을 선택합니다.

  7. 부팅 디스크 섹션에서 변경을 클릭한 후 다음을 수행합니다.

    1. 스냅샷 탭을 클릭합니다.
    2. 스냅샷 목록에서 스냅샷을 클릭합니다.
    3. 부팅 디스크 유형과 크기를 지정합니다.
    4. 선택사항: 고급 구성 옵션의 경우 고급 구성 표시를 클릭합니다.
    5. 부팅 디스크 옵션을 확인하려면 선택을 클릭합니다.
  8. 방화벽 섹션에서 VM에 대한 HTTP 또는 HTTPS 트래픽을 허용하려면 HTTP 트래픽 허용 또는 HTTPS 트래픽 허용을 선택합니다.

    Cloud Console은 VM에 네트워크 태그를 추가하고 tcp:80(HTTP) 또는 tcp:443(HTTPS)에서 들어오는 모든 트래픽을 허용하는 인그레스 방화벽 규칙을 만듭니다. 네트워크 태그는 방화벽 규칙을 VM과 연결합니다. 자세한 내용은 Virtual Private Cloud 문서의 방화벽 규칙 개요를 참조하세요.

  9. 만들기를 클릭하여 VM을 만들고 시작합니다.

gcloud

gcloud compute instances create 명령어를 사용하고 --source-snapshot 플래그를 포함합니다.

gcloud compute instances create VM_NAME \
    --source-snapshot=BOOT_SNAPSHOT_NAME \
    --boot-disk-size=BOOT_DISK_SIZE \
    --boot-disk-type=BOOT_DISK_TYPE \
    --boot-disk-device-name=BOOT_DISK_NAME

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.
  • BOOT_SNAPSHOT_NAME: 새 VM의 부팅 디스크로 복원할 부팅 디스크 스냅샷의 이름입니다.
  • BOOT_DISK_SIZE: 선택사항: 새 부팅 디스크의 크기(GB)입니다.

    크기는 스냅샷이 만들어진 소스 디스크보다 크거나 같아야 합니다.

  • BOOT_DISK_TYPE: 선택사항: 부팅 영구 디스크의 유형입니다.

    예를 들면 pd-ssd입니다.

  • BOOT_DISK_NAME: 이 VM의 새 부팅 디스크 이름입니다.

API

API를 사용하여 스냅샷에서 VM을 만드는 경우 다음 제한사항이 적용됩니다.

  • 하나의 영구 디스크만 부팅 영구 디스크로 사용될 수 있습니다.
  • 해당 VM의 첫 번째 디스크로 부팅 영구 디스크를 연결해야 합니다.
  • source 속성을 지정하면 initializeParams 속성을 지정할 수 없습니다. source 제공은 부팅 영구 디스크가 이미 있음을 나타내지만 initializeParams 속성은 Compute Engine이 부팅 영구 디스크를 새로 만들어야 함을 나타냅니다.

    부팅 디스크 스냅샷을 사용하여 VM을 만들려면 disks 속성 아래에 sourceSnapshot 필드를 지정합니다. 선택사항: 새 부팅 디스크의 diskSizeGbdiskType 속성을 지정합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "boot": true,
     "initializeParams": {
       "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME",
       "diskSizeGb": "BOOT_DISK_SIZE",
       "diskType": "BOOT_DISK_TYPE"
    }
   }],
 }

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: 새 VM을 만들 영역입니다.
  • VM_NAME: 스냅샷을 복원할 VM의 이름입니다.
  • MACHINE_TYPE: VM의 머신 유형입니다.
  • BOOT_SNAPSHOT_NAME: 새 VM의 부팅 디스크를 만드는 데 사용할 스냅샷의 이름입니다.
  • BOOT_DISK_SIZE: 선택사항: 새 부팅 디스크의 크기(GB)입니다.

    크기는 스냅샷이 만들어진 소스 디스크보다 크거나 같아야 합니다.

  • BOOT_DISK_TYPE: 선택사항: 부팅 디스크의 유형입니다.

    예를 들면 pd-ssd입니다.

비부팅 스냅샷을 새 VM 인스턴스로 복원하기

비부팅 스냅샷은 VM이 데이터 스토리지로만 사용하는 보조 영구 디스크의 백업입니다. VM을 만들 때마다 비부팅 스냅샷을 새 디스크로 복원할 수 있습니다. 또는 비부팅 스냅샷을 기존 VM으로 복원할 수도 있습니다.

비부팅 스냅샷을 새 VM으로 복원하려면 VM을 만들 때 다음 추가 단계를 따르세요.

Console

콘솔에서 비부팅 스냅샷을 새 VM으로 복원할 때 먼저 각 스냅샷에서 디스크를 만듭니다. 그런 다음 VM을 만들 때 새 디스크를 연결합니다.

  1. 각 비부팅 스냅샷을 새 디스크로 복원합니다.

    1. Google Cloud Console에서 디스크 페이지로 이동합니다.

      디스크로 이동

    2. 디스크 만들기를 클릭합니다.

    3. 디스크 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

    4. 이 디스크의 리전영역을 선택합니다. 디스크 및 VM이 동일한 영역에 있어야 합니다.

    5. 디스크 유형을 선택합니다.

    6. 소스 유형에서 스냅샷을 선택합니다.

    7. 소스 스냅샷 필드에서 새 디스크로 복원할 비부팅 스냅샷을 선택합니다.

    8. 디스크를 만들려면 만들기를 클릭합니다.

    이 단계를 반복하여 복원할 각 스냅샷을 사용하여 디스크를 만듭니다. VM을 만들 때 비부팅 디스크를 15개까지 추가할 수 있습니다.

  2. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  3. 프로젝트를 선택하고 계속을 클릭합니다.

  4. 인스턴스 만들기를 클릭합니다.

    1. VM의 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.
    2. 이 VM의 리전영역을 선택합니다. 디스크 및 VM이 동일한 영역에 있어야 합니다.
    3. VM의 머신 유형을 선택합니다.
    4. 외부 수신 트래픽을 허용하려면 VM의 방화벽 규칙을 변경합니다.
    5. 디스크를 VM에 추가하려면 네트워킹, 디스크, 보안, 관리, 단독 테넌시 섹션을 펼친 후 다음을 수행합니다.

      1. 디스크 섹션을 펼칩니다.
      2. 기존 디스크 연결을 클릭합니다.
        1. 디스크 목록에서 이 VM에 연결할 디스크를 선택합니다.
        2. 연결 설정 섹션에서 디스크의 연결 모드삭제 규칙을 선택합니다. 새 디스크 추가에 대한 자세한 내용은 디스크 만들기 및 연결을 참조하세요.
      3. 저장을 클릭합니다.

      연결하려는 디스크마다 이 단계를 반복합니다. VM을 만들 때 비부팅 디스크를 15개까지 추가할 수 있습니다.

  5. 만들기를 클릭하여 VM을 만들고 시작합니다.

gcloud

gcloud compute instances create 명령어를 사용하여 VM을 만듭니다. 복원할 각 비부팅 스냅샷에 대해 --create-disk 플래그를 포함하고 source-snapshot을 지정합니다. VM을 만들 때 비부팅 디스크를 15개까지 추가할 수 있습니다.

예를 들어 두 개의 비부팅 스냅샷을 새 VM으로 복원하려면 다음 명령어를 사용합니다.

gcloud compute instances create VM_NAME \
    --create-disk source-snapshot=SNAPSHOT_1_NAME,name=DISK_1_NAME,size=DISK_1_SIZE,type=DISK_1_TYPE \
    --create-disk source-snapshot=SNAPSHOT_2_NAME,name=DISK_2_NAME,size=DISK_2_SIZE,type=DISK_2_TYPE

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.
  • SNAPSHOT_1_NAMESNAPSHOT_2_NAME: 복원할 비부팅 스냅샷의 이름입니다.
  • DISK_1_NAMEDISK_2_NAME: 이 VM의 새 비부팅 디스크 이름입니다.
  • DISK_1_SIZEDISK_2_SIZE: 선택사항: 각 새 비부팅 디스크의 크기(GB)입니다.

    크기는 스냅샷이 만들어진 소스 디스크보다 크거나 같아야 합니다.

  • DISK_1_TYPEDISK_2_TYPE: 선택사항: 영구 디스크의 유형입니다.

    예를 들면 https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd입니다.

API

API를 사용하여 비부팅 스냅샷을 새 VM으로 복원하는 경우 다음 제한 사항이 적용됩니다.

  • 하나의 영구 디스크만 부팅 영구 디스크가 될 수 있습니다.
  • 해당 VM의 첫 번째 디스크로 부팅 영구 디스크를 연결해야 합니다.
  • source 속성을 지정하면 initializeParams 속성을 지정할 수 없습니다. source 제공은 부팅 영구 디스크가 이미 있음을 나타내지만 initializeParams 속성은 Compute Engine이 부팅 영구 디스크를 새로 만들어야 함을 나타냅니다.

베타 API를 사용하여 initializeParams 속성에서 sourceSnapshot 필드를 지정합니다. 만들려는 모든 비부팅 디스크의 initializeParams 속성을 반복하여 비부팅 디스크를 15개까지 추가할 수 있습니다. 필요한 경우 만드는 모든 디스크에 diskSizeGbdiskType 속성을 지정할 수 있습니다.

예를 들어 2개의 비부팅 스냅샷을 새 VM으로 복원하려면 다음 요청을 실행합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name": "VM_NAME",
  "machineType": "machineTypes/MACHINE_TYPE"
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT"
    }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "diskSizeGb": "DISK_SIZE",
     "diskType": "DISK_TYPE"
   },
   {
     "initializeParams": {
        "sourceSnapshot": "global/snapshots/SNAPSHOT_1_NAME",
        "diskSizeGb": "DISK_SIZE",
        "diskType": "DISK_TYPE"
     }
   },
   {
     "initializeParams": {
        "sourceSnapshot": "global/snapshots/SNAPSHOT_2_NAME",
        "diskSizeGb": "DISK_SIZE",
        "diskType": "DISK_TYPE"
     }
  }]
 }

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • ZONE: VM을 만들 영역입니다.
  • VM_NAME: 스냅샷을 복원할 VM의 이름입니다.
  • MACHINE_TYPE: VM의 머신 유형입니다.
  • DISK_SIZE: 선택사항: 해당 디스크의 크기(GB)입니다.

    이 속성이 제공되는 경우 크기는 스냅샷이 만들어진 소스 디스크보다 크거나 같아야 합니다.

  • DISK_TYPE: 선택사항: 해당 영구 디스크 유형의 전체 또는 부분 URL입니다.

    예를 들면 https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd입니다.

  • SNAPSHOT_1_NAMESNAPSHOT_2_NAME: 새 VM의 새 비부팅 디스크로 복원할 비부팅 스냅샷의 이름입니다.

컨테이너 이미지를 사용하여 VM 인스턴스 만들기

Compute Engine VM에서 컨테이너를 배포 및 실행하려면 VM을 만들 때 컨테이너 이미지 이름과 선택적 구성 매개변수를 지정합니다. Compute Engine에서 Docker가 설치된 Container-optimized OS 공개 이미지의 최신 버전을 사용하여 VM을 만듭니다. 그런 다음 VM이 시작될 때 컨테이너를 시작합니다. 자세한 내용은 VM에 컨테이너 배포를 참조하세요.

컨테이너 이미지에서 VM을 만들려면 Cloud Console 또는 gcloud를 사용해야 합니다.

Console

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 프로젝트를 선택하고 계속을 클릭합니다.

  3. 인스턴스 만들기를 클릭합니다.

  4. VM의 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

  5. 컨테이너 섹션에서 컨테이너 배포를 클릭합니다.

    1. 사용할 컨테이너 이미지를 지정합니다. 예를 들면 다음과 같습니다.

      • Cloud Launcher에서 NGINX 1.12 컨테이너 이미지를 선택하려면 다음 명령어를 사용합니다.

        gcr.io/cloud-marketplace/google/nginx1:1.12

      • Docker Hub의 Apache 컨테이너 이미지를 배포하려면 항상 Docker 이미지 전체 이름을 지정합니다.

        docker.io/httpd:2.4

    2. 선택사항: 고급 컨테이너 옵션을 클릭합니다. 자세한 내용은 컨테이너 실행을 위한 옵션 구성을 참조하세요.

  6. VM을 만들고, VM을 부팅하고, 컨테이너를 시작하려면 만들기를 클릭합니다.

gcloud

gcloud compute instances create-with-container 명령어를 실행합니다.

gcloud compute instances create-with-container VM_NAME \
    --container-image=CONTAINER_IMAGE

다음을 바꿉니다.

  • VM_NAME: 새 VM의 이름입니다.
  • CONTAINER_IMAGE: 컨테이너 이미지의 이름입니다.

예를 들어 다음 명령어는 컨테이너 이미지를 시작하고 실행하는 nginx-vm이라는 VM을 만듭니다.

gcr.io/cloud-marketplace/google/nginx1:1.12

gcloud compute instances create-with-container nginx-vm \
    --container-image=gcr.io/cloud-marketplace/google/nginx1:1.12

Docker Hub의 Apache 컨테이너 이미지를 배포하려면 항상 Docker 이미지 전체 이름을 지정합니다.

docker.io/httpd:2.4.

다른 Google Cloud 서비스에 대한 액세스 권한이 있는 VM 인스턴스 만들기

다른 Google Cloud 서비스에 액세스해야 하는 VM에서 애플리케이션을 실행하려는 경우 VM을 만들기 전에 서비스 계정을 만든 후 VM을 서비스 계정으로 실행되도록 설정합니다. 서비스 계정은 사용자 인증 정보를 다른 Google Cloud 서비스에 액세스하기 위해 애플리케이션 코드에서 사용할 수 있는 특수한 계정입니다.

자세한 내용은 서비스 계정을 참조하세요.

특정 서브넷에 VM 인스턴스 만들기

기본적으로 Google Cloud는 프로젝트마다 default라는 자동 모드 VPC 네트워크를 만듭니다. 자동 모드 또는 커스텀 모드 VPC 네트워크에서 수동으로 만든 다른 네트워크나 서브넷을 사용하려면 VM을 만들 때 서브넷을 지정해야 합니다.

서브넷에서 VM을 만드는 동안 다음 규칙을 고려하세요.

  • 네트워크나 서브넷을 지정하지 않으면 Compute Engine은 기본 VPC 네트워크 및 VM과 동일한 리전에 있는 자동 서브넷을 사용합니다.
  • 네트워크를 지정하지 않으면 Compute Engine은 지정된 서브넷에서 네트워크를 추론합니다.
  • 네트워크를 지정하는 경우 서브넷을 지정해야 하며 서브넷은 동일한 네트워크에 속해야 합니다. 그렇지 않으면 VM을 만들 수 없습니다.

Console

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 프로젝트를 선택하고 계속을 클릭합니다.

  3. 인스턴스 만들기를 클릭합니다.

  4. VM의 이름을 지정합니다. 자세한 내용은 리소스 이름 지정 규칙을 참조하세요.

  5. 선택사항: 이 VM의 영역을 변경합니다. Compute Engine은 각 리전 내의 영역 목록의 순서를 무작위로 지정하여 여러 영역에서 사용하도록 권장합니다.

  6. 방화벽 섹션에서 VM에 대한 HTTP 또는 HTTPS 트래픽을 허용하려면 HTTP 트래픽 허용 또는 HTTPS 트래픽 허용을 선택합니다.

    Cloud Console은 VM에 네트워크 태그를 추가하고 tcp:80(HTTP) 또는 tcp:443(HTTPS)에서 들어오는 모든 트래픽을 허용하는 인그레스 방화벽 규칙을 만듭니다. 네트워크 태그는 방화벽 규칙을 VM과 연결합니다. 자세한 내용은 Virtual Private Cloud 문서의 방화벽 규칙 개요를 참조하세요.

  7. 네트워킹, 디스크, 보안, 관리, 단독 테넌시 섹션을 펼칩니다.

    1. 네트워킹 섹션을 펼칩니다.
    2. 네트워크 인터페이스에서 네트워크 세부정보를 지정합니다.
      1. 네트워크 필드에서 사용자가 만든 서브넷이 포함된 VPC 네트워크를 선택합니다.
      2. 서브넷 필드에서 사용할 VM의 서브넷을 선택합니다.
      3. 완료를 클릭합니다.
  8. 만들기를 클릭하여 VM을 만들고 시작합니다.

gcloud

gcloud 명령줄 도구를 사용하여 같은 안내에 따라 이미지 또는 스냅샷에서 VM을 만들고, gcloud compute instances create 명령어를 실행할 때 --subnet=SUBNET_NAME--zone=ZONE 플래그를 추가합니다.

gcloud compute instances create VM_NAME \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --zone=ZONE

다음을 바꿉니다.

  • VM_NAME: VM 이름입니다.
  • NETWORK_NAME: 선택사항: 네트워크 이름입니다.
  • SUBNET_NAME: 서브넷의 이름입니다.

    네트워크의 서브넷 목록을 보려면 gcloud compute networks subnets list 명령어를 사용합니다.

  • ZONE: VM이 만들어지는 영역입니다(예: europe-west1-b).

    VM의 리전은 영역에서 추론됩니다.

API

API 안내에 따라 이미지 또는 스냅샷에서 VM을 만들지만 요청 본문에 subnet 필드를 지정합니다. 빈 디스크를 추가하려면 소스 이미지를 추가하지 마세요. 필요한 경우 diskSizeGb, diskType, labels 속성을 지정할 수 있습니다.

...
"networkInterfaces": [
{
  "network": "global/networks/NETWORK_NAME",
  "subnetwork": "regions/REGION/subnetworks/SUBNET_NAME",
  "accessConfigs":
    {
      "name": "External NAT",
      "type": "ONE_TO_ONE_NAT"
    }
    {
      "initializeParams": {
         "diskSizeGb": "SIZE_GB",
         "sourceImage": "IMAGE"
    {
      "initializeParams": {
      "diskSizeGb": "SIZE_GB"
     }
 }...]

다음을 바꿉니다.

  • NETWORK_NAME: 선택사항: 네트워크 이름입니다.
  • REGION: 지정된 서브넷이 있는 리전입니다.
  • SUBNET_NAME: 서브넷의 이름입니다.
  • SIZE_GB: 디스크 크기입니다.
  • IMAGE: 비부팅 디스크의 소스 이미지입니다.

    빈 디스크의 경우 이미지 소스를 지정하지 마세요.

문제 해결

일반적인 VM 생성 오류를 해결하는 방법을 찾으려면 VM 생성 문제 해결을 참조하세요.

다음 단계

직접 사용해 보기

Google Cloud를 처음 사용하는 경우 계정을 만들어 실제 시나리오에서 Compute Engine의 성능을 평가할 수 있습니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포할 수 있는 무료 크레딧 $300가 제공됩니다.

Compute Engine 무료로 사용해 보기