Configurer des instantanés programmés

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Cette page explique comment configurer votre environnement pour enregistrer des instantanés selon une programmation.

Pour en savoir plus sur le fonctionnement des instantanés d'environnement et sur la façon de les enregistrer manuellement, consultez Enregistrer et charger des instantanés.

Fonctionnement des instantanés programmés

Lorsque vous activez les instantanés programmés, Cloud Composer enregistre périodiquement des instantanés de votre environnement dans un bucket Cloud Storage.

Si vous créez des instantanés manuellement, Cloud Composer les enregistre par défaut dans le bucket de l'environnement. Pour les instantanés planifiés, nous vous recommandons de les enregistrer dans un bucket distinct. Vous pouvez ainsi configurer des autorisations et un cycle de vie pour ce bucket. Un bucket peut contenir des instantanés provenant de plusieurs environnements. Vous pouvez également créer des buckets redondants dans plusieurs régions.

Avant de commencer

  • Pour en savoir plus sur les exigences et les limites des instantanés, consultez Enregistrer et charger des instantanés.

  • Cloud Composer est compatible avec les instantanés planifiés dans les versions 2.0.32 et ultérieures. Les instantanés d'environnement sont compatibles avec la version 2.0.9 et les versions ultérieures.

Créer un bucket pour les instantanés programmés

Créez un bucket pour les instantanés programmés. Réfléchissez à la manière dont vous souhaitez utiliser les instantanés d'environnement. Si elle fait partie de votre plan de reprise après sinistre, utilisez un bucket redondant dans plusieurs régions ou un bucket dans une autre région. Vous pourrez ainsi accéder aux données même en cas de panne régionale complète. Sinon, un bucket situé dans la même région que l'environnement peut être plus approprié. Dans ce cas, vous réduisez les coûts de transfert de données entre les régions.

Configurer les autorisations pour le bucket

Configurez les autorisations suivantes :

  • Le compte de service de votre environnement doit disposer des autorisations de lecture et d'écriture pour ce bucket. Par exemple, le rôle Administrateur des objets de l'espace de stockage dispose de ces autorisations.

  • Les comptes utilisateur n'ont besoin d'aucune autorisation supplémentaire pour que le bucket charge les instantanés, sauf si vous souhaitez afficher le contenu du bucket depuis la console Google Cloud . Dans ce cas, un compte utilisateur doit disposer d'une autorisation de lecture sur le bucket.

Définir une configuration de cycle de vie pour le bucket

Pour réduire les coûts de stockage, vous pouvez configurer une règle qui supprime les instantanés d'environnement après une certaine période.

Par exemple, pour supprimer automatiquement les instantanés de plus de 30 jours :

  1. Définissez une configuration de cycle de vie pour le bucket.
  2. Spécifiez l'action Supprimer un objet.
  3. Sélectionnez la condition Âge et 30 jours.

Activer une programmation d'instantanés pour votre environnement

Console

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans Configuration de la récupération > Calendrier des snapshots, cliquez sur Modifier. Le volet Programmation des instantanés s'ouvre.

  5. Dans le volet Programmation d'instantanés, sélectionnez Créer régulièrement des instantanés, conformément au planning spécifié.

  6. Dans la liste déroulante Fréquence de programmation, sélectionnez la période quotidienne, hebdomadaire ou personnalisée pour les instantanés.

    Vous pouvez spécifier une planification personnalisée au format unix-cron. Par exemple, pour enregistrer des instantanés toutes les 30 minutes, spécifiez */30 * * * *.

  7. Dans le champ Emplacement des instantanés, sélectionnez le dossier du bucket dans lequel vous souhaitez enregistrer les instantanés.

gcloud

