Автоматическая привязка политики резервного копирования 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).
Активируйте сервис
Примечание
-
В консоли управления
выберите каталог, в котором вы хотите создать ВМ с подключением к Cloud Backup. -
В списке сервисов выберите Cloud Backup.
-
Если сервис Cloud Backup еще не активирован, нажмите Активировать.
Если кнопки Активировать нет, и вам доступно создание ВМ с подключением к Cloud Backup, значит, сервис уже активирован. Переходите к следующему шагу.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Посмотрите описание команды CLI для активации сервиса:
yc backup provider activate --help -
Активируйте сервис в каталоге по умолчанию:
yc backup provider activate --asyncГде
--async— отображение информации о прогрессе операции. Необязательный параметр. -
После выполнения команды появится предупреждение об активации
This command will activate backup provider for your folder. Do you confirm this action to be executed? [Yes/no][y/N]. Подтвердите активацию — в терминале введитеyesилиy.Совет
Чтобы активировать сервис без подтверждения, используйте флаг
--force.Результат:
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), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --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-kz1-dв зоне доступностиkz1-d:yc vpc subnet create cloud-network-kz1-d \ --zone kz1-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-kz1-d network_id: enptrcle5q3d******** zone_id: kz1-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-kz1-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 блоки 80TCPCIDR5.35.104.0/2180TCPCIDR94.131.80.0/2080TCPCIDR94.131.176.0/2080TCPCIDR185.32.84.0/2280TCPCIDR185.135.172.0/2280TCPCIDR194.116.140.0/24443TCPCIDR5.35.104.0/21443TCPCIDR84.47.172.0/24443TCPCIDR94.131.80.0/20443TCPCIDR94.131.176.0/20443TCPCIDR185.32.84.0/22443TCPCIDR185.135.172.0/22443TCPCIDR194.116.140.0/244445TCPCIDR5.35.110.0/247770-7800TCPCIDR84.47.172.0/248443TCPCIDR84.47.172.0/24Совет
При установке агента Cloud Backup на ВМ или сервер BareMetal может понадобиться доустановить отсутствующие компоненты ПО из интернета. Для этого добавьте в группу безопасности следующее правило для исходящего трафика:
- Диапазон портов —
0-65535. - Протокол —
Любой(Any). - Назначение —
CIDR. - CIDR блоки —
0.0.0.0/0.
После установки агента Cloud Backup вы можете удалить это правило.
- Диапазон портов —
-
Добавьте правило для входящего трафика, которое обеспечит доступ на ВМ по SSH:
Диапазон портов Протокол Источник CIDR блоки 22ЛюбойCIDR0.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. -
В блоке Расположение выберите зону доступности:
kz1-d. -
В блоке Сетевые настройки:
- В поле Подсеть выберите сеть
cloud-networkи подсетьcloud-network-kz1-d. - В поле Публичный IP-адрес оставьте значение
Автоматически, чтобы назначить ВМ случайный внешний IP-адрес из пула Yandex Cloud. - В поле Группы безопасности выберите группу безопасности
backup-sg.
- В поле Подсеть выберите сеть
-
В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа на ВМ:
- В поле Логин введите имя пользователя:
vm-user. -
В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.
Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
-
Нажмите кнопку Добавить ключ.
-
Задайте имя SSH-ключа.
-
Выберите вариант:
-
Ввести вручную— вставьте содержимое открытого SSH-ключа. Пару SSH-ключей необходимо создать самостоятельно. -
Загрузить из файла— загрузите открытую часть SSH-ключа. Пару SSH-ключей необходимо создать самостоятельно. -
Сгенерировать ключ— автоматическое создание пары SSH-ключей.При добавлении сгенерированного SSH-ключа будет создан и загружен архив с парой ключей. В ОС на базе Linux или macOS распакуйте архив в папку
/home/<имя_пользователя>/.ssh. В ОС Windows распакуйте архив в папкуC:\Users\<имя_пользователя>/.ssh. Дополнительно вводить открытый ключ в консоли управления не требуется.
-
-
Нажмите кнопку Добавить.
SSH-ключ будет добавлен в ваш профиль пользователя организации. Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя внутри создаваемого ресурса.
-
- В поле Логин введите имя пользователя:
-
В блоке Общая информация задайте имя ВМ:
backup-instance. -
В блоке Дополнительно:
- Выберите сервисный аккаунт
backup-sa. - Включите опцию Cloud Backup.
- Выберите политику резервного копирования, созданную ранее.
- Выберите сервисный аккаунт
-
Нажмите кнопку Создать ВМ.
Примечание
Команды yc compute instance create | create-with-container | update | add-metadata поддерживают подстановку в метаданные ВМ значений переменных окружения. Эти значения, заданные в ключе user-data в формате $<имя_переменной>, в момент выполнения команды Yandex Cloud CLI будут подставлены в метаданные ВМ из переменных окружения среды, в которой выполняется команда.
Чтобы изменить такое поведение, не подставлять значение переменной из среды выполнения команды CLI и передать в метаданные ВМ имя переменной в формате $<имя_переменной>, используйте синтаксис с двумя символами доллара. Например: $$<имя_переменной>.
Подробнее см. в разделе Особенности передачи переменных окружения в метаданных через CLI.
-
Опишите конфигурацию пользовательских метаданных в файле
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.kz/backup-distributions/agent_installer.sh | sudo bash -
Сохраните идентификатор политики
weekly-backupв файлеcloudbackup.json:{"initialPolicies": ["<идентификатор_политики_weekly-backup>"]}Подробности о получении идентификатора политики см. на странице Получить информацию о политике резервного копирования.
-
Выполните команду:
yc compute instance create \ --name backup-instance \ --zone kz1-d \ --network-interface subnet-name=cloud-network-kz1-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, содержащий конфигурацию пользовательских метаданных со скриптом для установки агента Cloud Backup; - в поле
cloudbackup: идентификатор политики резервного копирования. Подробности о получении идентификатора политики см. на странице Получить информацию о политике резервного копирования.
Используйте \n в качестве разделителя строк:
Пример тела запроса
{
"folderId": "<идентификатор_каталога>",
"name": "backup-instance",
"zoneId": "kz1-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.kz/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 минут.
Привязка политики выполняется асинхронно после создания и инициализации ВМ, а также установки и настройки агента Cloud Backup. Это может занимать до 10–15 минут. В итоге виртуальная машина появится в списке ВМ сервиса Cloud Backup и в списке ВМ, привязанных к политике weekly-backup.
За процессом установки можно следить с помощью последовательного порта ВМ в консоли управления.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- Удалите ВМ из Cloud Backup.
- Удалите ВМ из Compute Cloud.
- Удалите статический публичный IP-адрес, если вы его зарезервировали.
- Если для ВМ были созданы резервные копии, удалите их.