Configurar capturas programadas

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

En esta página se explica cómo configurar tu entorno para guardar snapshots de forma programada.

Para obtener más información sobre cómo funcionan las instantáneas del entorno y cómo guardarlas manualmente, consulta Guardar y cargar instantáneas.

Cómo funcionan las capturas programadas

Cuando habilitas las copias de seguridad programadas, Cloud Composer guarda periódicamente copias de seguridad de tu entorno en un segmento de Cloud Storage.

Si creas instantáneas manualmente, Cloud Composer las guarda en el segmento del entorno de forma predeterminada. En el caso de las capturas programadas, te recomendamos que las guardes en un segmento independiente. De esta forma, puedes configurar permisos y una configuración de ciclo de vida para este contenedor. Un segmento puede contener instantáneas de varios entornos y también puedes crear segmentos que sean redundantes en varias regiones.

Antes de empezar

  • Para obtener más información sobre los requisitos y las limitaciones de las copias de seguridad, consulta Guardar y cargar copias de seguridad.

  • Cloud Composer admite las instantáneas programadas en las versiones 2.0.32 y posteriores. Las copias de entorno se admiten en la versión 2.0.9 y posteriores.

Crear un segmento para las capturas programadas

Crea un contenedor para las capturas programadas. Piensa en cómo quieres usar las copias de tu entorno. Si forma parte de tu plan de recuperación ante desastres, utiliza un segmento que sea redundante en varias regiones o un segmento de otra región para poder acceder a los datos incluso en caso de que se produzca una interrupción total en una región. De lo contrario, puede que sea más adecuado usar un segmento de la misma región que el entorno, en cuyo caso se reducirán los costes de transferencia de datos entre regiones.

Configurar los permisos del segmento

Configura los siguientes permisos:

  • La cuenta de servicio de tu entorno debe tener permisos de lectura y escritura para este segmento. Por ejemplo, el rol Administrador de objetos de almacenamiento tiene estos permisos.

  • Las cuentas de usuario no necesitan ningún permiso adicional para que el segmento cargue las copias de seguridad, a menos que quieras ver el contenido del segmento desde la consola de Google Cloud . En este caso, una cuenta de usuario debe tener permiso de lectura en el contenedor.

Definir una configuración del ciclo de vida del segmento

Para ahorrar costes de almacenamiento, puedes configurar una regla que elimine las copias de un entorno después de un periodo determinado.

Por ejemplo, para eliminar automáticamente las capturas que tengan más de 30 días, sigue estos pasos:

  1. Define una configuración del ciclo de vida para el segmento.
  2. Especifica la acción Eliminar objeto.
  3. Selecciona Edad y 30 días como condición.

Habilitar una programación de capturas para tu entorno

Consola

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. En Configuración de recuperación > Programación de instantáneas, haz clic en Editar. Se abre el panel Programación de capturas.

  5. En el panel Programación de capturas, selecciona Crear capturas periódicamente, según la programación especificada.

  6. En la lista desplegable Frecuencia de programación, selecciona el periodo diario, semanal o personalizado para las copias de seguridad.

    Puedes especificar una programación personalizada con el formato cron para UNIX. Por ejemplo, para guardar instantáneas cada 30 minutos, especifica */30 * * * *.

  7. En el campo Ubicación de la instantánea, selecciona la carpeta del contenedor en la que quieras guardar las instantáneas.

gcloud

Actualiza la configuración de tu entorno. Los siguientes argumentos definen los parámetros de las copias de seguridad programadas:

  • --enable-scheduled-snapshot-creation habilita las capturas programadas.
  • --snapshot-location especifica una carpeta de un segmento en la que quieres guardar las instantáneas.
  • --snapshot-creation-schedule especifica la frecuencia con la que se deben tomar las instantáneas del entorno, en formato cron de UNIX. Por ejemplo, para crear una instantánea cada 30 minutos, especifica */30 * * * *.

  • --snapshot-schedule-timezone define la zona horaria de la programación. Este valor es un desfase horario y no tiene en cuenta los cambios de horario de verano. Los valores válidos van de UTC-12 a UTC+12. Ejemplos: UTC, UTC-01 y UTC+03.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --enable-scheduled-snapshot-creation \
    --snapshot-location "gs://SNAPSHOTS_FOLDER" \
    --snapshot-creation-schedule "CRON_EXPRESSION" \
    --snapshot-schedule-timezone "TIME_ZONE"

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno.
  • SNAPSHOTS_FOLDER con el URI de una carpeta de un contenedor donde guardar la instantánea.
  • CRON_EXPRESSION con la programación en el formato cron de UNIX.
  • TIME_ZONE con una zona horaria para la programación.

Ejemplo (todos los días a las 4:00, UTC+01):

gcloud composer environments update example-environment \
    --location us-central1 \
    --enable-scheduled-snapshot-creation \
    --snapshot-location "gs://example-bucket/environment_snapshots" \
    --snapshot-creation-schedule "0 4 * * *" \
    --snapshot-schedule-timezone "UTC+01"

API

Crea una solicitud de la API environments.patch.

