Yandex Cloud
Search
Contact UsTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • AI for business
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
    • Price calculator
    • Pricing plans
  • Customer Stories
  • Documentation
  • Blog
© 2025 Direct Cursus Technology L.L.C.
Yandex Compute Cloud
    • All guides
      • Creating a Linux VM
      • Creating a VM from disks
      • Creating a VM with disks from snapshots
      • Creating a VM from a custom image
      • Creating a VM with a custom configuration script
      • Creating a VM with metadata from environment variables
      • Creating a VM instance with access to a Yandex Lockbox secret
      • Creating a VM with a GPU
      • Making a VM preemptible
    • Viewing service resource operations
    • Viewing metrics in Monitoring
    • NVIDIA driver update guide
  • Yandex Container Solution
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes
  1. Step-by-step guides
  2. Creating a VM
  3. Creating a VM with disks from snapshots

Creating a VM with disks recovered from snapshots

Written by
Yandex Cloud
Improved by
Danila N.
Updated at December 3, 2025

You can create a VM with disks recovered from snapshots available in the folder. For more information on how to create a disk snapshot, see Creating a disk snapshot.

Note

Disks, snapshots, and images are separate resources that work independently from each other in Compute Cloud. You can create, delete, and manage them separately. Any changes you make to the disk do not affect the snapshot of that disk or the image it was created from. Even if you delete the disk or the VM with the disk, its snapshot and image will remain unaffected.

Note

To create, modify, and edit a VM, you need the compute.editor minimum role for the folder. To create a VM with a licensed image, you will additionally need the license-manager.viewer role.

To create a VM with a public IP address, you will additionally need the vpc.publicAdmin role.

