[Документация Yandex Cloud](../../../index.md) > [Yandex Compute Cloud](../../index.md) > [Пошаговые инструкции](../index.md) > Группы виртуальных машин > Управление > Перенести группу ВМ в другую зону доступности

# Перенести группу виртуальных машин в другую зону доступности


{% note info %}

В [регионе Казахстан](../../../overview/concepts/region.md) доступна только [зона доступности](../../../overview/concepts/geo-scope.md) `kz1-a`.

{% endnote %}


Если группа ВМ подключена к балансировщику нагрузки, воспользуйтесь следующими инструкциями:
* [Перенести группу виртуальных машин с сетевым балансировщиком нагрузки в другую зону доступности](move-group-with-nlb.md)
* [Перенести группу виртуальных машин с L7-балансировщиком в другую зону доступности](move-group-with-alb.md)

Чтобы перенести группу ВМ в другую зону доступности:
1. [Создайте](../../../vpc/operations/subnet-create.md) подсеть в зоне доступности, в которую вы хотите перенести группу ВМ.
1. Добавьте ВМ группы в новую зону доступности:

    {% list tabs group=instructions %}
    
    - Консоль управления {#console}
    
      1. В [консоли управления](https://kz.console.yandex.cloud) откройте [каталог](../../../resource-manager/concepts/resources-hierarchy.md#folder), в котором находится нужная [группа виртуальных машин](../../concepts/instance-groups/index.md).
      1. [Перейдите](https://kz.console.yandex.cloud/link/compute) в сервис **Compute Cloud**.
      1. На панели слева выберите ![image](../../../_assets/console-icons/layers-3-diagonal.svg) **Группы виртуальных машин**.
      1. Выберите группу ВМ, которую хотите изменить.
      1. В правом верхнем углу нажмите ![image](../../../_assets/console-icons/pencil.svg) **Редактировать**.
      1. В блоке **Распределение** добавьте [зону доступности](../../../overview/concepts/geo-scope.md), в которую вы хотите перенести группу ВМ. 
      1. Если у вас группа ВМ с [ручным масштабированием](../../concepts/instance-groups/scale.md#fixed-scale), в блоке **Масштабирование** укажите размер группы, достаточный для размещения во всех выбранных зонах доступности.
    
         Вернуть изначальное количество ВМ можно будет после воссоздания всех ВМ группы в новой зоне доступности и удаления всех ВМ в старой.
      1. Если у вас [автоматически масштабируемая](../../concepts/instance-groups/scale.md#auto-scale) группа ВМ с ручной (`OPPORTUNISTIC`) [стратегией остановки](../../concepts/instance-groups/policies/deploy-policy.md#strategy), в поле **Останавливать машины по стратегии** измените стратегию на автоматическую (`PROACTIVE`).
    
         Вернуть ручную стратегию остановки можно будет после воссоздания всех ВМ группы в новой зоне доступности и удаления всех ВМ в старой.
      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`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
    
      1. Откройте файл со [спецификацией](../../concepts/instance-groups/specification.md) [группы виртуальных машин](../../concepts/instance-groups/index.md) и измените [шаблон ВМ](../../concepts/instance-groups/instance-template.md):
         * В секции `allocation_policy` добавьте новую [зону доступности](../../../overview/concepts/geo-scope.md).
         * В секции `network_interface_specs` добавьте идентификатор [подсети](../../../vpc/concepts/network.md#subnet), созданной ранее.
         * Если у вас группа ВМ с [ручным масштабированием](../../concepts/instance-groups/scale.md#fixed-scale), в секции `scale_policy` укажите размер группы, достаточный для размещения во всех выбранных зонах доступности.
    
           Вернуть изначальное количество ВМ можно будет после воссоздания всех ВМ группы в новой зоне доступности и удаления всех ВМ в старой.
         * Если у вас [автоматически масштабируемая](../../concepts/instance-groups/scale.md#auto-scale) группа ВМ с ручной (`OPPORTUNISTIC`) [стратегией остановки](../../concepts/instance-groups/policies/deploy-policy.md#strategy), в секции `deploy_policy` измените стратегию на автоматическую (`PROACTIVE`).
    
           Вернуть ручную стратегию остановки можно будет после воссоздания всех ВМ группы в новой зоне доступности и удаления всех ВМ в старой.
      1. Посмотрите описание команды CLI для изменения группы ВМ:
    
         ```bash
         yc compute instance-group update --help
         ```
    
      1. Получите список всех групп ВМ в [каталоге](../../../resource-manager/concepts/resources-hierarchy.md#folder) по умолчанию:
    
         ```bash
         yc compute instance-group list
         ```
    
         Результат:
    
         ```text
         +----------------------+---------------------------------+--------+--------+
         |          ID          |              NAME               | STATUS |  SIZE  |
         +----------------------+---------------------------------+--------+--------+
         | cl15sjqilrei******** | first-fixed-group-with-balancer | ACTIVE |      3 |
         | cl19s7dmihgm******** | test-group                      | ACTIVE |      2 |
         +----------------------+---------------------------------+--------+--------+
         ```
    
      1. Измените группу ВМ:
    
         ```bash
         yc compute instance-group update \
           --id <идентификатор_группы_ВМ> \
           --file <файл_со_спецификацией_ВМ>
         ```
    
         Где:
         * `--id` — идентификатор группы ВМ.
         * `--file` — путь к файлу со спецификацией группы ВМ.
    
         Результат:
    
         ```text
         id: cl15sjqilrei********
         ...
         allocation_policy:
         zones:
         - zone_id: <старая_зона_доступности>
         - zone_id: <новая_зона_доступности>
         ...
         ```
    
    - Terraform {#tf}
    
      Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
      1. Откройте файл конфигурации Terraform для [группы виртуальных машин](../../concepts/instance-groups/index.md) и добавьте в блоке `allocation_policy` новую [зону доступности](../../../overview/concepts/geo-scope.md), а в блоке `network_interface` идентификатор [подсети](../../../vpc/concepts/network.md#subnet), созданной ранее.
    
         ```hcl
         ...
         network_interface {
           subnet_ids = [
             "<идентификатор_подсети_в_старой_зоне_доступности>",
             "<идентификатор_подсети_в_новой_зоне_доступности>"
           ]
         }
         ...
         allocation_policy {
           zones = [
             "<старая_зона_доступности>",
             "<новая_зона_доступности>"
           ]
         }
         ...
         ```
    
         Где:
         * `zones` — зоны доступности, в которых будет размещена группа ВМ — новая и старая.
         * `subnet_ids` — идентификаторы подсетей в зонах доступности, в которых будет размещена группа ВМ.
    
         Если у вас группа ВМ с [ручным масштабированием](../../concepts/instance-groups/scale.md#fixed-scale), в секции `scale_policy` укажите размер группы, достаточный для размещения во всех выбранных зонах доступности.
    
         ```hcl
         ...
         scale_policy {
           fixed_scale {
             size = <количество_ВМ_в_группе>
           }
         }
         ...
         ```
    
         Вернуть изначальное количество ВМ можно будет после воссоздания всех ВМ группы в новой зоне доступности и удаления всех ВМ в старой.
    
         Если у вас [автоматически масштабируемая](../../concepts/instance-groups/scale.md#auto-scale) группа ВМ с ручной (`OPPORTUNISTIC`) [стратегией остановки](../../concepts/instance-groups/policies/deploy-policy.md#strategy), измените стратегию на автоматическую (`PROACTIVE`):
    
         ```hcl
         ...
         deploy_policy {
           strategy = "proactive" 
         }
         ...
         ```
    
         Вернуть ручную стратегию остановки можно будет после воссоздания всех ВМ группы в новой зоне доступности и удаления всех ВМ в старой.
    
         Более подробную информацию о параметрах ресурсов в Terraform читайте в [документации провайдера](../../../terraform/resources/compute_instance_group.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) или с помощью команды [CLI](../../../cli/quickstart.md):
    
         ```bash
         yc compute instance-group get <имя_группы_ВМ>
         ```
    
    - API {#api}
    
      Воспользуйтесь методом REST API [update](../../instancegroup/api-ref/InstanceGroup/update.md) для ресурса [InstanceGroup](../../instancegroup/api-ref/InstanceGroup/index.md) или вызовом gRPC API [InstanceGroupService/Update](../../instancegroup/api-ref/grpc/InstanceGroup/update.md).
    
      Если у вас группа ВМ с [ручным масштабированием](../../concepts/instance-groups/scale.md#fixed-scale), задайте размер группы, достаточный для размещения ВМ во всех выбранных зонах доступности. Вернуть изначальное количество ВМ можно будет после воссоздания всех ВМ группы в новой зоне доступности и удаления всех ВМ в старой.
    
      Если у вас [автоматически масштабируемая](../../concepts/instance-groups/scale.md#auto-scale) группа ВМ с ручной (`OPPORTUNISTIC`) [стратегией остановки](../../concepts/instance-groups/policies/deploy-policy.md#strategy), измените стратегию на автоматическую (`PROACTIVE`). Вернуть ручную стратегию остановки можно будет после воссоздания всех ВМ группы в новой зоне доступности и удаления всех ВМ в старой.
    
    {% endlist %}
    
    Дождитесь пока ВМ создадутся в новой зоне доступности и перейдут в статус `Running Actual`.

1. Удалите ВМ группы из старой зоны доступности:

    {% list tabs group=instructions %}
    
    - Консоль управления {#console}
    
      1. В [консоли управления](https://kz.console.yandex.cloud) откройте [каталог](../../../resource-manager/concepts/resources-hierarchy.md#folder), в котором находится нужная [группа виртуальных машин](../../concepts/instance-groups/index.md).
      1. [Перейдите](https://kz.console.yandex.cloud/link/compute) в сервис **Compute Cloud**.
      1. На панели слева выберите ![image](../../../_assets/console-icons/layers-3-diagonal.svg) **Группы виртуальных машин**.
      1. Выберите группу ВМ, которую хотите изменить.
      1. В правом верхнем углу нажмите ![image](../../../_assets/console-icons/pencil.svg) **Редактировать**.
      1. В блоке **Распределение** отключите старую [зону доступности](../../../overview/concepts/geo-scope.md).
      1. Нажмите **Сохранить**.
    
    - CLI {#cli}
    
      1. Откройте файл со [спецификацией](../../concepts/instance-groups/specification.md) [группы виртуальных машин](../../concepts/instance-groups/index.md) и измените [шаблон ВМ](../../concepts/instance-groups/instance-template.md):
         * В секции `allocation_policy` удалите старую зону доступности.
         * В секции `network_interface_specs` удалите идентификатор [подсети](../../../vpc/concepts/network.md#subnet) в старой зоне доступности.
      1. Измените группу ВМ:
    
         ```bash
         yc compute instance-group update \
           --id <идентификатор_группы_ВМ> \
           --file <файл_со_спецификацией_ВМ>
         ```
    
         Где:
         * `--id` — идентификатор группы ВМ.
         * `--file` — путь к файлу со спецификацией группы ВМ.
    
         Результат:
    
         ```text
         id: cl15sjqilrei********
         ...
         allocation_policy:
         zones:
         - zone_id: <новая_зона_доступности>
         ...
         ```
    
    - Terraform {#tf}
    
      1. Откройте файл конфигурации Terraform для [группы виртуальных машин](../../concepts/instance-groups/index.md) и удалите в блоке `allocation_policy` старую [зону доступности](../../../overview/concepts/geo-scope.md), а в блоке `network_interface` идентификатор [подсети](../../../vpc/concepts/network.md#subnet) в старой зоне:
    
         ```hcl
         ...
         network_interface {
           subnet_ids = ["<идентификатор_подсети_в_новой_зоне_доступности>"]
         }
         ...
         allocation_policy {
           zones = ["<новая_зона_доступности>"]
         }
         ...
         ```
    
         Где:
         * `zones` — зона доступности, в которую вы хотите переместить группу ВМ. Можно указать несколько зон.
         * `subnet_ids` — идентификатор подсети в той зоне доступности, в которую вы хотите перенести группу ВМ.
    
         Более подробную информацию о параметрах ресурсов в Terraform читайте в [документации провайдера](../../../terraform/resources/compute_instance_group.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) или с помощью команды [CLI](../../../cli/quickstart.md):
    
         ```bash
         yc compute instance-group get <имя_группы_ВМ>
         ```
    
    - API {#api}
    
      Воспользуйтесь методом REST API [update](../../instancegroup/api-ref/InstanceGroup/update.md) для ресурса [InstanceGroup](../../instancegroup/api-ref/InstanceGroup/index.md) или вызовом gRPC API [InstanceGroupService/Update](../../instancegroup/api-ref/grpc/InstanceGroup/update.md).
    
    {% endlist %}

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

* [Перенести группу виртуальных машин с сетевым балансировщиком нагрузки в другую зону доступности](move-group-with-nlb.md)
* [Перенести группу виртуальных машин с L7-балансировщиком в другую зону доступности](move-group-with-alb.md)