Overview of creating Compute Engine instances


Compute Engine lets you create and run instances on Google infrastructure. This document provides an overview of the various configuration parameters that are available to you during a Compute Engine instance creation. If you are creating an instance for the first time, then this document provides a starting point for understanding the process.

The terms Compute Engine instance, compute instance or instance are synonymous. Based on the machine type that you specify, an instance can be either a bare metal instance or a virtual machine (VM) instance, as follows:

  • If the name of its machine type ends in -metal, an instance is a bare metal instance, which does not have a hypervisor installed.
  • Otherwise, an instance is a VM instance. The terms virtual machine instance, VM instance, and VM are synonymous.

Synonymous terms are used interchangeably across the documentation and Google Cloud interfaces such as the Google Cloud console, the gcloud command-line tool, and the REST API.

Before you begin

  • Review the basics about Compute Engine instances.
  • If you haven't already, then set up authentication. Authentication is the process by which your identity is verified for access to Google Cloud services and APIs. To run code or samples from a local development environment, you can authenticate to Compute Engine by selecting one of the following options:

    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

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    REST

    To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    For more information, see Authenticate for using REST in the Google Cloud authentication documentation.

Ways to create and configure instances

You can create instances in multiple ways, each with its own method of configuration, as follows:

  • Create your instance by manually specifying a custom configuration. Choose this option if you're creating an instance from the scratch and are facing any of the following scenarios:

    • You know the specific configuration that is required for your workload.
    • You want to create an instance with a complicated configuration.
    • You want to create an instance by using the Google Cloud CLI or REST.

    If you choose this method, then also review the list of all configuration options available during instance creation.

  • Create a workload-optimized instance. In this method, you select your workload type while creating your instance and Google automatically populates a preset configuration that suits your workload. Choose this option if you're starting out with Compute Engine and don't know which configuration best suits your intended workload. This option is available only in the Google Cloud console.

  • Create your instance by using an instance template. An instance template is a resource that defines configuration settings for instances. Choose this option if you have a defined configuration template and want to create a lot of VMs with the same configuration.

  • Create your instance by making copies of a machine image. A machine image contains most of the information and data needed for cloning an instance. Choose this option if you want to make multiple copies of an existing source instance.

After you create your compute instance, Compute Engine automatically starts the instance.

Configuration options available during instance creation

When you create a Compute Engine instance, you specify the configuration that you want for your instance. Compute Engine uses this configuration to create your instance. The following table lists the various parameters that you configure during Compute Engine instance creation:

Parameter What you can configure
Machine configuration
  • Hardware: You specify a machine family, series, and type, which determines the number of vCPUs, memory, and the CPU platform that Compute Engine allocates for your instance. If the machine type is available on multiple CPU platforms, you can choose the earliest CPU platform to use when creating the instance. For the machine type, you can choose either a predefined machine type or create a [custom machine type](/compute/docs/machine-resource#custom-types) for some machine series.
  • Location: You can choose the region and zone where you want to create your instance.
  • Instance name: Specify a name for the instance that is unique within your project and the selected zone.
Operating system (OS) and storage
  • Boot disk and OS: Every instance comes with a boot disk for which you can specify a disk name, size, and disk type. You also select the OS image to install on the boot disk in one of the following ways:
    • If you want to use a preconfigured OS image to create your instance, then use a public image. Public images have all the drivers that are necessary to run the instance in Google Cloud. Compute Engine offers many preconfigured public OS images that have compatible Linux or Windows operating systems.
    • If you are creating an instance for an application, you can use a custom image or a shared image to which you added additional drivers and software that support your application.
    • You can also use a snapshot or an existing disk as the source for creating the OS image on the boot disk.
  • Container: You can run containers such as Docker or Kubernetes on any of the following images:

    You specify a container image name and other container configuration details. You can also specify mount directories to add `tmpfs` storage and additional disks to the container.

Data protection
  • Data replication: You can continuously replicate your disk data for disaster protection using cross-zone synchronous replication or cross-region asynchronous replication.
  • Protect non-boot disks only: You can also enable an option that applies your snapshot schedules and data replication settings only to non-boot disks. Choosing this setting can help you reduce costs. However, this setting doesn't apply to backup plans.
Networking
  • Custom hostname: You can specify that Google Cloud should use a custom name for the instance other than the internal DNS name. If you choose this option, then you must manually configure an internal DNS record for the custom hostname.
  • Network interfaces: Each compute instance is configured with at least one virtual network interface (vNIC). By default, the network interface uses an auto mode Virtual Private Cloud (VPC) network named default. You can also select a custom VPC network or subnet that you created previously. You can also configure additional network interfaces for most machine types.

    Additionally, for each network interface, you can configure the following properties:

    • The network interface type
    • The IP stack type (IPv4 only, IPv6 only, or dual-stack)
    • The type of IP address for the internal and optional external IP addresses (ephemeral address or a reserved, static address)
    • An alias IP range for the vNIC
    • The Network Service Tier that the vNIC uses
    • Whether a public DNS PTR record is associated with the external IP address for the vNIC
Observability
  • Virtual displays: You can enable virtual displays on your instance to run screen capturing or remote system management tools on your VM.
Security
Advanced configuration
  • Tags and Labels: To assist with resource organization, you can add Tags and Labels to the instance.
  • Automation: You can specify a startup script that runs each time the instance starts or reboots.
  • Metadata: You can set custom metadata for your instance to store unique information about the instance.
  • Encryption: You can choose the encryption method and keys to use to protect disk data, memory contents, and metadata when the instance is suspended. This can be different from the encryption used to protect the disk data while the instance is running. You can also configure how the instance behaves if a specified Cloud KMS key is revoked.
  • Sole-tenancy: You can opt for having dedicated physical servers for your instances and specify a sole-tenant node or node group to create the instance in. For general-purpose N series machine types, you can specify whether to enable CPU overcommit for instances running on sole tenant nodes.

What's next