Автоматическая привязка политики резервного копирования Yandex Cloud Backup к ВМ с помощью консоли управления, CLI или API
Чтобы создать виртуальную машину с автоматической привязкой к политике резервного копирования Cloud Backup:
- Подготовьте облако к работе.
- Активируйте сервис.
- Создайте сервисный аккаунт.
- Создайте облачную сеть и подсети.
- Создайте и настройте группу безопасности.
- Создайте политику резервного копирования.
- Создайте ВМ.
Если созданные ресурсы вам больше не нужны, удалите их.
Подготовьте облако к работе
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры входит:
- плата за вычислительные ресурсы ВМ (см. тарифы Yandex Compute Cloud);
- плата за диски ВМ (см. тарифы Yandex Compute Cloud);
- плата за использование динамического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud);
- плата за подключенные к сервису Cloud Backup ВМ и объем резервных копий (см. тарифы Yandex Cloud Backup).
Активируйте сервис
Примечание
Минимальная роль в каталоге, необходимая для активации сервиса, — backup.editor
(см. описание роли).
-
В консоли управления
выберите каталог, в котором вы хотите создать ВМ с подключением к Cloud Backup. -
В списке сервисов выберите Cloud Backup.
-
Если сервис Cloud Backup еще не активирован, нажмите Активировать.
Если кнопки Активировать нет, и вам доступно создание ВМ с подключением к Cloud Backup, значит, сервис уже активирован. Переходите к следующему шагу.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для активации сервиса:
yc backup provider activate --help
-
Активируйте сервис в каталоге по умолчанию:
yc backup provider activate --async
Где
--async
— отображение информации о прогрессе операции. Необязательный параметр.Результат:
id: cdgmnefxiatx******** description: activate provider created_at: "2024-10-14T09:03:47.960564Z" created_by: ajec1gaqcmtr******** modified_at: "2024-10-14T09:03:47.960564Z" done: true metadata: '@type': type.googleapis.com/yandex.cloud.backup.v1.ActivateProviderMetadata folder_id: b1go3el0d8fs******** response: '@type': type.googleapis.com/google.protobuf.Empty value: {}
После активации автоматически создаются следующие политики резервного копирования:
Default daily
— ежедневное создание инкрементальной копии ВМ с сохранением последних 15 копий.Default weekly
— еженедельное создание инкрементальной копии ВМ с сохранением последних 15 копий.Default monthly
— ежемесячное создание инкрементальной копии ВМ с сохранением последних 15 копий.
Если вы не хотите их создавать, используйте параметр --skip-default-policy
.
Создайте сервисный аккаунт
- В консоли управления
выберите каталог, в котором активирован сервис. - В списке сервисов выберите Identity and Access Management.
- Нажмите кнопку Создать сервисный аккаунт.
- Введите имя сервисного аккаунта —
backup-sa
. - Нажмите кнопку
Добавить роль и выберите рольbackup.editor
. - Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Создайте сервисный аккаунт с именем
backup-sa
:yc iam service-account create --name backup-sa
Результат:
id: ajehb3tcdfa1******** folder_id: b1g86q4m5vej******** created_at: "2024-07-22T16:05:14.237381531Z" name: backup-sa
Подробнее о команде
yc iam service-account create
см. в справочнике CLI. -
Назначьте сервисному аккаунту роль
backup.editor
на каталог:yc resource-manager folder add-access-binding <идентификатор_каталога> \ --role backup.editor \ --subject serviceAccount:<идентификатор_сервисного_аккаунта>
Результат:
done (3s) effective_deltas: - action: ADD access_binding: role_id: backup.editor subject: id: ajehb3tcdfa1******** type: serviceAccount
Подробнее о команде
yc resource-manager folder add-access-binding
см. в справочнике CLI.
Чтобы создать сервисный аккаунт, воспользуйтесь методом REST API create для ресурса ServiceAccount или вызовом gRPC API ServiceAccountService/Create.
Чтобы назначить сервисному аккаунту роль backup.editor
на каталог, воспользуйтесь методом setAccessBindings для ресурса ServiceAccount или вызовом gRPC API ServiceAccountService/SetAccessBindings.
Создайте облачную сеть и подсети
Создайте облачную сеть с подсетью в той зоне доступности, где будет находиться виртуальная машина.
- В консоли управления
выберите каталог, в котором хотите создать облачную сеть. - В списке сервисов выберите Virtual Private Cloud.
- Справа сверху нажмите кнопку Создать сеть.
- В поле Имя укажите
cloud-network
. - В поле Дополнительно выберите опцию Создать подсети.
- Нажмите кнопку Создать сеть.
-
Создайте облачную сеть с именем
cloud-network
:yc vpc network create cloud-network
Результат:
id: enptrcle5q3d******** folder_id: b1g9hv2loamq******** created_at: "2024-06-08T09:25:03Z" name: cloud-network default_security_group_id: enpbsnnop4ak********
Подробнее о команде
yc vpc network create
см. в справочнике CLI. -
Создайте подсеть
cloud-network-ru-central1-d
в зоне доступностиru-central1-d
:yc vpc subnet create cloud-network-ru-central1-d \ --zone ru-central1-d \ --network-name cloud-network \ --range 10.1.0.0/16
Результат:
id: e9bnnssj8sc8******** folder_id: b1g9hv2loamq******** created_at: "2024-06-08T09:27:00Z" name: cloud-network-ru-central1-d network_id: enptrcle5q3d******** zone_id: ru-central1-d v4_cidr_blocks: - 10.1.0.0/16
Подробнее о команде
yc vpc subnet create
см. в справочнике CLI.
- Создайте сеть
cloud-network
с помощью метода REST API create для ресурса Network или вызова gRPC API NetworkService/Create. - Создайте подсеть
cloud-network-ru-central1-d
с помощью метода REST API create для ресурса Subnet или вызова gRPC API SubnetService/Create.
Создайте и настройте группу безопасности
Чтобы агент Cloud Backup мог обмениваться данными с серверами провайдера резервного копирования, группа безопасности должна содержать правила, разрешающие сетевой доступ к IP-адресам ресурсов сервиса Cloud Backup.
Также в группу безопасности будет добавлено правило для доступа на ВМ по SSH.
-
В консоли управления
перейдите в каталог, в котором вы хотите создать ВМ с подключением к Cloud Backup. -
В списке сервисов выберите Virtual Private Cloud.
-
На панели слева выберите
Группы безопасности. -
Нажмите Создать группу безопасности.
-
В поле Имя укажите
backup-sg
. -
В поле Сеть выберите
cloud-network
. -
В блоке Правила перейдите на вкладку Исходящий трафик и нажмите Добавить правило.
-
Последовательно добавьте следующие правила для исходящего трафика:
Диапазон портов Протокол Назначение CIDR блоки 80
TCP
CIDR
213.180.193.0/24
80
TCP
CIDR
213.180.204.0/24
443
TCP
CIDR
84.47.172.0/24
443
TCP
CIDR
84.201.181.0/24
443
TCP
CIDR
178.176.128.0/24
443
TCP
CIDR
213.180.193.0/24
443
TCP
CIDR
213.180.204.0/24
7770-7800
TCP
CIDR
84.47.172.0/24
8443
TCP
CIDR
84.47.172.0/24
44445
TCP
CIDR
51.250.1.0/24
-
Добавьте правило для входящего трафика, которое обеспечит доступ на ВМ по SSH:
Диапазон портов Протокол Источник CIDR блоки 22
Любой
CIDR
0.0.0.0/0
-
Нажмите Создать.
Выполните следующую команду:
yc vpc security-group create backup-sg \
--network-name network-1 \
--rule "direction=egress,port=80,protocol=tcp,v4-cidrs=[213.180.193.0/24]" \
--rule "direction=egress,port=80,protocol=tcp,v4-cidrs=[213.180.204.0/24]" \
--rule "direction=egress,port=443,protocol=tcp,v4-cidrs=[84.47.172.0/24]" \
--rule "direction=egress,port=443,protocol=tcp,v4-cidrs=[84.201.181.0/24]" \
--rule "direction=egress,port=443,protocol=tcp,v4-cidrs=[178.176.128.0/24]" \
--rule "direction=egress,port=443,protocol=tcp,v4-cidrs=[213.180.193.0/24]" \
--rule "direction=egress,port=443,protocol=tcp,v4-cidrs=[213.180.204.0/24]" \
--rule "direction=egress,from-port=7770,to-port=7800,protocol=tcp,v4-cidrs=[84.47.172.0/24]" \
--rule "direction=egress,port=8443,protocol=tcp,v4-cidrs=[84.47.172.0/24]" \
--rule "direction=egress,port=44445,protocol=tcp,v4-cidrs=[51.250.1.0/24]" \
--rule "direction=ingress,port=22,protocol=any,v4-cidrs=[0.0.0.0/0]"
Результат:
id: enp0v73fe8fs********
folder_id: b1g86q4m5vej********
created_at: "2024-07-22T20:17:43Z"
name: backup-sgg
network_id: enp3srbi9u49********
status: ACTIVE
rules:
- id: enpporsovuhj********
direction: EGRESS
ports:
from_port: "80"
to_port: "80"
protocol_name: TCP
protocol_number: "6"
cidr_blocks:
v4_cidr_blocks:
- 213.180.193.0/24
- id: enp7p6asol5i********
direction: EGRESS
ports:
from_port: "80"
to_port: "80"
protocol_name: TCP
protocol_number: "6"
cidr_blocks:
v4_cidr_blocks:
- 213.180.204.0/24
...
- id: enp36mip5nhe********
direction: INGRESS
ports:
from_port: "22"
to_port: "22"
protocol_name: ANY
protocol_number: "-1"
cidr_blocks:
v4_cidr_blocks:
- 0.0.0.0/0
Подробнее о команде yc vpc security-group create
см. в справочнике CLI.
Чтобы создать группу безопасности, воспользуйтесь методом REST API create для ресурса SecurityGroup или вызовом gRPC API SecurityGroupService/Create.
Создайте политику резервного копирования
Вы можете создать новую или использовать одну из политик, автоматически созданных при активации сервиса.
-
В консоли управления
выберите каталог, в котором нужно создать политику резервного копирования. -
В списке сервисов выберите Cloud Backup.
-
Перейдите на вкладку
Политики копирования. -
Нажмите кнопку Создать политику.
-
Укажите параметры политики:
- Имя —
weekly-backup
. - Создавать копии —
Каждую неделю
. - Дни недели —
Пятница
. - Время —
03:00
. - Тип —
Инкрементальный
. - Хранение копий —
Хранить все копии
.
- Имя —
-
Нажмите кнопку Сохранить.
-
Опишите конфигурацию создаваемой политики резервного копирования в файле
backup-policy-scheme.json
.{ "compression": "NORMAL", "format": "AUTO", "multiVolumeSnapshottingEnabled": true, "preserveFileSecuritySettings": true, "reattempts": { "enabled": true, "interval": { "type": "SECONDS", "count": "30" }, "maxAttempts": "30" }, "silentModeEnabled": true, "splitting": { "size": "1099511627776" }, "vmSnapshotReattempts": { "enabled": true, "interval": { "type": "MINUTES", "count": "5" }, "maxAttempts": "3" }, "vss": { "enabled": true, "provider": "TARGET_SYSTEM_DEFINED" }, "archive": { "name": "'[Machine Name]-[Plan ID]-[Unique ID]A'" }, "performanceWindow": { "enabled": true }, "scheduling": { "backupSets": [ { "time": { "weekdays": [ "FRIDAY" ], "repeatAt": [ { "hour": "3" } ], "type": "WEEKLY" } } ], "enabled": true, "maxParallelBackups": "2", "randMaxDelay": { "type": "MINUTES", "count": "30" }, "scheme": "ALWAYS_INCREMENTAL", "weeklyBackupDay": "MONDAY" }, "cbt": "ENABLE_AND_USE", "fastBackupEnabled": true, "quiesceSnapshottingEnabled": true }
-
Создайте политику резервного копирования:
yc backup policy create \ --name weekly-backup \ --settings-from-file ./backup-policy-scheme.json
Результат:
id: cdgo5vytuw57******** name: weekly-backup created_at: "2024-07-23T20:34:37Z" updated_at: "2024-07-23T20:34:37Z" enabled: true settings: compression: NORMAL format: AUTO multi_volume_snapshotting_enabled: true preserve_file_security_settings: true reattempts: enabled: true interval: type: SECONDS count: "30" max_attempts: "30" silent_mode_enabled: true splitting: size: "1099511627776" vm_snapshot_reattempts: enabled: true interval: type: MINUTES count: "5" max_attempts: "3" vss: enabled: true provider: TARGET_SYSTEM_DEFINED archive: name: '''[Machine Name]-[Plan ID]-[Unique ID]A''' performance_window: enabled: true retention: {} scheduling: backup_sets: - time: weekdays: - FRIDAY repeat_at: - hour: "3" type: WEEKLY type: TYPE_AUTO enabled: true max_parallel_backups: "2" rand_max_delay: type: MINUTES count: "30" scheme: ALWAYS_INCREMENTAL weekly_backup_day: MONDAY cbt: ENABLE_AND_USE fast_backup_enabled: true quiesce_snapshotting_enabled: true folder_id: b1g86q4m5vej********
Сохраните идентификатор (
id
) политики.Подробнее о команде
yc backup policy create
см. в справочнике CLI.
Чтобы создать политику резервного копирования, воспользуйтесь методом REST API create для ресурса Policy или вызовом gRPC API PolicyService/Create.
Создайте ВМ
-
В консоли управления
выберите каталог, в котором будет создана ВМ. -
В списке сервисов выберите Compute Cloud.
-
На панели слева выберите
Виртуальные машины. -
Нажмите кнопку Создать виртуальную машину.
-
В блоке Образ загрузочного диска в поле Поиск продукта введите
Ubuntu 22.04 LTS
и выберите публичный образ Ubuntu 22.04 LTS. -
В блоке Расположение выберите зону доступности:
ru-central1-d
. -
В блоке Сетевые настройки:
- В поле Подсеть выберите сеть
cloud-network
и подсетьcloud-network-ru-central1-d
. - В поле Публичный адрес оставьте значение
Автоматически
, чтобы назначить ВМ случайный внешний IP-адрес из пула Yandex Cloud. - В поле Группы безопасности выберите группу безопасности
backup-sg
.
- В поле Подсеть выберите сеть
-
В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа на ВМ:
- В поле Логин введите имя пользователя:
vm-user
. -
В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.
Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
- Нажмите кнопку Добавить ключ.
- Задайте имя SSH-ключа.
- Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к ВМ по SSH необходимо создать самостоятельно.
- Нажмите кнопку Добавить.
SSH-ключ будет добавлен в ваш профиль пользователя организации.
Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя создаваемой виртуальной машины.
- В поле Логин введите имя пользователя:
-
В блоке Общая информация задайте имя ВМ:
backup-instance
. -
В блоке Дополнительно:
- Выберите сервисный аккаунт
backup-sa
. - Включите опцию Cloud Backup.
- Выберите политику резервного копирования, созданную ранее.
- Выберите сервисный аккаунт
-
Нажмите кнопку Создать ВМ.
-
Опишите конфигурацию пользовательских метаданных в файле
user-data.yaml
:#cloud-config datasource: Ec2: strict_id: false ssh_pwauth: no users: - name: vm-user sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash ssh_authorized_keys: - <публичный_SSH-ключ> packages: - curl - perl - jq runcmd: - curl https://storage.yandexcloud.net/backup-distributions/agent_installer.sh | sudo bash
-
Сохраните идентификатор политики
weekly-backup
в файлеcloudbackup.json
:{"initialPolicies": ["<идентификатор_политики_weekly-backup>"]}
Подробности о получении идентификатора политики см. на странице Получить информацию о политике резервного копирования.
-
Выполните команду:
yc compute instance create \ --name backup-instance \ --zone ru-central1-d \ --network-interface subnet-name=cloud-network-ru-central1-d,security-group-ids=<идентификатор_группы_безопасности_backup-sg>,ipv4-address=auto,nat-ip-version=ipv4 \ --create-boot-disk image-folder-id=standard-images,image-family=ubuntu-2204-lts,size=15 \ --metadata-from-file user-data=./user-data.yaml,cloudbackup=./cloudbackup.json \ --service-account-name backup-sa
Подробнее о команде
yc compute instance create
см. в справочнике CLI.
Чтобы создать ВМ, воспользуйтесь методом REST API create для ресурса Instance или вызовом gRPC API InstanceService/Create.
В теле запроса передайте:
- в поле
metadata
: объектuser-data
, содержащий конфигурацию пользовательских метаданных со скриптом для установки агента резервного копирования; - в поле
cloudbackup
: идентификатор политики резервного копирования. Подробности о получении идентификатора политики см. на странице Получить информацию о политике резервного копирования.
Используйте \n
в качестве разделителя строк:
Пример тела запроса
{
"folderId": "<идентификатор_каталога>",
"name": "backup-instance",
"zoneId": "ru-central1-d",
"platformId": "standard-v3",
"resourcesSpec": {
"memory": "2147483648",
"cores": "2"
},
"metadata": {
"user-data": "#cloud-config\ndatasource:\nEc2:\n strict_id: false\nssh_pwauth: no\nusers:\n- name: vm-user\n shell: /bin/bash\n sudo: ALL=(ALL) NOPASSWD:ALL\n ssh_authorized_keys:\n - <публичный_SSH-ключ>\npackages:\n - curl\n - perl\n - jq\nruncmd:\n - curl https://storage.yandexcloud.net/backup-distributions/agent_installer.sh | sudo bash",
"cloudbackup": "{\"initialPolicies\": [\"<идентификатор_политики>\"]}"
},
"bootDiskSpec": {
"diskSpec": {
"size": "16106127360",
"imageId": "fd8ljvsrm3l1********"
}
},
"networkInterfaceSpecs": [
{
"subnetId": "<идентификатор_подсети>",
"primaryV4AddressSpec": {
"oneToOneNatSpec": {
"ipVersion": "IPV4"
}
},
"securityGroupIds": [
"<идентификатор_группы_безопасности>"
]
}
],
"serviceAccountId": "<идентификатор_сервисного_аккаунта>"
}
Примечание
Когда ВМ перейдет в статус Running
, на нее начнет устанавливаться агент Cloud Backup. Установка займет от 5 до 10 минут.
Привязка политики выполняется асинхронно после создания и инициализации ВМ, а также установки и настройки агента резервного копирования. Это может занимать до 10–15 минут. В итоге виртуальная машина появится в списке ВМ сервиса Cloud Backup и в списке ВМ, привязанных к политике weekly-backup
.
За процессом установки можно следить с помощью последовательного порта ВМ в консоли управления.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- Удалите ВМ из Cloud Backup.
- Удалите ВМ из Compute Cloud.
- Удалите статический публичный IP-адрес, если вы его зарезервировали.
- Если для ВМ были созданы резервные копии, удалите их.