Automatizzare la protezione delle istanze Compute Engine nella console di gestione dell'appliance

Questa pagina descrive in dettaglio come automatizzare i backup per le istanze Compute Engine utilizzando i tag nella console di gestione delle appliance.

Configurare il backup per le nuove istanze Compute Engine

Un'istanza Compute Engine è una VM ospitata su Google Cloud. Ogni istanza archivia i dati su Persistent Disk collegati all'istanza. Puoi creare un'istanza o creare un gruppo di istanze gestite utilizzando la Google Cloud console, Google Cloud CLI o l'API Compute Engine.

Per informazioni più dettagliate, consulta Compute Engine.

Prerequisito per automatizzare i backup

Prima di iniziare ad automatizzare i backup delle istanze Compute Engine, leggi le seguenti procedure per prepararti ai backup:

Dopo aver configurato il servizio di Backup e DR e creato un modello di piano di backup, puoi automatizzare la protezione delle istanze Compute Engine applicando il modello di piano di backup all'istanza utilizzando i tag.

Autorizzazioni

Per creare, aggiornare ed eliminare le definizioni dei tag per le risorse Compute Engine, devi avere il ruolo Tag Administrator. Per ulteriori informazioni sul tagUser ruolo, consulta Autorizzazioni richieste.

Per utilizzare i tag dinamici per eseguire il backup di un'istanza Compute Engine, devi concedere il ruolo IAM (Identity and Access Management) Backup e DR Compute Engine Operator (roles/backupdr.computeEngineOperator) al service agent dell'appliance di backup/ripristino all'interno del progetto Compute Engine.

Amministrare i tag di protezione dinamica

Per creare, aggiornare ed eliminare i tag di protezione dinamica, devi disporre delle autorizzazioni appropriate per il tuo ruolo per assicurarti di avere uno dei seguenti ruoli assegnati:

  • Backup and DR Admin

  • Backup and DR Backup User

  • Backup and DR User V2

  • Editor progetto

  • Proprietario progetto

  • Un ruolo personalizzato che include le seguenti autorizzazioni:

Autorizzazioni obbligatorie

  • backupdr.managementServers.listDynamicProtection
  • backupdr.managementServers.getDynamicProtection
  • backupdr.managementServers.createDynamicProtection
  • backupdr.managementServers.deleteDynamicProtection
  • compute.instances.listEffectiveTags

Scopri di più sui ruoli del servizio di Backup e DR.

Applicare automaticamente un modello di piano di backup utilizzando i tag

Questa sezione ti aiuta ad automatizzare l'applicazione di un piano di backup a un'istanza Compute Engine utilizzando i tag. Innanzitutto, crea un mapping dei piani di backup ai tag nella console di gestione delle appliance. Poi crea i tag tramite IAM utilizzando gli stessi valori assegnati nella console di gestione delle appliance.

Creare valori di tag di protezione dinamica

Utilizza queste istruzioni per creare valori di tag di protezione dinamica che possono essere utilizzati con le istanze Compute Engine:

  1. Nella console di gestione delle appliance di Backup e RE, fai clic sul menu a discesa Piani di backup e seleziona Tag di protezione dinamica.

  2. Fai clic su Crea tag di protezione dinamica.

  3. Inserisci un valore tag univoco che rispetti questi requisiti di denominazione.

  4. Nell'elenco Tipo di applicazione, seleziona Compute Engine.

  5. Scegli un modello e un profilo corrispondenti da associare a questo valore tag.

  6. Fai clic su Salva. Viene creato un valore di tag di protezione dinamica.

Creare tag di protezione dinamica

Utilizza queste istruzioni per creare tag di protezione dinamica da collegare alle istanze Compute Engine per automatizzare la protezione:

  1. Per creare, aggiornare ed eliminare le definizioni dei tag, devi avere il ruolo Tag Administrator o un altro ruolo che includa autorizzazioni specifiche.

  2. Apri la pagina Tag nella Google Cloud console.

    Apri la pagina Tag

  3. Nel selettore di ambito nella parte superiore della pagina, seleziona l'organizzazione o il progetto in cui vuoi creare una chiave tag.

  4. Fai clic su Crea.

  5. Nella casella Chiave tag, inserisci backupdr-dynamicprotect come chiave tag. Questo passaggio è obbligatorio per la riuscita dell'automazione. Fai attenzione agli errori di ortografia e assicurati di includere il trattino.

  6. (Facoltativo) Nella casella Descrizione chiave tag, inserisci una descrizione della chiave tag.

  7. Fai clic su Aggiungi valore e inserisci ogni valore tag che hai appena creato.

  1. Nella casella Valore tag, inserisci il nome visualizzato del valore tag. Questo diventa parte del nome con spazio dei nomi del tag.

  2. Nella casella Descrizione valore tag, inserisci una descrizione del modello e del profilo associati a questo valore tag.

  3. Al termine dell'aggiunta dei valori tag, fai clic su Crea chiave tag.