Management console
CLI
API
  1. In the management console, select the folder where you want to create your VM.

  2. Go to Compute Cloud.

  3. In the left-hand panel, select Virtual machines.

  4. Click Create virtual machine.

  5. Select Advanced setup.

  6. Under Boot disk image:

    • Navigate to the Custom tab.
    • Click , and, in the window that opens, select Create.
    • In the Contents field, select Snapshot and then select the disk snapshot you need from the list below. Optionally, use the filter.
    • Enter a name for the new boot disk.
    • Select the disk type.
    • Specify the required disk and block size.
    • Optionally, enable Additional in the Delete along with the virtual machine field if you need this disk automatically deleted when deleting the VM.
    • Click Add disk.
  7. Under Location, select the availability zone where your VM will reside.

  8. Add a secondary disk:

    • Under Disks and file storages, click Add.
    • In the window that opens, select Disk → Create new.
    • In the Contents field, select Snapshot.
    • Enter a name for the new disk.
    • Select the disk type.
    • Specify the required disk and block size.
    • Optionally, enable Additional in the Delete along with the virtual machine field if you need this disk automatically deleted when deleting the VM.
    • Click Add disk.
  9. Optionally, to encrypt a boot disk or a secondary disk, under Disks and file storages, click to the right of the disk name and configure encryption parameters for the disk:

    • Select Encrypted disk.
    • In the KMS key field, select the key you want to use to encrypt the disk. To create a new key, click Create.

    To create an encrypted disk, you need the kms.keys.user role or higher.

    Warning

    You can specify encryption settings only when creating a disk. You cannot disable or change disk encryption. You also cannot enable encryption for an existing disk.

    If you deactivate the key used to encrypt a disk, image, or snapshot, access to the data will be suspended until you reactivate the key.

    Alert

    If you destroy the key or its version used to encrypt a disk, image, or snapshot, you will irrevocably lose access to the data. For details, see Destroying key versions.

  10. Optionally, connect a file storage:

    • Under Disks and file storages, click Add.

      • In the window that opens, select File storage and choose the storage you want to connect from the list.

      • Click Add file storage.

  11. Under Computing resources, select one of the preset configurations or create a custom one. To create a custom configuration:

    • Go to the Custom tab.
    • Select a platform.
    • Specify the guaranteed performance and required number of vCPUs, as well as RAM size.
    • Optionally, enable a software-accelerated network.
    • Make your VM preemptible, if required.
  12. Under Network settings:

    • In the Subnet field, enter the ID of a subnet in the new VM’s availability zone. Alternatively, select a cloud network from the list.

      • Each network must have at least one subnet. If your network has no subnets, create one by selecting Create subnet.

      • If you do not have a network, click Create network to create one:

        • In the window that opens, specify the network name and select the folder to host the network.
        • Optionally, enable the Create subnets setting to automatically create subnets in all availability zones.
        • Click Create network.
    • In the Public IP address field, select an IP address assignment method:

      • Auto: To assign a random IP address from the Yandex Cloud IP address pool. In this case, you can enable DDoS protection using the option below.
      • List: To select a public IP address from the list of previously reserved static addresses. For more information, see Converting a dynamic public IP address to static.
      • No address: Not to assign a public IP address.
    • Select the relevant security groups. If you leave this field empty, the default security group will be assigned to the VM.

    • Expand Additional and select a method for assigning internal addresses in the Internal IPv4 address field:

      • Auto: To assign a random IP address from the pool of IP addresses available in the selected subnet.
      • Manual: To manually assign a private IP address to the VM.
      • Enable DDoS protection, if required. The option is available if you previously selected the automatic IP assignment method in the public address settings.
    • Optionally, create records for your VM in the DNS zone:

      • Expand DNS settings for internal addresses and click Add record.
      • Specify a zone, FQDN, and TTL for the record. When setting the FQDN, you can enable Detect automatically for the zone.
        You can add multiple records to internal DNS zones. For more information, see Cloud DNS integration with Compute Cloud.
      • To create another record, click Add record.

    If you want to add another network interface to your VM, click Add network interface and repeat the settings from this step for the new interface. You can add up to eight network interfaces to a single VM.

  13. Under Access:

    • Select Access by OS Login to connect and manage access to the new VM using OS Login in Yandex Identity Hub.

      With OS Login, you can connect to VMs using SSH keys and SSH certificates via a standard SSH client or the Yandex Cloud CLI. OS Login enables rotating the SSH keys used to access VMs, providing the most secure access option.

    • If you prefer not to use OS Login, select SSH key and specify the following VM access data:

      • Under Login, enter a username.

        Alert

        Do not use root or other reserved usernames. To perform operations requiring root privileges, use the sudo command.

      • In the SSH key field, select the SSH key saved in your organization user profile.

        If there are no SSH keys in your profile or you want to add a new key:

        1. Click Add key.

        2. Enter a name for the SSH key.

        3. Select one of the following:

          • Enter manually: Paste the contents of the public SSH key. You need to create an SSH key pair on your own.

          • Load from file: Upload the public part of the SSH key. You need to create an SSH key pair on your own.

          • Generate key: Automatically create an SSH key pair.

            When adding a new SSH key, an archive containing the key pair will be created and downloaded. In Linux or macOS-based operating systems, unpack the archive to the /home/<user_name>/.ssh directory. In Windows, unpack the archive to the C:\Users\<user_name>/.ssh directory. You do not need additionally enter the public key in the management console.

        4. Click Add.

        The system will add the SSH key to your organization user profile. If the organization has disabled the ability for users to add SSH keys to their profiles, the added public SSH key will only be saved in the user profile inside the newly created resource.

    If you want to add multiple users with SSH keys to the VM at the same time, specify these users' data under Metadata. You can also use metadata to install additional software on a VM when creating it.

    In public Linux images provided by Yandex Cloud, the functionality of connecting over SSH using login and password is disabled by default.

  14. Under General information, enter a name for the VM:

    • It must be from 2 to 63 characters long.
    • It can only contain lowercase Latin letters, numbers, and hyphens.
    • It must start with a letter and cannot end with a hyphen.

    Note

    The VM name is used to generate an internal FQDN, which is set only once, when you create the VM. If the internal FQDN is important to you, make sure to choose an appropriate name for your VM.

  15. Under Additional:

    • Optionally, select or create a service account. With a service account, you can flexibly configure access permissions for your resources.

    • Optionally, enable access to the serial console.

    • Optionally, under Backup, enable Connect and select or create a backup policy to make automatic backups of your VMs using Cloud Backup.

      For more information, see Connecting Compute Cloud VMs and Yandex BareMetal servers to Cloud Backup.

    • Optionally, to configure delivering Linux metrics and any additional metrics from your apps, enable Monitoring under Agent for delivering metrics and select:

      • Yandex Monitoring: Install an agent to collect additional metrics from VM instances and apps.
      • Yandex Managed Service for Prometheus®: Install and configure an agent to collect additional metrics from VM instances and apps in Prometheus format:
        • Select or create a workspace to store your metrics.
        • Optionally, describe the delivery parameters for your custom metrics, in JSON format.
    • Optionally, under Placement, select a VM placement group.

  16. Click Create VM.

