Proteger automaticamente novas instâncias do Compute Engine

Esta página oferece uma visão geral completa de como automatizar backups das suas instâncias do Compute Engine usando tags.

Configurar o backup para novas instâncias do Compute Engine

Uma instância do Compute Engine é uma VM hospedada no 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 do 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 seguintes procedimentos para se preparar para os backups:

Depois de configurar o serviço de backup e DR e criar um modelo de plano de backup, você pode 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.

Administrar tags de proteção dinâmica

Para criar, atualizar e excluir tags de proteção dinâmica, você precisa ter um dos seguintes papéis:

  • 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 as funções do serviço de backup e DR.

Aplicar um modelo de plano de backup usando tags automaticamente

Esta seção ajuda você 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 pelo gerenciamento de identidade e acesso (IAM) usando os mesmos valores atribuídos no console de gerenciamento.

Criar valores de tags 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:

  1. No console de gerenciamento, clique no menu suspenso Backup Plans e selecione Dynamic Protection Tags.

  2. Clique em Criar tag de proteção dinâmica.

  3. Insira um valor de tag exclusivo que siga estes requisitos de nomenclatura.

  4. Na lista Tipo de aplicativo, selecione Compute Engine.

  5. Escolha um modelo e um perfil correspondentes para serem associados a esse valor de tag.

  6. 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 para anexar às suas instâncias do Compute Engine e automatizar a proteção:

  1. 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.

  2. Abra a página Tags no console do Google Cloud.

    Abrir a página "Tags"

  3. 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.

  4. Clique em Criar.

  5. Na caixa Chave da tag, insira backupdr-dynamicprotect como a chave da tag. Essa é uma etapa obrigatória para garantir a automação. Tenha cuidado com erros de ortografia e não se esqueça de incluir o hífen.

  6. Opcional: na caixa Descrição da chave de tag, insira uma descrição da chave de tag.

  7. Clique em Adicionar valor e insira cada valor de tag que você acabou de criar.

  1. 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.

  2. Na caixa Descrição do valor da tag, insira uma descrição do modelo e do perfil associados a esse valor.

  3. Quando terminar de adicionar valores de tag, clique em Criar tag.

Como adicionar tags de proteção dinâmica a um recurso

Agora que você criou os valores de tag de proteção dinâmica e os vinculou a uma tag de proteção dinâmica, a próxima etapa é atribuir uma tag a uma instância do Compute Engine. A proteção baseada em tags 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.

Antes de começar, ative as permissões adequadas para seu papel e verifique se você tem 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

As tags de proteção dinâmica podem ser anexadas a instâncias do Compute Engine usando as seguintes instruções:

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Na coluna Nome, clique no nome da VM em que você quer adicionar tags.

  4. Na página Detalhes da VM, siga estas etapas:

    1. Clique em Editar.
    2. Na seção Básico, clique em Gerenciar tags e adicione as tags que você quer na instância.
  5. Selecione a chave backupdr-dynamicprotect: e um valor de tag correspondente que mapeia para um modelo e perfil definidos no console do Google Cloud.

  6. 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

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Clique em Criar instância.

  4. Clique em Gerenciar tags e rótulos.

  5. Clique em Adicionar tags.

  6. Siga as instruções no painel lateral para selecionar o backupdr-dynamicprotect a ser adicionado à instância.

  7. Clique em Salvar.

  8. Conclua outras etapas em Criar e iniciar uma instância de VM para concluir a criação da instância.

gcloud

Para usar a CLI ou as APIs do Google Cloud, siga a documentação do SDK para fazer o seguinte:

Terraform

Use o modelo do Terraform abaixo para começar a usar as tags de proteção dinâmica. Este modelo pressupõe que você ainda não criou chaves de tag de proteção dinâmica no console do Google Cloud e vai configurar isso para você. O modelo cria uma nova instância do Compute Engine e a vincula a uma tag de proteção dinâmica. Você pode esperar que o job de Proteção dinâmica programado seja executado às 4h ou 16h no horário local para que ele entre em vigor. Também é possível executar um job de 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

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Selecione o projeto e clique em Continuar.

  3. Na coluna Nome, clique no nome da VM em que você quer adicionar tags.

  4. Na página Detalhes da VM, siga estas etapas:

  5. Clique em Editar.

  6. Na seção Básico, clique em Gerenciar tags e remova o backupdr-dynamicprotect da instância.

  7. 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 no 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:

  1. 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"
    
  2. Gere um token de portador:

    echo "Generating a new bearer token..."
    export BEARER_TOKEN=$(gcloud auth print-access-token)
    echo "Bearer token generated: BEARER_TOKEN=$BEARER_TOKEN"
    
  3. 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 portador e receber um ID de sessão, você poderá acionar jobs de proteção dinâmica por uma hora até que o ID de sessão expire.

  4. 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 para garantir que a proteção seja herdada em todos os 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 existente.

Bash

Execute os seguintes comandos:

  1. 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"
    
    
  2. 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 com base em tags, siga estas etapas:

  1. Ative a opção Ativar a migração para a proteção baseada em tags.
  2. Confirme a caixa de diálogo "Ativar migração". As instâncias do Compute Engine protegidas manualmente serão protegidas novamente usando a tag definida na VM.

Para desativar a migração de instâncias do Compute Engine protegidas manualmente para a proteção com base em tags, siga estas etapas:

  1. Desative a opção Ativar a migração para a proteção baseada em tags.
  2. 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 dos eventos de monitoramento. O console de gerenciamento recebe notificações de resumo após 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 trabalhos de backup em execução e a quantidade de armazenamento usada. Para melhores resultados, considere o seguinte:

  • Aumente as janelas de backup. Um período de 6 a 10 horas pode ajudar a garantir que todos os jobs sejam concluídos.

  • Considere os tipos de aparelhos antes de configurar as tags. Para melhores resultados, verifique se todas as instâncias marcadas do Compute Engine estão em dispositivos de backup/recuperação em execução no tipo de dispositivo padrão para VMs do Compute Engine ou bancos de dados SAP HANA.

  • Uma VM restaurada vai carregar a mesma tag de proteção da VM de origem e o mesmo plano de backup, mas o tipo de proteção vai mudar de proteção baseada em tags 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 a proteção baseada em tags seja atribuída novamente ao aplicativo.

  • Uma VM montada em qualquer host existente ou recém-criado não vai carregar 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, você poderá aplicar a vinculação de tags da nova VM de forma semelhante à VM de origem.