Aggiungere tag di protezione dinamica a una risorsa

Ora che hai creato i valori dei tag di protezione dinamica e li hai collegati a un tag di protezione dinamica, il passaggio successivo consiste nell'assegnare un tag a un'istanza Compute Engine. La protezione basata su tag non funziona se le istanze sono protette all'interno di un gruppo logico. Rimuovi il gruppo logico e prova a utilizzare la protezione dinamica.

I tag di protezione dinamica possono essere collegati alle istanze Compute Engine utilizzando queste istruzioni:

  1. Nella Google Cloud console, vai alla pagina Compute Engine > Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Nome, fai clic sul nome della VM a cui vuoi aggiungere i tag.

  3. Nella pagina dei dettagli dell'istanza VM, completa i seguenti passaggi:

    1. Fai clic su Modifica.
    2. Nella sezione Di base, fai clic su Gestisci tag e aggiungi i tag che preferisci per l'istanza.
  4. Seleziona la chiave backupdr-dynamicprotect: e un valore tag corrispondente che esegue il mapping a un modello e a un profilo impostati nella Google Cloud console.

  5. Fai clic su Salva.

Aggiunta di tag a una risorsa durante la creazione

In alcuni scenari, potresti voler taggare le risorse durante la loro creazione, piuttosto che dopo.

Console

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona il progetto e fai clic su Continua.

  3. Fai clic su Crea istanza.

  4. Fai clic su Gestisci tag ed etichette.

  5. Fai clic su Aggiungi tag.

  6. Segui le istruzioni nel riquadro laterale per selezionare backupdr-dynamicprotect da aggiungere all'istanza.

  7. Fai clic su Salva.

  8. Completa gli altri passaggi descritti in Crea e avvia un'istanza VM per completare la creazione dell'istanza.

gcloud

Per utilizzare gcloud CLI o le API, segui la documentazione dell'SDK per eseguire le seguenti operazioni:

Terraform

Utilizza il seguente modello Terraform per iniziare a utilizzare i tag di protezione dinamica. Questo modello presuppone che tu non abbia ancora creato chiavi di tag di protezione dinamica nella Google Cloud console e le configurerà per te. Il modello crea una nuova istanza Compute Engine e la associa a un tag di protezione dinamica. Puoi attendere l'esecuzione del job di protezione dinamica pianificato alle 04:15 o alle 16:15 ora locale per renderlo effettivo, oppure puoi eseguire un job di protezione dinamica on demand seguendo i passaggi descritti in Eseguire la protezione automatica manuale.

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

Scollegare un tag da una risorsa

Puoi scollegare un tag da una risorsa eliminando la risorsa di associazione dei tag.

Per istruzioni su come scollegare i tag, consulta Scollega un tag da una risorsa nella documentazione di Resource Manager.

Console

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona il progetto e fai clic su Continua.

  3. Nella colonna Nome, fai clic sul nome della VM per cui vuoi aggiungere i tag.

  4. Nella pagina dei dettagli dell'istanza VM, completa i seguenti passaggi:

  5. Fai clic su Modifica.

  6. Nella sezione Di base, fai clic su Gestisci tag e rimuovi backupdr-dynamicprotect per l'istanza.

  7. Fai clic su Salva.

gcloud

Per utilizzare gcloud CLI, segui la documentazione per utilizzare Google Cloud CLI per scollegare un tag da una risorsa.

Eseguire la protezione automatica manuale