En esta solicitud:

  1. En el parámetro updateMask, especifica la máscara config.recoveryConfig.scheduledSnapshotsConfig para sustituir la configuración de las copias de seguridad programadas.

  2. En el cuerpo de la solicitud, especifica la configuración de las copias de seguridad:

    {
      "config": {
        "recoveryConfig": {
          "scheduledSnapshotsConfig": {
            "enabled": true,
            "snapshot_location": "gs://SNAPSHOTS_FOLDER",
            "snapshot_creation_schedule": "CRON_EXPRESSION",
            "time_zone": "TIME_ZONE"
          }
        }
      }
    }
    

    Sustituye:

    • SNAPSHOTS_FOLDER con el URI de una carpeta de un contenedor donde guardar la instantánea.
    • CRON_EXPRESSION con la programación en el formato cron de UNIX.

    • TIME_ZONE con una zona horaria para la programación. Este valor es un desfase horario y no tiene en cuenta los cambios de horario de invierno ni de verano. Los valores válidos van de UTC-12 a UTC+12. Ejemplos: UTC, UTC-01 y UTC+03.

    Ejemplo (todos los días a las 4:00, UTC+01):

      // PATCH https://composer.googleapis.com/v1/projects/example-project/
      // locations/us-central1/environments/example-environment?updateMask=
      // config.recoveryConfig.scheduledSnapshotsConfig
        {
          "config": {
            "recoveryConfig": {
              "scheduledSnapshotsConfig": {
                "enabled": true,
                "snapshot_location": "gs://example-bucket/environment_snapshots",
                "snapshot_creation_schedule": "0 4 * * *",
                "time_zone": "UTC+01"
              }
            }
          }
        }
    

Terraform

El scheduled_snapshots_config del bloque recovery_config define los parámetros de las instantáneas programadas:

  • enabled habilita las capturas programadas.
  • snapshot_location especifica una carpeta de segmento en la que quieres guardar las instantáneas.
  • snapshot_creation_schedule especifica la frecuencia con la que se deben tomar las instantáneas del entorno, en formato cron de UNIX. Por ejemplo, para crear una instantánea cada 30 minutos, especifica */30 * * * *.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  recovery_config {
    scheduled_snapshots_config {
      enabled = true
      snapshot_location = "gs://SNAPSHOTS_FOLDER"
      snapshot_creation_schedule = "CRON_EXPRESSION"
      time_zone = "TIME_ZONE"
    }
  }
}

Sustituye:

  • SNAPSHOTS_FOLDER con el URI de una carpeta de un contenedor donde guardar la instantánea.
  • CRON_EXPRESSION con la programación en el formato cron de UNIX.

  • TIME_ZONE con una zona horaria para la programación. Este valor es un desfase horario y no tiene en cuenta los cambios de horario de invierno ni de verano. Los valores válidos van de UTC-12 a UTC+12. Ejemplos: UTC, UTC-01 y UTC+03.

Ejemplo (todos los días a las 4:00, UTC+01):

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  recovery_config {
    scheduled_snapshots_config {
      enabled = true
      snapshot_location = "gs://example-bucket/environment_snapshots"
      snapshot_creation_schedule = "0 4 * * *"
      time_zone = "UTC+01"
    }
  }
}

Inhabilitar capturas programadas

Si inhabilitas las capturas programadas, no se modificarán ni se eliminarán las capturas que ya se hayan hecho. Estas capturas permanecen en la ubicación en la que se guardaron.

Consola

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Configuración del entorno.

  4. En Configuración de recuperación > Programación de instantáneas, haz clic en Editar. Se abre el panel Programación de capturas.

  5. En el panel Programación de capturas, selecciona No crear capturas automáticamente.

gcloud

Actualiza la configuración de tu entorno. El argumento --disable-scheduled-snapshot-creation inhabilita las capturas programadas.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --disable-scheduled-snapshot-creation

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno.

Ejemplo:

gcloud composer environments update example-environment \
    --location us-central1 \
    --disable-scheduled-snapshot-creation

API

Crea una solicitud de la API environments.patch.

En esta solicitud:

  1. En el parámetro updateMask, especifique la máscara config.recoveryConfig.scheduledSnapshotsConfig.enabled para sustituir el valor del campo enabled.

  2. En el cuerpo de la solicitud, especifica el nuevo valor:

    {
      "config": {
        "recoveryConfig": {
          "scheduledSnapshotsConfig": {
            "enabled": false
          }
        }
      }
    }
    

Ejemplo:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.recoveryConfig.scheduledSnapshotsConfig.enabled
{
"config": {
  "recoveryConfig": {
    "scheduledSnapshotsConfig": {
      "enabled": false
    }
  }
}
}

Terraform

Para inhabilitar las instantáneas programadas, asigna el valor false al campo enabled en el bloque scheduled_snapshots_config:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  recovery_config {
    scheduled_snapshots_config {
      enabled = false
    }
  }
}

Ejemplo:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  recovery_config {
    scheduled_snapshots_config {
      enabled = false
      // Other scheduled snapshots parameters
    }
  }
}

Siguientes pasos