Mettez à jour la configuration de votre environnement. Les arguments suivants définissent les paramètres des instantanés programmés :

  • --enable-scheduled-snapshot-creation : active les instantanés programmés.
  • --snapshot-location spécifie un dossier de bucket dans lequel vous souhaitez enregistrer les instantanés.
  • --snapshot-creation-schedule spécifie la fréquence à laquelle les instantanés d'environnement doivent être pris, au format unix-cron. Par exemple, pour créer un instantané toutes les 30 minutes, spécifiez */30 * * * *.

  • --snapshot-schedule-timezone définit un fuseau horaire pour la planification. Cette valeur est un horodatage et ne tient pas compte des changements d'heure saisonniers. Les valeurs valides sont comprises entre UTC-12 et UTC+12. Exemples : UTC, UTC-01, 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"

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.
  • SNAPSHOTS_FOLDER par l'URI d'un dossier de bucket dans lequel enregistrer l'instantané.
  • CRON_EXPRESSION avec la planification au format unix-cron.
  • TIME_ZONE par un fuseau horaire pour la planification.

Exemple (tous les jours à 4h, UTC+1) :

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

Rédigez une requête API environments.patch.

Dans cette requête :

  1. Dans le paramètre updateMask, spécifiez le masque config.recoveryConfig.scheduledSnapshotsConfig pour remplacer la configuration des instantanés planifiés existante.

  2. Dans le corps de la requête, spécifiez la configuration des instantanés :

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

    Remplacez :

    • SNAPSHOTS_FOLDER par l'URI d'un dossier de bucket dans lequel enregistrer l'instantané.
    • CRON_EXPRESSION avec la planification au format unix-cron.

    • TIME_ZONE par un fuseau horaire pour la planification. Cette valeur est un horodatage et ne tient pas compte des changements liés à l'heure d'été. Les valeurs valides sont comprises entre UTC-12 et UTC+12. Exemples : UTC, UTC-01, UTC+03.

    Exemple (tous les jours à 4h, UTC+1) :

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

Le scheduled_snapshots_config du bloc recovery_config définit les paramètres des instantanés programmés :

  • enabled : active les instantanés programmés.
  • snapshot_location spécifie un dossier de bucket dans lequel vous souhaitez enregistrer les instantanés.
  • snapshot_creation_schedule spécifie la fréquence à laquelle les instantanés d'environnement doivent être pris, au format unix-cron. Par exemple, pour créer un instantané toutes les 30 minutes, spécifiez */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"
    }
  }
}

Remplacez :

  • SNAPSHOTS_FOLDER par l'URI d'un dossier de bucket dans lequel enregistrer l'instantané.
  • CRON_EXPRESSION avec la planification au format unix-cron.

  • TIME_ZONE par un fuseau horaire pour la planification. Cette valeur est un horodatage et ne tient pas compte des changements liés à l'heure d'été. Les valeurs valides sont comprises entre UTC-12 et UTC+12. Exemples : UTC, UTC-01, UTC+03.

Exemple (tous les jours à 4h, UTC+1) :

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

Désactiver les instantanés programmés

Si vous désactivez les instantanés programmés, les instantanés existants qui ont déjà été pris ne sont pas modifiés ni supprimés. Ces instantanés restent à l'emplacement où ils ont été enregistrés.

Console

  1. Dans la console Google Cloud , accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. Dans Configuration de la récupération > Calendrier des snapshots, cliquez sur Modifier. Le volet Programmation des instantanés s'ouvre.

  5. Dans le volet Programmation d'instantanés, sélectionnez Ne pas créer d'instantanés automatiquement.

gcloud

Mettez à jour la configuration de votre environnement. L'argument --disable-scheduled-snapshot-creation désactive les instantanés programmés.

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

Remplacez :

  • ENVIRONMENT_NAME par le nom de l'environnement.
  • LOCATION par la région dans laquelle se trouve l'environnement.

Exemple :

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

API

Rédigez une requête API environments.patch.

Dans cette requête :

  1. Dans le paramètre updateMask, spécifiez le masque config.recoveryConfig.scheduledSnapshotsConfig.enabled pour remplacer la valeur du champ enabled.

  2. Dans le corps de la requête, spécifiez la nouvelle valeur :

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

Exemple :

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

Pour désactiver les instantanés planifiés, définissez le champ enabled dans le bloc scheduled_snapshots_config sur false :

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

  recovery_config {
    scheduled_snapshots_config {
      enabled = false
    }
  }
}

Exemple :

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

Étapes suivantes