The VM will appear in the list. Every new VM gets an IP address and host name (FQDN).

If you do not have the Yandex Cloud CLI installed yet, install and initialize it.

By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID> command. You can also set a different folder for any specific command using the --folder-name or --folder-id parameter.

  1. See the description of the CLI command for creating a VM:

    yc compute instance create --help
    
  2. Prepare snapshots of the disks you need by following the steps in Creating a disk snapshot.

  3. Get a list of snapshots in the default folder:

    yc compute snapshot list
    

    Result:

    +----------------------+-----------------+----------------------+--------+----------------------------+
    |          ID          |       NAME      |     PRODUCT IDS      | STATUS |        DESCRIPTION         |
    +----------------------+-----------------+----------------------+--------+----------------------------+
    | fd8rlt1u2rf0l******* | first-snapshot  | f2ecl5vhsftd******** | READY  | my first snapshot via CLI  |
    | fhmolt1u2rf0******** | second-snapshot | f2eclmol5lps******** | READY  | my second snapshot via CLI |
    +----------------------+-----------------+----------------------+--------+----------------------------+
    
  4. Select ID or NAME of the snapshots you need.

  5. Create a VM in the default folder:

    yc compute instance create \
      --name first-instance \
      --zone ru-central1-a \
      --public-ip \
      --create-boot-disk snapshot-name=first-snapshot,kms-key-id=<key_ID> \
      --create-disk snapshot-name=second-snapshot,kms-key-id=<key_ID> \
      --ssh-key ~/.ssh/id_ed25519.pub
    

    Where:

    • --name: VM name. Follow these naming requirements:

      • It must be from 2 to 63 characters long.
      • It can only contain lowercase Latin letters, numbers, and hyphens.
      • It must start with a letter and cannot end with a hyphen.

      Note

      The VM name is used to generate an internal FQDN, which is set only once, when you create the VM. If the internal FQDN is important to you, make sure to choose an appropriate name for your VM.

    • --zone: Availability zone.

    • --public-ip: Connecting a public IP address. Remove this flag to create a VM without a public IP address.

    • --create-boot-disk: VM boot disk settings:

      • snapshot-name: Disk snapshot name.

      • kms-key-id: ID of the KMS symmetric key to create an encrypted boot disk. This is an optional setting.

        To create an encrypted disk, you need the kms.keys.user role or higher.

        Warning

        You can specify encryption settings only when creating a disk. You cannot disable or change disk encryption. You also cannot enable encryption for an existing disk.

        If you deactivate the key used to encrypt a disk, image, or snapshot, access to the data will be suspended until you reactivate the key.

        Alert

        If you destroy the key or its version used to encrypt a disk, image, or snapshot, you will irrevocably lose access to the data. For details, see Destroying key versions.

    • --create-disk: Secondary disk settings:

      • snapshot-name: Disk snapshot name.
      • kms-key-id: ID of the KMS symmetric key to create an encrypted disk. This is an optional setting.
    • --ssh-key: Path to the file with the public SSH key. The VM will automatically create a user named yc-user for this key.

      When creating a VM from a Yandex Cloud Marketplace public image, make sure to provide an SSH key, as SSH access with a username and password is disabled by default for such images.

    The above command will create a VM named first-instance in the ru-central1-a availability zone, with a public IP address and disks from the snapshots.

    If you want to add multiple network interfaces to your VM, specify the --network-interface parameter as many times as you need. You can add up to eight network interfaces to a single VM.

Use the create REST API method for the Instance resource or the InstanceService/Create gRPC API call.

Was the article helpful?

Previous
Creating a VM from disks
Next
Creating a VM from a custom image
© 2025 Direct Cursus Technology L.L.C.