Nesta página, detalhamos como automatizar backups para instâncias do Compute Engine usando tags.
Configurar backup para novas instâncias do Compute Engine
Uma instância do Compute Engine é uma VM hospedada em Google Cloud. Cada instância armazena dados em discos permanentes anexados a ela. É possível criar uma instância ou criar um grupo de instâncias gerenciadas usando o console Google Cloud , a Google Cloud CLI ou a API Compute Engine.
Para mais informações, consulte Compute Engine.
Pré-requisito para automatizar backups
Antes de começar a automatizar backups de instâncias do Compute Engine, leia os procedimentos a seguir para se preparar:
Depois de configurar o serviço de backup e DR e criar um modelo de plano de backup, é possível automatizar a proteção das instâncias do Compute Engine aplicando o modelo de plano de backup à instância usando Tags.
Permissões
Para criar, atualizar e excluir definições de tags para recursos do Compute Engine, você precisa do papel Tag Administrator
. Para mais informações sobre o papel
tagUser
, consulte Permissões necessárias.
Para usar a inclusão de tags dinâmicas e fazer backup de uma instância do Compute Engine, conceda o papel do IAM Operador do Compute Engine de backup e DR (roles/backupdr.computeEngineOperator
) ao agente de serviço do backup vault no projeto do Compute Engine.
Administrar tags de proteção dinâmica
Para criar, atualizar e excluir tags de proteção dinâmica, você precisa ter as permissões adequadas para seu papel e ter um dos seguintes papéis atribuídos:
Administrador de Backup e DR
Usuário de Backup e DR
Usuário de Backup e DR V2
Editor do projeto
Proprietário do projeto
um papel personalizado que inclui as seguintes permissões:
Permissões necessárias
backupdr.managementServers.listDynamicProtection
backupdr.managementServers.getDynamicProtection
backupdr.managementServers.createDynamicProtection
backupdr.managementServers.deleteDynamicProtection
compute.instances.listEffectiveTags
Saiba mais sobre os papéis do serviço de backup e DR.
Aplicar um modelo de plano de backup usando tags automaticamente
Esta seção ajuda a automatizar a aplicação de um plano de backup a uma instância do Compute Engine usando tags. Primeiro, crie um mapeamento de planos de backup para tags no console de gerenciamento. Em seguida, crie tags usando o gerenciamento de identidade e acesso (IAM) com os mesmos valores atribuídos no console de gerenciamento.
Criar valores de tag de proteção dinâmica
Use estas instruções para criar valores de tag de proteção dinâmica que podem ser usados com suas instâncias do Compute Engine:
No console de gerenciamento de backup e DR, clique no menu suspenso Planos de backup e selecione Tags de proteção dinâmica.
Clique em Criar tag de proteção dinâmica.
Insira um valor da tag exclusivo que siga estes requisitos de nomenclatura.
Na lista Tipo de aplicativo, selecione Compute Engine.
Escolha um Modelo e um Perfil correspondentes para associar a esse valor de tag.
Clique em Salvar. Um valor de tag de proteção dinâmica é criado.
Criar tags de proteção dinâmica
Use estas instruções para criar tags de proteção dinâmica e anexar às instâncias do Compute Engine para automatizar a proteção:
Para criar, atualizar e excluir definições de tag, você precisa do papel de administrador de tags ou de outro papel que inclua permissões específicas.
Abra a página Tags no console Google Cloud .
No Seletor de escopo na parte de cima da página, selecione a organização ou o projeto em que você quer criar uma chave de tag.
Clique em
Criar.Na caixa Chave da tag, insira
backupdr-dynamicprotect
como a chave. Essa é uma etapa obrigatória para uma automação bem-sucedida. Preste atenção aos erros de ortografia e inclua o hífen.Opcional: na caixa Descrição da chave de tag, insira uma descrição da chave.
Clique em
Adicionar valor e insira cada valor de tag que você acabou de criar.
Na caixa Valor da tag, insira o nome de exibição do valor da sua tag. Isso se torna parte do nome de namespace da tag.
Na caixa Descrição do valor da tag, insira uma descrição do modelo e do perfil associados a esse valor de tag.
Quando terminar de adicionar valores de tag, clique em Criar chave de tag.
Como adicionar tags de proteção dinâmica a um recurso
Agora que você criou valores de tag de proteção dinâmica e os vinculou a uma tag de proteção dinâmica, a próxima etapa é atribuir tags a uma instância do Compute Engine. A proteção baseada em tag não funciona se as instâncias estiverem protegidas em um grupo lógico. Remova o grupo lógico e tente usar a proteção dinâmica.
As tags de proteção dinâmica podem ser anexadas a instâncias do Compute Engine usando estas instruções:
No console Google Cloud , acesse a página Compute Engine > Instâncias de VM.
Na coluna Nome, clique no nome da VM em que você quer adicionar tags.
Na página Detalhes da VM, siga estas etapas:
- Clique em Editar.
- Na seção Básico, clique em Gerenciar tags e adicione as tags que você quer na instância.
Selecione a chave
backupdr-dynamicprotect:
e um valor de tag correspondente que mapeia para um modelo e um perfil definidos no console Google Cloud .Clique em Salvar.
Adicionar tags a um recurso durante a criação dele
Em determinados cenários, convém incluir tags nos recursos durante a criação deles, e não depois.
Console
No Google Cloud console, acesse a página Instâncias de VM:
Selecione o projeto e clique em Continuar.
Clique em Criar instância.
Clique em Gerenciar tags e rótulos.
Clique em Adicionar tags.
Siga as instruções no painel lateral para selecionar o
backupdr-dynamicprotect
a ser adicionado à instância.Clique em Salvar.
Conclua outras etapas em Criar e iniciar uma instância de VM para concluir a criação da instância.
gcloud
Para usar a Google Cloud CLI ou as APIs, siga a documentação do SDK para fazer o seguinte:
Terraform
Use o modelo do Terraform a seguir para começar a usar tags de proteção dinâmica. Este modelo pressupõe que você ainda não criou nenhuma chave de tag de proteção dinâmica no console Google Cloud e vai configurar isso para você. O modelo cria uma instância do Compute Engine e a vincula a uma tag de proteção dinâmica. Aguarde a execução do job programado da Proteção dinâmica às 4h ou 16h no horário local para que ele entre em vigor. Também é possível executar um job da Proteção dinâmica sob demanda seguindo as etapas em Executar a proteção automática manual.
variable "project_id" {
description = "The ID of the existing Google Cloud project"
type = string
}
variable "region" {
description = "The Google Cloud region where demo-instance should be created"
type = string
}
variable "zone" {
description = "The Google Cloud zone where demo-instance should be created"
type = string
}
provider "google" {
project = var.project_id
region = var.region
zone = var.zone
}
data "google_project" "project" {
project_id = var.project_id
}
# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/tags_tag_key
resource "google_tags_tag_key" "key" {
parent = "projects/${var.project_id}"
short_name = "backupdr-dynamicprotect"
description = "Tag key for Dynamic Protection."
}
# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/tags_tag_value
resource "google_tags_tag_value" "value" {
parent = "tagKeys/${google_tags_tag_key.key.name}"
short_name = "backupdr-gold" # This value should be present in the "Management Console UI" > "Backup Plans" > "Dynamic Protection Tags"
description = "Tag value for gold plan."
}
# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance
# Ensure not to define tag in "resource_manager_tags" block while creating VM instance. It'll destroy the VM
# when tag value is changed/removed later. Instead define a separate tag binding using "google_tags_tag_binding"
# or "google_tags_location_tag_binding" resource. It'll modify just tag binding and VM instance won't be affected.
resource "google_compute_instance" "vm_instance" {
name = "demo-instance"
machine_type = "e2-micro"
zone = var.zone
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
// Ephemeral public IP
}
}
}
# Reference: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_tags_location_tag_binding
resource "google_tags_location_tag_binding" "binding" {
parent = "//compute.googleapis.com/projects/${data.google_project.project.number}/zones/${var.zone}/instances/${google_compute_instance.vm_instance.instance_id}"
tag_value = "tagValues/${google_tags_tag_value.value.name}"
location = var.zone
}
# Reference for Tag bindings at project/org level: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/tags_tag_binding
Remover uma tag de um recurso
É possível desanexar uma tag de um recurso excluindo o recurso de vinculação de tags.
Para ver instruções sobre como remover tags, consulte Como remover uma tag de um recurso na documentação do Resource Manager.
Console
No Google Cloud console, acesse a página Instâncias de VM:
Selecione o projeto e clique em Continuar.
Na coluna Nome, clique no nome da VM em que você quer adicionar tags.
Na página Detalhes da VM, siga estas etapas:
Clique em Editar.
Na seção Básico, clique em Gerenciar tags e remova o
backupdr-dynamicprotect
da instância.Clique em Salvar.
gcloud
Para usar a Google Cloud CLI, siga a documentação para usar a Google Cloud CLI para remover uma tag de um recurso.
Executar a proteção automática manual
Embora o mecanismo de proteção seja executado diariamente às 4h e às 16h do horário local, você também pode fazer uma execução sob demanda do mecanismo de proteção dinâmica usando as seguintes etapas de comando:
Defina o endpoint do console de gerenciamento inserindo um valor que comece com "https://bmc-" e termine com ".com". Por exemplo,
https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com
.export MC_ENDPOINT="MC_ENDPOINT_edited_value"
Gere um token de autenticação:
echo "Generating a new bearer token..." export BEARER_TOKEN=$(gcloud auth print-access-token) echo "Bearer token generated: BEARER_TOKEN=$BEARER_TOKEN"
Receba um novo ID de sessão:
echo "Generating a new session id..." export SESSION_RESPONSE=$(curl -XPOST -H "Authorization: Bearer $BEARER_TOKEN" -d {} "$MC_ENDPOINT/actifio/session" 2>&-) export SESSION_ID=$(echo $SESSION_RESPONSE | jq -r '.session_id') if [ -z ${SESSION_ID} ] then echo "Issue with generating a new session id. Response: $SESSION_RESPONSE"; return 1; fi echo "Session id generated: SESSION_ID=$SESSION_ID"
Depois de definir um endpoint, gerar um token de acesso e receber um ID de sessão, você pode acionar jobs de proteção dinâmica por uma hora até que o ID de sessão expire.
Acionar um job de proteção dinâmica
Um job de proteção dinâmica atualiza todas as instâncias do Compute Engine com as tags atuais e atribui planos de backup com base nelas. O job acionado pode levar alguns minutos, dependendo do número de mudanças pendentes para suas cargas de trabalho.
echo "Triggering dynamic protection job.." curl -H "Authorization: Bearer $BEARER_TOKEN" -H "backupdr-management-session: Actifio $SESSION_ID" -H "Content-Type: application/json" -XPOST -d '{}' "$MC_ENDPOINT/actifio/dynamicprotection/job/gceinstance" echo "Dynamic protection job triggered."
Usar a proteção dinâmica com o Resource Manager
É possível usar tags de proteção dinâmica com o Resource Manager, automatizando a proteção das instâncias do Compute Engine em um nível organizacional mais alto. Use o Resource Manager para adicionar tags a recursos no nível do projeto ou superior e garantir que a proteção seja herdada em todos os seus recursos. Saiba mais sobre a herança de tags.
Migrar a proteção manual para a proteção dinâmica
Se você pretende migrar seus recursos já protegidos para usar a proteção dinâmica com tags, ative a flag de migração no seu projeto. Depois de ativar a migração, todas as instâncias protegidas manualmente poderão usar a proteção dinâmica. A adição de tags e recursos protege automaticamente com base na tag e remove a proteção manual atual.
Bash
Execute os seguintes comandos:
Defina o endpoint do console de gerenciamento inserindo um valor que comece com "https://bmc-" e termine com ".com". Por exemplo,
https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com
.#!/bin/bash export MC_ENDPOINT="MC_ENDPOINT_edited_value"
Ative a migração.
curl -H "Authorization: Bearer $BEARER_TOKEN" -H "backupdr-management-session: Actifio $SESSION_ID" -H "Content-Type: application/json" -XPATCH -d '{ "enableMigrationToTagBasedProtection":"true"}' "$MC_ENDPOINT/actifio/dynamicprotection/jobconfig"
Console de gerenciamento
Para ativar a migração de instâncias do Compute Engine protegidas manualmente para a proteção baseada em tags, siga estas etapas:
- Ative a opção Ativar a migração para proteção baseada em tags.
- Confirme a caixa de diálogo "Ativar migração". As instâncias do Compute Engine protegidas manualmente serão reprotegidas usando a tag definida na VM.
Para desativar a migração de instâncias do Compute Engine protegidas manualmente para a proteção baseada em tags, siga estas etapas:
- Mude a opção Ativar a migração para proteção baseada em tags para o status DESATIVADO.
- Confirme a caixa de diálogo "Desativar migração". Isso desativa a migração de instâncias do Compute Engine protegidas manualmente para a proteção baseada em tags.
Eventos e notificações
Depois que o mecanismo de proteção dinâmica for executado, você poderá analisar o progresso em Monitorar eventos. O console de gerenciamento recebe notificações de resumo depois de realizar ações de proteção dinâmica. As notificações de erro são enviadas se uma ação do usuário for necessária.
Práticas recomendadas
A proteção dinâmica pode aumentar o número de jobs de backup em execução e a quantidade de armazenamento usada. Para ter os melhores resultados, considere o seguinte:
Aumente as janelas de backup. Uma janela de 6 a 10 horas geralmente permite que todos os jobs sejam concluídos.
Uma VM restaurada vai transferir a mesma tag de proteção da VM de origem e o mesmo plano de backup. No entanto, o tipo de proteção vai mudar de proteção baseada em tag para proteção iniciada pelo usuário. O recurso vai continuar sendo protegido usando o plano de backup transferido. Para mudar o tipo de proteção de volta para a proteção baseada em tags, remova o plano de backup de proteção transferido e acione o job de proteção dinâmica sob demanda ou aguarde a próxima execução programada para que o aplicativo receba a proteção baseada em tags novamente.
Uma VM montada em um host atual ou recém-criado não vai transferir a mesma tag de proteção da VM de origem. Portanto, ela não será protegida automaticamente após a operação de montagem. Se uma VM recém-montada precisar ser protegida, aplique uma vinculação de tag à nova VM semelhante à VM de origem.