Sebbene il motore di protezione venga eseguito ogni giorno alle 04:15 e alle 16:15 ora locale, puoi anche eseguire on demand il motore di protezione dinamica utilizzando i seguenti passaggi dei comandi:

  1. Imposta l'endpoint della console di gestione delle appliance inserendo un valore che inizia con "https://bmc-" e termina con ".com". Ad esempio, https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com

    export MC_ENDPOINT="MC_ENDPOINT_edited_value"
    
  2. Genera un token di autenticazione:

    echo "Generating a new bearer token..."
    export BEARER_TOKEN=$(gcloud auth print-access-token)
    echo "Bearer token generated: BEARER_TOKEN=$BEARER_TOKEN"
    
  3. Ottieni un nuovo ID sessione:

    echo "Generating a new session id..."
    export SESSION_RESPONSE=$(curl -XPOST -H "Authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" -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"
    

    Dopo aver impostato un endpoint, generato un token di autenticazione e ottenuto un ID sessione, puoi attivare i job di protezione dinamica per un'ora fino alla scadenza dell'ID sessione.

  4. Attiva un job di protezione dinamica

    Un job di protezione dinamica aggiorna tutte le istanze Compute Engine con i tag correnti e assegna i piani di backup in base ai tag. Il job attivato può richiedere alcuni minuti a seconda del numero di modifiche in attesa per i carichi di lavoro.

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

Utilizzare la protezione dinamica con Resource Manager

Puoi utilizzare i tag di protezione dinamica con Resource Manager, automatizzando la protezione delle istanze Compute Engine a un livello organizzativo superiore. Utilizza Resource Manager per taggare le risorse a livello di progetto o superiore per assicurarti che la protezione venga ereditata da tutte le risorse. Scopri di più su l'ereditarietà dei tag.

Eseguire la migrazione dalla protezione manuale alla protezione dinamica

Se intendi eseguire la migrazione delle risorse già protette all'utilizzo della protezione dinamica utilizzando i tag, devi abilitare il flag di migrazione nel progetto. Dopo aver abilitato la migrazione, le istanze protette manualmente possono ora utilizzare la protezione dinamica. L'aggiunta di tag e risorse protegge automaticamente in base al tag e rimuove la protezione manuale esistente.

Prima di iniziare, segui i passaggi descritti in Eseguire la protezione automatica manuale per configurare la sessione.

Bash

Esegui i seguenti comandi.

  1. Imposta l'endpoint della console di gestione delle appliance inserendo un valore che inizia con "https://bmc-" e termina con ".com". Ad esempio, https://bmc-PROJECT_NUMBER-GENERATED_ID-dot-REGION.backupdr.googleusercontent.com

     #!/bin/bash
    
     export MC_ENDPOINT="MC_ENDPOINT_edited_value"
    
    
  2. Abilita la migrazione.

    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 di gestione delle appliance

Per abilitare la migrazione delle istanze Compute Engine protette manualmente alla protezione basata su tag:

  1. Imposta Abilita la migrazione alla protezione basata su tag su ON.
  2. Conferma la finestra di dialogo Abilita migrazione. Le istanze Compute Engine protette manualmente verranno riprotette utilizzando il tag definito nella VM.

Per disabilitare la migrazione delle istanze Compute Engine protette manualmente alla protezione basata su tag:

  1. Imposta Abilita la migrazione alla protezione basata su tag su OFF.
  2. Conferma la finestra di dialogo Disabilita migrazione. In questo modo viene disabilitata la migrazione delle istanze Compute Engine protette manualmente alla protezione basata su tag.

Eventi e notifiche

Dopo l'esecuzione del motore di protezione dinamica, puoi esaminare l'avanzamento dagli eventi di monitoraggio. La console di gestione delle appliance riceve notifiche di riepilogo dopo l'esecuzione delle azioni di protezione dinamica. Vengono inviate notifiche di errore se è necessaria un'azione dell'utente.

Best practice

La protezione dinamica può aumentare il numero di job di backup in esecuzione e la quantità di spazio di archiviazione utilizzato. Per risultati ottimali, tieni presente quanto segue:

  • Aumenta le finestre di backup. In genere, una finestra da 6 a 10 ore può consentire l'esecuzione completa di tutti i job.

  • Una VM ripristinata manterrà lo stesso tag di protezione della VM di origine insieme allo stesso piano di backup, ma il tipo di protezione cambierà da protezione basata su tag a protezione avviata dall'utente. La risorsa continuerà a essere protetta utilizzando il piano di backup trasferito. Per riportare il tipo di protezione alla protezione basata su tag, puoi rimuovere il piano di backup di protezione trasferito e attivare il job di protezione dinamica on demand oppure attendere la prossima esecuzione pianificata in modo che all'applicazione venga assegnata di nuovo la protezione basata su tag.

  • Una VM montata su un host esistente o su un host appena creato non manterrà lo stesso tag di protezione della VM di origine, quindi non verrà protetta automaticamente dopo l'operazione di montaggio. Se è necessario proteggere una VM appena montata, puoi applicare un'associazione di tag alla nuova VM in modo simile alla VM di origine.