Configura las instantáneas programadas

Cloud Composer 1 | Cloud Composer 2

En esta página, se explica cómo configurar tu entorno para guardar instantáneas en una programación.

Para obtener más información sobre cómo funcionan las instantáneas de entorno y cómo guardarlas de forma manual, consulta Cómo guardar y cargar instantáneas.

Cómo funcionan las instantáneas programadas

Cuando habilitas las instantáneas programadas, Cloud Composer guarda periódicamente instantáneas de tu entorno en un bucket de Cloud Storage.

Si creas instantáneas de forma manual, Cloud Composer las guarda de forma predeterminada en el bucket del entorno. Para las instantáneas programadas, te recomendamos que las guardes en un bucket separado. De esta manera, puedes establecer permisos y una configuración del ciclo de vida para este bucket. Un bucket puede almacenar instantáneas de varios entornos, y también puedes crear buckets que son redundantes en todas las regiones.

Antes de comenzar

  • Cloud Composer admite instantáneas programadas en la versión 2.0.32 y posteriores. Las instantáneas del entorno son compatibles con las versiones 2.0.9 y posteriores.

  • Para obtener más información sobre los requisitos y las limitaciones de las instantáneas, consulta Guarda y carga instantáneas.

Crea un bucket para las instantáneas programadas

Crea un bucket para las instantáneas programadas. Considera cómo quieres usar las instantáneas del entorno. Si es parte de tu plan de recuperación ante desastres, usa un bucket que sea redundante entre regiones o uno que se encuentre en una región diferente, para tener acceso a los datos incluso en caso de una interrupción regional completa. De lo contrario, un bucket en la misma región que el entorno podría ser más adecuado y, en este caso, reducir los costos de transferencia de datos entre regiones.

Configura los permisos para el bucket

Configura los siguientes permisos:

  • La cuenta de servicio de tu entorno debe tener permisos de lectura y escritura para este bucket. Por ejemplo, la función Administrador de objetos de almacenamiento tiene esos permisos.

  • Las cuentas de usuario no necesitan ningún permiso adicional para que el bucket cargue sus instantáneas, a menos que desees ver el contenido del bucket desde la consola de Google Cloud. En este caso, una cuenta de usuario debe tener permiso de lectura en el bucket.

Establece una configuración del ciclo de vida para el bucket

Para ahorrar costos de almacenamiento, puedes configurar una regla que borre las instantáneas del entorno después de un período determinado.

Por ejemplo, para borrar de forma automática las instantáneas de más de 30 días, haz lo siguiente:

  1. Establece una configuración del ciclo de vida del bucket.
  2. Especifica la acción Borrar objeto.
  3. Selecciona Edad (Age) y 30 días como la condición.

Habilita una programación de instantáneas para tu entorno

Console

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

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu 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 abrirá el panel Programación de instantáneas.

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

  6. En la lista desplegable Frecuencia de programación, selecciona un período diario, semanal o personalizado para las instantáneas.

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

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

gcloud

Actualiza la configuración de tu entorno. Los siguientes argumentos definen parámetros para las instantáneas programadas:

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

  • --snapshot-schedule-timezone define una zona horaria para el programa. Este valor es una compensación de tiempo y no tiene en cuenta los cambios en el horario de verano. Los valores válidos van del UTC-12 al UTC+12. Ejemplos: UTC, UTC-01, UTC+03.

gcloud beta 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"

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región en la que se encuentra el entorno
  • SNAPSHOTS_FOLDER por el URI de una carpeta de bucket en la que se guarda la instantánea
  • CRON_EXPRESSION con la programación, en formato unix-cron.
  • TIME_ZONE por una zona horaria para el programa

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

gcloud beta 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

Realiza una solicitud a la API de environments.patch.

En esta solicitud, realiza lo siguiente:

  1. En el parámetro updateMask, especifica la máscara config.recoveryConfig.scheduledSnapshotsConfig para reemplazar la configuración de las instantáneas programadas existentes.

  2. En el cuerpo de la solicitud, especifica la configuración para las instantáneas:

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

    Reemplaza lo siguiente:

    • SNAPSHOTS_FOLDER por el URI de una carpeta de bucket en la que se guarda la instantánea
    • CRON_EXPRESSION con la programación, en formato unix-cron.

    • TIME_ZONE por una zona horaria para el programa Este valor es una compensación de tiempo y no tiene en cuenta los cambios en el horario de verano. Los valores válidos van del UTC-12 al 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/v1beta1/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 en el bloque recovery_config define los parámetros para las instantáneas programadas:

  • enabled habilita las instantáneas programadas.
  • snapshot_location especifica una carpeta de bucket en la que deseas guardar instantáneas.
  • snapshot_creation_schedule especifica la frecuencia con la que se deben tomar instantáneas del entorno, en formato unix-cron. 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"
    }
  }
}

Reemplaza lo siguiente:

  • SNAPSHOTS_FOLDER por el URI de una carpeta de bucket en la que se guarda la instantánea
  • CRON_EXPRESSION con la programación, en formato unix-cron.

  • TIME_ZONE por una zona horaria para el programa Este valor es una compensación de tiempo y no tiene en cuenta los cambios en el horario de verano. Los valores válidos van del UTC-12 al 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"
    }
  }
}

Inhabilita las instantáneas programadas

Si inhabilitas las instantáneas programadas, no se modifican ni se quitan todas las instantáneas existentes que ya se tomaron. Estas instantáneas permanecen en la ubicación en la que se guardaron.

Console

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

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu 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 abrirá el panel Programación de instantáneas.

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

gcloud

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

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

Reemplaza lo siguiente:

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

Ejemplo:

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

API

Realiza una solicitud a la API de environments.patch.

En esta solicitud, realiza lo siguiente:

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

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

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

Ejemplo:

// PATCH https://composer.googleapis.com/v1beta1/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, establece el campo enabled en el bloque scheduled_snapshots_config como false:

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
    }
  }
}

¿Qué sigue?