[Документация Yandex Cloud](../../../index.md) > [Yandex Compute Cloud](../../index.md) > [Пошаговые инструкции](../index.md) > Образы > Создание > Загрузить свой образ

# Загрузить свой образ диска в Yandex Cloud

Эта инструкция описывает, как загрузить в [Yandex Object Storage](../../../storage/index.md) файл образа с операционной системой Linux, а также создать из него [образ](../../concepts/image.md) и [виртуальную машину](../../concepts/vm.md) в сервисе Compute Cloud.

Поддерживаются известные системы [виртуализации](../../../glossary/virtualization.md).

{% note warning %}

В Compute Cloud создать образ можно только из файла, загруженного в Object Storage. Также вы можете мигрировать ВМ с помощью [Хайстекс Акура](../../../tutorials/infrastructure-management/hystax-migration.md).

{% endnote %}

## Подготовьте файл с образом {#prepare-file}

Для образов загрузочного диска должны выполняться следующие требования:

* Установлены драйверы `virtio-net`, `virtio-blk` и `virtio-pci`. Если вы собираетесь подключать к [виртуальной машине](../../concepts/vm.md) [файловые хранилища](../../concepts/filesystem.md), также должен быть установлен драйвер `virtiofs`. Смотрите [инструкцию](custom-image.md#virtio).
* Терминал `ttyS0` (порт COM1) настроен в качестве [серийной консоли](../../concepts/serial-console.md). Смотрите [инструкцию](custom-image.md#serial-console).
* Сетевой интерфейс корректно запускается при старте ВМ и получает [IP-адрес](../../../vpc/concepts/address.md) по DHCP.
* Пакет `cloud-init` установлен и настроен для работы с нашим [сервисом метаданных](../vm-info/get-info.md#inside-instance). Установить пакет для CentOS можно с помощью команды `sudo yum install cloud-init`, для Debian или Ubuntu — `sudo apt update && sudo apt install -y cloud-init`.
* Если образ создан на основе Amazon Machine Image (AMI), в настройках `cloud-init` отключена проверка облачной платформы, на которой запускается ВМ. Смотрите [инструкцию](custom-image.md#ec2).
* В настройках системного файрвола открыт необходимый минимум портов для работы ваших приложений, а также порт для доступа по [SSH](../../../glossary/ssh-keygen.md) (по умолчанию это порт 22 TCP).
* SSH-сервер запускается автоматически при старте ВМ.
* Сервисы с вашим приложением устойчивы к перезагрузке ВМ.

* В зависимости от [поколения оборудования](../../concepts/hardware-generations.md), которое будет закреплено за создаваемым образом, для загрузочного диска должны использоваться разные форматы размещения таблиц разделов жесткого диска:

    * поколения `Gen 1.1` и `Gen 1.2` — для загрузочного диска используется [MBR](https://ru.wikipedia.org/wiki/Главная_загрузочная_запись)-разбивка;
    * поколение `Gen 2` — для загрузочного диска используется [GPT](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID)-разбивка.

* Диск смонтирован по UUID, а не по имени.
* Файловая система не зашифрована.

Поддерживаемые форматы: `Qcow2`, `VMDK`, `RAW` и `VHD`.

Инструкции по настройке приведены в разделе [Подготовить свой образ диска](custom-image.md).

## Загрузите файл образа в Object Storage {#upload-file}

Загрузите файл с образом в сервис Object Storage и получите ссылку на загруженный образ:

1. Если у вас еще нет [бакета](../../../storage/concepts/bucket.md) в Object Storage, [создайте](../../../storage/operations/buckets/create.md) его с ограниченным доступом.
1. Загрузите образ в ваш бакет, например, [через консоль управления](../../../storage/operations/objects/upload.md), с помощью [AWS CLI](../../../storage/tools/aws-cli.md) или [WinSCP](../../../storage/tools/winscp.md). В терминах Object Storage загружаемый файл образа будет называться _объектом_.
1. [Получите](../../../storage/operations/objects/link-for-download.md) подписанную [ссылку](../../../storage/concepts/pre-signed-urls.md) на скачивание образа из бакета. Используйте эту ссылку при создании образа в Compute Cloud.

## Создайте образ в Compute Cloud {#create-image}

Создайте новый образ по ссылке, полученной в Object Storage:

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В консоли управления выберите [каталог](../../../resource-manager/concepts/resources-hierarchy.md#folder), в котором нужно создать образ.
  1. [Перейдите](https://kz.console.yandex.cloud/link/compute) в сервис **Compute Cloud**.
  1. На панели слева выберите ![image](../../../_assets/console-icons/layers.svg) **Образы**.
  1. Нажмите кнопку **Загрузить образ** и в открывшемся окне:

      1. В поле **Имя** задайте имя образа. Требования к имени:

          * длина — от 3 до 63 символов;
          * может содержать строчные буквы латинского алфавита, цифры и дефисы;
          * первый символ — буква, последний — не дефис.

      1. (Опционально) В поле **Описание** добавьте произвольное описание создаваемого образа.
      1. В поле **Ссылка на образ в Object Storage** вставьте ссылку на файл с образом, полученную ранее в Object Storage.
      1. В поле **Поколение оборудования** выберите поколение оборудования, на котором будут работать виртуальные машины, создаваемые из вашего образа. Подробнее о доступных вариантах читайте в разделе [Поколения оборудования](../../concepts/hardware-generations.md).

          {% note tip %}
          
          Чтобы использовать [UEFI/EFI](https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface)-загрузчик, при создании образа и виртуальной машины Compute Cloud выбирайте [поколение оборудования](../../concepts/hardware-generations.md) `Gen 2`. Подробнее о создании ВМ, работающей на виртуализированном оборудовании поколения `Gen 2`, читайте в [инструкции](../vm-create/create-gen2-vm.md).
          
          Чтобы загружаться с дисков объемом более 2 ТБ с разметкой [GUID Partition Table (GPT)](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID) на виртуальных машинах, работающих на оборудовании поколений `Gen 1.1` и `Gen 1.2`, используйте загрузчик [GRUB 2](https://www.gnu.org/software/grub/manual/grub/html_node/BIOS-installation.html).
          
          {% endnote %}

          {% note alert %}
          
          Если вы выбираете поколение `Gen 2`, убедитесь, что загрузчик операционной системы создаваемого образа поддерживает режим загрузки [UEFI](https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface) и таблицу разделов [GPT](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID). В противном случае, виртуальные машины не смогут запустить операционную систему.
          
          {% endnote %}

      1. Чтобы включить [оптимизацию](../../concepts/image.md#images-optimized-for-deployment) образа для развертывания, включите опцию **Оптимизация**.
      1. Нажмите кнопку **Загрузить**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  Чтобы создать новый образ по ссылке, выполните команду:

  ```bash
  yc compute image create \
    --name <имя_образа> \
    --source-uri <URL_образа> \
    --pooled
  ```

  Где:
  * `--name` — имя, которое будет присвоено образу. Требования к имени образа:

      * длина — от 3 до 63 символов;
      * может содержать строчные буквы латинского алфавита, цифры и дефисы;
      * первый символ — буква, последний — не дефис.
  
  * `--source-uri` — ссылка на образ, полученная в Object Storage.
  * `--pooled` — параметр, позволяющий включить [оптимизацию](../../concepts/image.md#images-optimized-for-deployment) образа для развертывания. Необязательный параметр. По умолчанию оптимизация отключена.

  Если необходимо, добавьте описание и укажите [семейство](../../concepts/image.md#family), к которому относится этот образ:

  ```bash
  yc compute image create \
    --name ubuntu-cosmic \
    --description "Ubuntu Server 18.10 (Cosmic Cuttlefish)" \
    --family ubuntu \
    --source-uri "https://storage.yandexcloud.kz/mybucket/cosmic-server-cloudimg-amd64.vmdk"
  ```

  Если вы знаете минимальные требования к размеру [диска](../../concepts/disk.md), который будет создан из этого образа, укажите размер в ГБ:

  ```bash
  yc compute image create \
    --name big-image \
    --min-disk-size 20 \
    --source-uri "https://storage.yandexcloud.kz/mybucket/cosmic-server-cloudimg-amd64.vmdk"
  ```

  {% note info %}
  
  Значение `min-disk-size` должно быть больше объема исходных данных в образе и больше размера виртуального диска, указанного в образе.
  
  Если указать значение `min-disk-size` меньше допустимого, то произойдет ошибка и образ не будет создан. В описании ошибки будет указано минимальное значение в байтах, например `Minimal disk size should be greater or equal than 10737418240`.
  
  Если не указать `min-disk-size`, будет использовано минимальное значение.
  
  {% endnote %}

  Если вы хотите создать образ с закрепленным [поколением](../../concepts/hardware-generations.md) оборудования виртуальной машины `Gen 1.2`:

  ```bash
  yc compute image create \
    --name gen12-image \
    --description "Ubuntu Server Hardware Generation Gen 1.2" \
    --hardware-generation-id legacy \
    --hardware-features pci_topology=v2 \
    --source-uri "https://storage.yandexcloud.kz/mybucket/cosmic-server-cloudimg-amd64.vmdk"
  ```

  {% note tip %}
  
  Чтобы использовать [UEFI/EFI](https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface)-загрузчик, при создании образа и виртуальной машины Compute Cloud выбирайте [поколение оборудования](../../concepts/hardware-generations.md) `Gen 2`. Подробнее о создании ВМ, работающей на виртуализированном оборудовании поколения `Gen 2`, читайте в [инструкции](../vm-create/create-gen2-vm.md).
  
  Чтобы загружаться с дисков объемом более 2 ТБ с разметкой [GUID Partition Table (GPT)](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID) на виртуальных машинах, работающих на оборудовании поколений `Gen 1.1` и `Gen 1.2`, используйте загрузчик [GRUB 2](https://www.gnu.org/software/grub/manual/grub/html_node/BIOS-installation.html).
  
  {% endnote %}

  {% note alert %}
  
  Если вы выбираете поколение `Gen 2`, убедитесь, что загрузчик операционной системы создаваемого образа поддерживает режим загрузки [UEFI](https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface) и таблицу разделов [GPT](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID). В противном случае, виртуальные машины не смогут запустить операционную систему.
  
  {% endnote %}

  Если вы хотите создать образ с закрепленным поколением оборудования виртуальной машины `Gen 2`:

  ```bash
  yc compute image create \
    --name gen2-image \
    --description "Ubuntu Server Hardware Generation Gen 2" \
    --hardware-generation-id generation2 \
    --source-uri "https://storage.yandexcloud.kz/mybucket/cosmic-server-cloudimg-amd64.vmdk"
  ```

  Подробнее о команде `yc compute image create` читайте в [справочнике CLI](../../../cli/cli-ref/compute/cli-ref/image/create.md).

- Terraform {#tf}

  [Terraform](https://www.terraform.io/) позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
  
  Terraform распространяется под лицензией [Business Source License](https://github.com/hashicorp/terraform/blob/main/LICENSE), а [провайдер Yandex Cloud для Terraform](https://github.com/yandex-cloud/terraform-provider-yandex) — под лицензией [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/).
  
  Подробная информация о ресурсах провайдера в документации на сайте [Terraform](https://www.terraform.io/docs/providers/yandex/index.html) или в [зеркале](../../../terraform/index.md).

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../../terraform/authentication.md) соответствующим способом.

  Чтобы создать образ:
  1. Опишите в конфигурационном файле параметры ресурса `yandex_compute_image`.

      Пример структуры конфигурационного файла:

      ```hcl
      resource "yandex_compute_image" "image-1" {
        name                 = "<имя_образа>"
        os_type              = "LINUX"
        source_url           = "<ссылка_на_образ>"
        pooled               = "false"

        hardware_generation {
          generation2_features {}
          legacy_features {
            pci_topology = "PCI_TOPOLOGY_V1|PCI_TOPOLOGY_V2"
          }
        }
      }
      ```

      Где:
      * `name` — имя, которое будет присвоено образу. Требования к имени образа:
      
          * длина — от 3 до 63 символов;
          * может содержать строчные буквы латинского алфавита, цифры и дефисы;
          * первый символ — буква, последний — не дефис.

      * `source_url` — ссылка на образ в Object Storage.
      * `pooled` — параметр, позволяющий включить [оптимизацию](../../concepts/image.md#images-optimized-for-deployment) образа для развертывания. Возможные значения:
      
          * `true` — оптимизация включена.
          * `false` — оптимизация выключена.
          
          Необязательный параметр. По умолчанию оптимизация выключена.
      * `hardware_generation` — настройка [поколения оборудования](../../concepts/hardware-generations.md) виртуальной машины:

          {% note tip %}
          
          Чтобы использовать [UEFI/EFI](https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface)-загрузчик, при создании образа и виртуальной машины Compute Cloud выбирайте [поколение оборудования](../../concepts/hardware-generations.md) `Gen 2`. Подробнее о создании ВМ, работающей на виртуализированном оборудовании поколения `Gen 2`, читайте в [инструкции](../vm-create/create-gen2-vm.md).
          
          Чтобы загружаться с дисков объемом более 2 ТБ с разметкой [GUID Partition Table (GPT)](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID) на виртуальных машинах, работающих на оборудовании поколений `Gen 1.1` и `Gen 1.2`, используйте загрузчик [GRUB 2](https://www.gnu.org/software/grub/manual/grub/html_node/BIOS-installation.html).
          
          {% endnote %}

          {% note alert %}
          
          Если вы выбираете поколение `Gen 2`, убедитесь, что загрузчик операционной системы создаваемого образа поддерживает режим загрузки [UEFI](https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface) и таблицу разделов [GPT](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID). В противном случае, виртуальные машины не смогут запустить операционную систему.
          
          {% endnote %}

          * `generation2_features` — параметр, привязывающий к создаваемому образу поколение оборудования `Gen 2`. Необязательный параметр. Использование этого параметра делает невозможным использование параметра `legacy_features`.
          * `legacy_features` — параметр, позволяющий привязать к создаваемому образу поколение оборудования `Gen 1.2`. Использование этого параметра делает невозможным использование параметра `generation2_features`.

              * `pci_topology` — настройка топологии PCI. Возможные значения:

                  * `PCI_TOPOLOGY_V1` — топология `PCI_TOPOLOGY_V1` соответствует поколению оборудования `Gen 1.1`.
                  * `PCI_TOPOLOGY_V2` — топология `PCI_TOPOLOGY_V2` соответствует поколению оборудования `Gen 1.2`.
          Блок параметров `hardware_generation` — необязательный. Если не задан, к создаваемому образу будет привязано поколение оборудования `Gen 1.1`.
      Подробную информацию о параметрах ресурса `yandex_compute_image` читайте в [документации провайдера Terraform](../../../terraform/resources/compute_image.md).
  1. Создайте ресурсы:

      1. В терминале перейдите в директорию с конфигурационным файлом.
      1. Проверьте корректность конфигурации с помощью команды:
      
         ```bash
         terraform validate
         ```
      
         Если конфигурация является корректной, появится сообщение:
      
         ```bash
         Success! The configuration is valid.
         ```
      
      1. Выполните команду:
      
         ```bash
         terraform plan
         ```
      
         В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
      1. Примените изменения конфигурации:
      
         ```bash
         terraform apply
         ```
      
      1. Подтвердите изменения: введите в терминале слово `yes` и нажмите **Enter**.

      Terraform создаст все требуемые ресурсы. Проверить появление ресурсов можно в [консоли управления](https://kz.console.yandex.cloud) или с помощью команды CLI:

      ```bash
      yc compute image list
      ```

- API {#api}

  Создайте новый образ с помощью метода REST API [create](../../api-ref/Image/create.md) для ресурса [Image](../../api-ref/Image/index.md) или вызова gRPC API [ImageService/Create](../../api-ref/grpc/Image/create.md). В запросе укажите ссылку на образ, полученную в Object Storage.

  {% note tip %}
  
  Чтобы использовать [UEFI/EFI](https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface)-загрузчик, при создании образа и виртуальной машины Compute Cloud выбирайте [поколение оборудования](../../concepts/hardware-generations.md) `Gen 2`. Подробнее о создании ВМ, работающей на виртуализированном оборудовании поколения `Gen 2`, читайте в [инструкции](../vm-create/create-gen2-vm.md).
  
  Чтобы загружаться с дисков объемом более 2 ТБ с разметкой [GUID Partition Table (GPT)](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID) на виртуальных машинах, работающих на оборудовании поколений `Gen 1.1` и `Gen 1.2`, используйте загрузчик [GRUB 2](https://www.gnu.org/software/grub/manual/grub/html_node/BIOS-installation.html).
  
  {% endnote %}

  {% note alert %}
  
  Если вы выбираете поколение `Gen 2`, убедитесь, что загрузчик операционной системы создаваемого образа поддерживает режим загрузки [UEFI](https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface) и таблицу разделов [GPT](https://ru.wikipedia.org/wiki/Таблица_разделов_GUID). В противном случае, виртуальные машины не смогут запустить операционную систему.
  
  {% endnote %}

  По умолчанию создается образ с привязанным [поколением оборудования](../../concepts/hardware-generations.md) `Gen 1.1`.

  Чтобы создать образ с привязанным поколением оборудования `Gen 1.2`, передайте в теле запроса следующий объект:

  ```json
  ...
  "hardwareGeneration": {
    "legacyFeatures": {
      "pciTopology": "PCI_TOPOLOGY_V2"
    }
  }
  ...
  ```

  Чтобы создать образ с привязанным поколением оборудования `Gen 2`, передайте в теле запроса следующий объект:

  ```json
  ...
  "hardwareGeneration": {
    "generation2Features": {}
  }
  ...
  ```

{% endlist %}

После создания образ перейдет в статус `CREATING`. Дождитесь, когда образ перейдет в статус `READY`, прежде чем его использовать.

## Удалите образ из Object Storage {#delete-image}

Если образ был успешно создан, вы можете [удалить файл образа](../../../storage/operations/objects/delete.md) из сервиса Object Storage. Также можно [удалить бакет](../../../storage/operations/buckets/delete.md), если в нем не осталось объектов.

## Создайте ВМ из подготовленного образа {#create-vm-from-user-image}

Вы можете создать виртуальную машину с дисками, из подготовленного заранее образа.

# Создать виртуальную машину из пользовательского образа

{% note info %}

Чтобы создавать, изменять и редактировать [ВМ](../../concepts/vm.md), необходима _минимальная_ [роль](../../security/index.md#compute-editor) `compute.editor` на [каталоге](../../../resource-manager/concepts/resources-hierarchy.md#folder). Для создания ВМ с лицензируемым образом дополнительно потребуется [роль](../../../marketplace/security/index.md#license-manager-viewer) `license-manager.viewer`.

Для создания ВМ с [публичным IP-адресом](../../../vpc/concepts/address.md#public-addresses) дополнительно потребуется [роль](../../../vpc/security/index.md#vpc-public-admin) `vpc.publicAdmin`.

{% endnote %}

## Перед началом работы {#before-you-begin}

[Подготовьте и загрузите](upload.md) [образ](../../concepts/image.md) в Compute Cloud, из которого будет создаваться ВМ.

Убедитесь, что загруженный образ находится в состоянии `READY`.

## Создайте ВМ из подготовленного образа {#create-vm-from-image}

{% note info %}

[Диски](../../concepts/disk.md), [снимки дисков](../../concepts/snapshot.md) и [образы](../../concepts/image.md) — это отдельные ресурсы, которые работают независимо друг от друга в Compute Cloud. Вы можете создавать, удалять и управлять ими по отдельности. Ваши действия с диском не влияют на снимок этого диска или на образ, по которому был создан диск. Даже если вы удалите диск или ВМ с диском, снимок диска и образ останутся.

{% endnote %}

{% list tabs group=instructions %}

- Консоль управления {#console}


  
  @[youtube](https://www.youtube.com/watch?v=M9KoXX4ueAI&list=PL1x4ET76A10bW1KU3twrdm7hH376z8G5R&index=9&pp=iAQB)

  [Смотреть видео в Yandex Cloud Video](https://runtime.strm.yandex.ru/player/video/vplvx6fde7omlmhzhdy3?autoplay=0&mute=0).


  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором будет создана ВМ.
  1. [Перейдите](https://kz.console.yandex.cloud/link/compute) в сервис **Compute Cloud**.
  1. На панели слева выберите ![image](../../../_assets/console-icons/server.svg) **Виртуальные машины**.
  1. Нажмите кнопку **Создать виртуальную машину**.
  1. В блоке **Образ загрузочного диска**:

      * Перейдите на вкладку **Пользовательский**.
      * Нажмите кнопку **Выбрать** и в открывшемся окне выберите **Создать**.
      * В поле **Наполнение** выберите `Образ` и в списке ниже выберите нужный образ.
      * (Опционально) В поле **Дополнительно** включите опцию **Удалять вместе с виртуальной машиной**, если вы хотите автоматически удалять этот диск при удалении ВМ.
      * Нажмите кнопку **Добавить диск**.

  1. В блоке **Расположение** выберите [зону доступности](../../../overview/concepts/geo-scope.md), в которой будет находиться ВМ.
  1. Добавьте [диск](../../concepts/disk.md):

      * В блоке **Диски и файловые хранилища** нажмите кнопку **Добавить**.
      * В открывшемся окне выберите **Диск** → `Создать новый`.
      * В поле **Наполнение** выберите `Образ` и в списке ниже выберите нужный образ.
      * Укажите имя диска.
      * Выберите [тип диска](../../concepts/disk.md#disks_types).
      * Задайте нужные размер диска и размер блока.
      * (Опционально) В поле **Дополнительно** включите опцию **Удалять вместе с виртуальной машиной**, если вы хотите автоматически удалять этот диск при удалении ВМ.
      * Нажмите кнопку **Добавить диск**.

  1. (Опционально) Чтобы [зашифровать](../../concepts/encryption.md) загрузочный или дополнительный диск, в блоке **Диски и файловые хранилища** справа от имени диска нажмите значок ![image](../../../_assets/console-icons/pencil.svg) и задайте параметры шифрования для диска:
     
     * Выберите опцию **Зашифрованный диск**.
     * В поле **Ключ KMS** выберите [ключ](../../../kms/concepts/key.md), которым вы хотите зашифровать диск. Чтобы [создать](../../../kms/operations/key.md#create) новый ключ, нажмите кнопку **Создать**.
     
     Для создания зашифрованного диска нужна [роль](../../../kms/security/index.md#kms-keys-user) `kms.keys.user` или выше.
     
     {% note warning %}
     
     Задать настройки шифрования можно только при создании диска. Шифрование диска нельзя будет отключить или изменить. Также нельзя будет включить шифрование для уже созданного диска.
     
     {% endnote %}
     
     Если деактивировать ключ, которым были зашифрованы диск, снимок или образ, доступ к данным будет приостановлен, пока ключ не будет снова активирован.
     
     {% note alert %}
     
     Если удалить ключ или его [версию](../../../kms/concepts/version.md), которыми были зашифрованы диск, снимок или образ, то доступ к данным будет безвозвратно потерян. Подробнее смотрите [Удаление версии ключа](../../../kms/concepts/version.md#version-distruct).
     
     {% endnote %}
  1. (Опционально) Подключите [файловое хранилище](../../concepts/filesystem.md):
     
     * В блоке **Диски и файловые хранилища** нажмите кнопку **Добавить**.
     
         * В открывшемся окне выберите **Файловое хранилище** и в появившемся списке выберите хранилище, которое требуется подключить.
     
         * Нажмите кнопку **Добавить файловое хранилище**.
  1. В блоке **Вычислительные ресурсы** выберите одну из готовых конфигураций или создайте свою. Чтобы создать свою конфигурацию:
     
     * Перейдите на вкладку **Своя конфигурация**.
     * Выберите [платформу](../../concepts/vm-platforms.md).
     * Укажите [гарантированную долю](../../concepts/performance-levels.md) и необходимое количество vCPU, а также объем RAM.
     * При необходимости включите [программно ускоренную сеть](../../concepts/software-accelerated-network.md).
     * При необходимости сделайте ВМ [прерываемой](../../concepts/preemptible-vm.md).
  1. В блоке **Сетевые настройки**:
     
     * В поле **Подсеть** укажите идентификатор подсети в зоне доступности создаваемой ВМ или выберите [облачную сеть](../../../vpc/concepts/network.md#network) из списка.
     
         * У каждой сети должна быть как минимум одна [подсеть](../../../vpc/concepts/network.md#subnet). Если подсети нет, создайте ее, выбрав **Создать подсеть**.
         * Если сети нет, нажмите **Создать сеть** и создайте ее:
     
             * В открывшемся окне укажите имя сети и выберите каталог, в котором она будет создана.
             * (Опционально) Выберите опцию **Создать подсети**, чтобы автоматически создать подсети во всех зонах доступности.
             * Нажмите **Создать сеть**.
     
     * В поле **Публичный IP-адрес** выберите способ назначения адреса:
     
         * `Автоматически` — чтобы назначить случайный IP-адрес из пула адресов Yandex Cloud. В этом случае можно включить [защиту от DDoS-атак](../../../vpc/ddos-protection/index.md) при помощи опции ниже.
         * `Список` — чтобы выбрать публичный IP-адрес из списка зарезервированных заранее статических адресов. Подробнее читайте в разделе [Сделать динамический публичный IP-адрес статическим](../../../vpc/operations/set-static-ip.md).
         * `Без адреса` — чтобы не назначать публичный IP-адрес.
     
             {% note info %}
     
             Учитывайте следующие особенности ВМ без публичного IP-адреса:
             * К такой ВМ нельзя будет подключиться из интернета, например по SSH.
             * Подключиться к ВМ можно будет с другой ВМ в той же [облачной сети](../../../vpc/concepts/network.md#network) по приватному IP-адресу.
             * Чтобы предоставить такой ВМ исходящий доступ в интернет, используйте [NAT-шлюз](../../../vpc/concepts/gateways.md#nat-gateway) или [NAT-инстанс](../../../tutorials/routing/nat-instance/index.md).
     
             {% endnote %}
     
         За использование публичного IP-адреса взимается плата согласно [правилам тарификации Yandex Virtual Private Cloud](../../../vpc/pricing.md).
     
     * Выберите [подходящие группы безопасности](../../../vpc/concepts/security-groups.md):
     
         * Чтобы подключаться к виртуальной машине по `SSH`, группа безопасности должна разрешать входящий сетевой трафик по протоколам `TCP` и `UDP` на порт `22`.
     
         * Чтобы подключаться к виртуальной машине по `RDP`, группа безопасности должна разрешать входящий сетевой трафик по протоколам `TCP` и `UDP` на порт `3389`.
         
         Если оставить поле пустым, виртуальной машине будет автоматически назначена [группа безопасности по умолчанию](../../../vpc/concepts/security-groups.md#default-security-group), позволяющая подключаться к ВМ по `SSH` и `RDP`.
     
     * Разверните блок **Дополнительно** и в поле **Внутренний IPv4 адрес** выберите способ назначения внутренних адресов:
     
         * `Автоматически` — чтобы назначить случайный IP-адрес из пула адресов, доступных в выбранной подсети.
         * `Вручную` — чтобы задать внутренний IP-адрес ВМ вручную.
         * При необходимости включите опцию **Защита от DDoS-атак**. Опция доступна, если ранее в настройках публичного адреса вы выбрали автоматический способ назначения адреса.
     
     * (Опционально) Создайте записи для ВМ в [зоне DNS](../../../dns/concepts/dns-zone.md):
     
         * Разверните блок **Настройки DNS для внутренних адресов** и нажмите **Добавить запись**.
         * Укажите зону, FQDN и время жизни записи. При указании FQDN для зоны доступна опция `Определять автоматически`.
           Вы можете добавить несколько записей во [внутренние зоны](../../../dns/concepts/dns-zone.md) DNS. Подробнее в разделе [Интеграция Cloud DNS с Compute Cloud](../../../dns/concepts/compute-integration.md).
         * Чтобы создать еще одну запись, нажмите кнопку **Добавить запись**.
     
     Если вы хотите добавить на ВМ дополнительный [сетевой интерфейс](../../concepts/network.md), нажмите кнопку **Добавить сетевой интерфейс** и в появившемся блоке настроек нового интерфейса повторите действия, описанные выше в этом шаге. На одну ВМ можно добавить до восьми сетевых интерфейсов.
  1. В блоке **Доступ**:
     
     * Выберите **Доступ по OS Login**, чтобы [подключаться](../vm-connect/os-login.md) к создаваемой ВМ и управлять доступом к ней с помощью [OS Login](../../../organization/concepts/os-login.md) в Yandex Identity Hub.
     
         Используя OS Login, вы сможете подключаться к ВМ по SSH-ключам и SSH-сертификатам с помощью стандартного SSH-клиента или [интерфейса командной строки Yandex Cloud](../../../cli/quickstart.md). OS Login позволяет ротировать SSH-ключи, используемые для доступа к ВМ, и является наиболее [безопасным](../../../security/domains/iaas-checklist.md#vm-security) вариантом доступа.
     
     * Если доступ по OS Login вам не подходит, выберите вариант **SSH-ключ** и укажите данные для доступа к ВМ:
     
         * В поле **Логин** введите имя пользователя.
     
             {% note alert %}
     
             Не используйте логин `root` или другие [имена, зарезервированные ОС](https://github.com/canonical/subiquity/blob/main/reserved-usernames). Для выполнения операций, требующих прав суперпользователя, используйте команду `sudo`.
     
             {% endnote %}
     
         * В поле **SSH-ключ** выберите SSH-ключ, сохраненный в вашем профиле [пользователя организации](../../../organization/concepts/membership.md).
           
           Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
           
           1. Нажмите кнопку **Добавить ключ**.
           1. Задайте имя SSH-ключа.
           1. Выберите вариант:
           
               * `Ввести вручную` — вставьте содержимое открытого [SSH](../../../glossary/ssh-keygen.md)-ключа. Пару SSH-ключей необходимо [создать](../vm-connect/ssh.md#creating-ssh-keys) самостоятельно.
               * `Загрузить из файла` — загрузите открытую часть SSH-ключа. Пару SSH-ключей необходимо создать самостоятельно.
               * `Сгенерировать ключ` — автоматическое создание пары SSH-ключей.
               
                 При добавлении сгенерированного SSH-ключа будет создан и загружен архив с парой ключей. В ОС на базе Linux или macOS распакуйте архив в папку `/home/<имя_пользователя>/.ssh`. В ОС Windows распакуйте архив в папку `C:\Users\<имя_пользователя>/.ssh`. Дополнительно вводить открытый ключ в консоли управления не требуется.
           
           1. Нажмите кнопку **Добавить**.
           
           SSH-ключ будет добавлен в ваш профиль пользователя организации. Если в организации [отключена](../../../organization/operations/os-login-access.md) возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя внутри создаваемого ресурса.
     
     Если вы хотите добавить на ВМ одновременно нескольких пользователей с SSH-ключами, [задайте](../../concepts/metadata/sending-metadata.md) данные этих пользователей в блоке **Метаданные**. С помощью метаданных вы также можете [установить дополнительное ПО](../vm-create/create-with-cloud-init-scripts.md) на ВМ при ее создании.
     
     В публичных образах Linux, предоставляемых Yandex Cloud, возможность подключения по протоколу SSH с использованием логина и пароля по умолчанию отключена.
  1. (Опционально) Активируйте резервное копирование:
     
     1. Включите опцию **Резервное копирование**.
     1. Выберите вариант **Cloud Backup**.
     1. В секции **Cloud Backup** нажмите кнопку **Выберите политику** ![chevron-down](../../../_assets/console-icons/chevron-down.svg) и в открывшемся списке выберите [политику резервного копирования](../../../backup/concepts/policy.md), которая будет использоваться Cloud Backup для работы с ВМ.
     
         При необходимости нажмите ![circle-plus](../../../_assets/console-icons/circle-plus.svg) **Создать политику**, чтобы создать новую политику.
     
     Чтобы создать новую ВМ с подключением к Cloud Backup, вашему аккаунту должна быть назначена [роль](../../../backup/security/index.md#backup-user) `backup.user` или выше на [каталог](../../../resource-manager/concepts/resources-hierarchy.md#folder), в котором вы создаете ВМ.
     
     {% note info %}
     
     Если у вашего аккаунта нет назначенной роли `backup.user` или выше, вы можете подключить ВМ к Cloud Backup с помощью [сервисного аккаунта](../../../iam/concepts/users/service-accounts.md), которому назначена такая роль. 
     
     Для этого разверните блок **Дополнительно** и в поле **Сервисный аккаунт** выберите подходящий сервисный аккаунт. При необходимости [создайте](../../../iam/operations/sa/create.md) новый сервисный аккаунт и [назначьте](../../../iam/operations/sa/assign-role-for-sa.md) ему [роль](../../../backup/security/index.md#backup-user) `backup.user`.
     
     {% endnote %}
     
     Подробнее читайте в разделе [Подключение виртуальных машин Yandex Compute Cloud к Cloud Backup](../../../backup/concepts/vm-connection/compute.md). 
  1. В блоке **Общая информация** задайте имя ВМ:

      * длина — от 3 до 63 символов;
      * может содержать строчные буквы латинского алфавита, цифры и дефисы;
      * первый символ — буква, последний — не дефис.

      {% note info %}
      
      Имя виртуальной машины используется для генерации [внутреннего FQDN](../../concepts/network.md#hostname) единожды — при создании ВМ. Если для вас важен внутренний FQDN, учитывайте это и задавайте нужное имя ВМ при создании.
      
      {% endnote %}
  1. В блоке **Дополнительно**:
     
     * (Опционально) Выберите или создайте [сервисный аккаунт](../../../iam/concepts/users/service-accounts.md). Использование сервисного аккаунта позволяет гибко настраивать права доступа к ресурсам.
     * (Опционально) Разрешите доступ к [серийной консоли](../../concepts/serial-console.md).
     * (Опционально) Чтобы настроить поставку [системных метрик Linux](../../../monitoring/operations/unified-agent/linux_metrics.md) и дополнительных метрик ваших приложений, в блоке **Мониторинг** включите опцию **Агент сбора метрик** и выберите:
       * **Yandex Monitoring** — [установить агент](../../../monitoring/concepts/data-collection/unified-agent/index.md) для сбора дополнительных метрик ВМ и приложений.
       * **Yandex Managed Service for Prometheus®** — [установить и настроить агент](../../../monitoring/operations/prometheus/ingestion/prometheus-agent.md) для сбора дополнительных метрик ВМ и приложений в формате Prometheus:
          * Выберите или создайте воркспейс, в котором будут храниться метрики.
          * (Опционально) Опишите в формате JSON [параметры поставки](../../../monitoring/operations/prometheus/ingestion/prometheus-agent.md) собственных метрик.
     * (Опционально) В блоке **Размещение** выберите [группу размещения](../../concepts/placement-groups.md) ВМ.
  1. Нажмите кнопку **Создать ВМ**.

  ВМ появится в списке. При создании ВМ назначаются [IP-адрес](../../../vpc/concepts/address.md) и [имя хоста](../../../vpc/concepts/address.md#fqdn) (FQDN).

  За статусом ВМ можно наблюдать в серийной консоли или в [выводе последовательного порта](../vm-info/get-serial-port-output.md).

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для создания ВМ:

      ```bash
      yc compute instance create --help
      ```
  1. Получите список образов в [каталоге](../../../resource-manager/concepts/resources-hierarchy.md#folder) по умолчанию:

      ```bash
      yc compute image list
      ```

      Результат:

      ```text
      +----------------------+-----------------+--------+-------------+--------+
      |          ID          |      NAME       | FAMILY | PRODUCT IDS | STATUS |
      +----------------------+-----------------+--------+-------------+--------+
      |         ...          |        ...      |        |             |  ...   |
      | fd8gkcd3l6ov******** | your-test-image |        |             | READY  |
      |         ...          |        ...      |        |             |  ...   |
      +----------------------+-----------------+--------+-------------+--------+
      ```
  1. Выберите идентификатор (`ID`) или имя (`NAME`) нужного образа.
  1. Выберите [подсеть](../../../vpc/concepts/network.md#subnet):

      ```bash
      yc vpc subnet list
      ```

      Результат:

      ```text
      +----------------------+---------------------------+----------------------+----------------+-------------------+-----------------+
      |          ID          |           NAME            |      NETWORK ID      | ROUTE TABLE ID |       ZONE        |      RANGE      |
      +----------------------+---------------------------+----------------------+----------------+-------------------+-----------------+
      | e9bnlm18l70a******** |   default-kz1-a   | enpe3m3fa00u******** |                |   kz1-a   | [10.128.0.0/24] |
      +----------------------+---------------------------+----------------------+----------------+-------------------+-----------------+
      ```
  1. Создайте ВМ в [каталоге](../../../resource-manager/concepts/resources-hierarchy.md#folder) по умолчанию:

      ```bash
      yc compute instance create \
        --name <имя_ВМ> \
        --zone <зона_доступности> \
        --network-interface subnet-name=<имя_подсети>,nat-ip-version=ipv4 \
        --create-boot-disk name=<имя_диска>,size=<размер_диска_ГБ>,image-id=<идентификатор_пользовательского_образа>,kms-key-id=<идентификатор_ключа> \
        --ssh-key <путь_к_файлу_открытого_ключа>
      ```

      Где:
      * `--name` — имя ВМ. Требования к имени:

        * длина — от 3 до 63 символов;
        * может содержать строчные буквы латинского алфавита, цифры и дефисы;
        * первый символ — буква, последний — не дефис.

        {% note info %}
        
        Имя виртуальной машины используется для генерации [внутреннего FQDN](../../concepts/network.md#hostname) единожды — при создании ВМ. Если для вас важен внутренний FQDN, учитывайте это и задавайте нужное имя ВМ при создании.
        
        {% endnote %}

      * `--zone` — [зона доступности](../../../overview/concepts/geo-scope.md), которая соответствует выбранной подсети.
      * `--network-interface` — настройки [сетевого интерфейса](../../concepts/network.md) ВМ:
          * `subnet-name` — имя выбранной подсети.
          * `nat-ip-version=ipv4` – [публичный IP-адрес](../../../vpc/concepts/address.md#public-addresses). Чтобы создать ВМ без публичного IP-адреса, исключите параметр.

          Если вы хотите добавить на ВМ несколько [сетевых интерфейсов](../../concepts/network.md), задайте параметр `--network-interface` необходимое количество раз. На одну ВМ можно добавить до восьми сетевых интерфейсов.

      * `--create-boot-disk` — настройки загрузочного диска ВМ:
          * `name` — имя загрузочного диска. Требования к имени:

              * длина — от 3 до 63 символов;
              * может содержать строчные буквы латинского алфавита, цифры и дефисы;
              * первый символ — буква, последний — не дефис.

          * `size` — размер диска в ГБ.
          * `image-id` — идентификатор пользовательского образа для ВМ. Укажите идентификатор [загруженного](upload.md) образа.
          * `kms-key-id` — идентификатор [симметричного ключа KMS](../../../kms/concepts/key.md) для создания зашифрованного загрузочного диска. Необязательный параметр.

            Для создания зашифрованного диска нужна [роль](../../../kms/security/index.md#kms-keys-user) `kms.keys.user` или выше.

            {% note warning %}
            
            Задать настройки шифрования можно только при создании диска. Шифрование диска нельзя будет отключить или изменить. Также нельзя будет включить шифрование для уже созданного диска.
            
            {% endnote %}

            Если деактивировать ключ, которым были зашифрованы диск, снимок или образ, доступ к данным будет приостановлен, пока ключ не будет снова активирован.
            
            {% note alert %}
            
            Если удалить ключ или его [версию](../../../kms/concepts/version.md), которыми были зашифрованы диск, снимок или образ, то доступ к данным будет безвозвратно потерян. Подробнее смотрите [Удаление версии ключа](../../../kms/concepts/version.md#version-distruct).
            
            {% endnote %}

      * `--ssh-key` — путь к файлу с [публичным SSH-ключом](../vm-connect/ssh.md#creating-ssh-keys). Для этого ключа на ВМ будет автоматически создан пользователь `yc-user`.

          При создании ВМ из публичного образа [Yandex Cloud Marketplace](https://yandex.cloud/ru-kz/marketplace) обязательно передавайте в ВМ SSH-ключ, поскольку доступ по протоколу SSH с использованием логина и пароля для таких образов по умолчанию отключен.

          Если вы хотите добавить на ВМ одновременно нескольких пользователей с SSH-ключами, [задайте](../../concepts/metadata/sending-metadata.md) данные этих пользователей с помощью параметра `--metadata-from-file`.

    При создании виртуальной машине назначаются [IP-адрес](../../../vpc/concepts/address.md#public-addresses) и [доменное имя](../../../vpc/concepts/address.md#fqdn) (FQDN).

      Результат:

      ```text
      id: fhmue131en37********
      folder_id: b1g681qpemb4********
      created_at: "2024-03-02T12:58:43Z"
      name: test-vm-from-image
      zone_id: kz1-a
      platform_id: standard-v2
      resources:
        memory: "2147483648"
        cores: "2"
        core_fraction: "100"
      status: RUNNING
      metadata_options:
        gce_http_endpoint: ENABLED
        aws_v1_http_endpoint: ENABLED
        gce_http_token: ENABLED
        aws_v1_http_token: DISABLED
      boot_disk:
        mode: READ_WRITE
        device_name: fhmn9n1uhutc********
        auto_delete: true
        disk_id: fhmn9n1uhutc********
      network_interfaces:
        - index: "0"
          mac_address: d0:0d:1e:70:46:17
          subnet_id: e9bb9n0v4h17********
          primary_v4_address:
            address: 10.12*.*.**
            one_to_one_nat:
              address: 178.154.***.***
              ip_version: IPV4
      gpu_settings: {}
      fqdn: fhmue131en37********.auto.internal
      scheduling_policy: {}
      network_settings:
        type: STANDARD
      placement_policy: {}
      ```

- Terraform {#tf}

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../../terraform/authentication.md) соответствующим способом.

  Чтобы создать ВМ из пользовательского образа:
  1. Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:

      ```hcl
      resource "yandex_compute_disk" "boot-disk" {
        name     = "<имя_диска>"
        type     = "<тип_диска>"
        zone     = "<зона_доступности>"
        size     = "<размер_диска>"
        image_id = "<идентификатор_пользовательского_образа>"
      }

      resource "yandex_compute_instance" "vm-1" {
        name                      = "vm-from-image"
        allow_stopping_for_update = true
        platform_id               = "standard-v3"
        zone                      = "<зона_доступности>"

        resources {
          cores  = <количество_ядер_vCPU>
          memory = <объем_RAM_ГБ>
        }

        boot_disk {
          disk_id = yandex_compute_disk.boot-disk.id
        }

        network_interface {
          subnet_id = "${yandex_vpc_subnet.subnet-1.id}"
          nat       = true
        }

        metadata = {
          ssh-keys = "<имя_пользователя>:<содержимое_SSH-ключа>"
        }
      }

      resource "yandex_vpc_network" "network-1" {
        name = "network1"
      }

      resource "yandex_vpc_subnet" "subnet-1" {
        name       = "subnet1"
        zone       = "<зона_доступности>"
        network_id = "${yandex_vpc_network.network-1.id}"
      }
      ```

      Где:

      * `yandex_compute_disk` — описание загрузочного [диска](../../concepts/disk.md):
          * `name` — имя диска. Требования к имени:

              * длина — от 3 до 63 символов;
              * может содержать строчные буквы латинского алфавита, цифры и дефисы;
              * первый символ — буква, последний — не дефис.

          * `type` — тип создаваемого диска.
          * `zone` — [зона доступности](../../../overview/concepts/geo-scope.md), в которой будет находиться диск.
          * `size` — размер диска в ГБ.
          * `image_id` — идентификатор пользовательского образа для ВМ. Укажите идентификатор [загруженного](upload.md) образа.
      * `yandex_compute_instance` — описание ВМ:
          * `name` — имя ВМ. Требования к имени:

              * длина — от 3 до 63 символов;
              * может содержать строчные буквы латинского алфавита, цифры и дефисы;
              * первый символ — буква, последний — не дефис.

              {% note info %}
              
              Имя виртуальной машины используется для генерации [внутреннего FQDN](../../concepts/network.md#hostname) единожды — при создании ВМ. Если для вас важен внутренний FQDN, учитывайте это и задавайте нужное имя ВМ при создании.
              
              {% endnote %}

          * `allow_stopping_for_update` — разрешение на остановку работы виртуальной машины для внесения изменений. Установите значение `true`, если планируете изменять сетевые настройки или вычислительные ресурсы ВМ с помощью Terraform. Значение по умолчанию `false`.
          * `platform_id` — [платформа](../../concepts/vm-platforms.md).
          * `zone` — зона доступности, в которой будет находиться ВМ.
          * `resources` — количество ядер vCPU и объем RAM, доступные ВМ. Значения должны соответствовать выбранной [платформе](../../concepts/vm-platforms.md).
          * `boot_disk` — настройки загрузочного диска. Укажите идентификатор диска.
          * `network_interface` — настройки [сетевого интерфейса](../../concepts/network.md) ВМ. Укажите идентификатор выбранной [подсети](../../../vpc/concepts/network.md#subnet). Чтобы автоматически назначить ВМ [публичный IP-адрес](../../../vpc/concepts/address.md#public-addresses), укажите `nat = true`.

              Если вы хотите добавить на ВМ несколько [сетевых интерфейсов](../../concepts/network.md), задайте блок `network_interface` необходимое количество раз.

          * `metadata` — в метаданных необходимо передать открытый ключ для [SSH-доступа](../../../glossary/ssh-keygen.md) на ВМ. Подробнее в разделе [Метаданные виртуальной машины](../../concepts/vm-metadata.md).
      * `yandex_vpc_network` — описание облачной сети.
      * `yandex_vpc_subnet` — описание подсети, к которой будет подключена ВМ.

      {% note info %}

      Если у вас уже есть подходящие ресурсы (облачная сеть и подсеть), описывать их повторно не нужно. Используйте их имена и идентификаторы в соответствующих параметрах.

      {% endnote %}

      Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, читайте в [документации провайдера](../../../terraform/index.md).

  1. Создайте ресурсы:

      1. В терминале перейдите в директорию с конфигурационным файлом.
      1. Проверьте корректность конфигурации с помощью команды:
      
         ```bash
         terraform validate
         ```
      
         Если конфигурация является корректной, появится сообщение:
      
         ```bash
         Success! The configuration is valid.
         ```
      
      1. Выполните команду:
      
         ```bash
         terraform plan
         ```
      
         В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
      1. Примените изменения конфигурации:
      
         ```bash
         terraform apply
         ```
      
      1. Подтвердите изменения: введите в терминале слово `yes` и нажмите **Enter**.

      После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в [консоли управления](https://kz.console.yandex.cloud).

- API {#api}

  Воспользуйтесь методом REST API [create](../../api-ref/Instance/create.md) для ресурса [Instance](../../api-ref/Instance/index.md) или вызовом gRPC API [InstanceService/Create](../../api-ref/grpc/Instance/create.md).

{% endlist %}

## Отключите проверку метаданных {#disable-metadata-check}

Если вы создаете ВМ из образа на основе Amazon Machine Image, `cloud-init` проверит, что ВМ запускается в Amazon EC2. ВМ в Yandex Compute Cloud не пройдут проверку и могут работать некорректно.

Чтобы этого не произошло, отключите проверку метаданных на ВМ. Для этого создайте в директории `/etc/cloud/cloud.cfg.d` конфигурационный файл, например `99-ec2-datasource.cfg`, и добавьте в него код:

```yaml
#cloud-config
datasource:
  Ec2:
    strict_id: false
```

#### Полезные ссылки {#see-also}

* [Подготовить свой образ диска](custom-image.md)
* [Подключиться к виртуальной машине Linux по SSH](../vm-connect/ssh.md)

О стоимости использования Object Storage читайте в разделе [Правила тарификации для Object Storage](../../../storage/pricing.md).