Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
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 l'enregistrement manuel d'instantanés, consultez la section Enregistrer et charger des instantanés.
Fonctionnement des instantanés programmés
Lorsque vous activez les instantanés programmés, Cloud Composer enregistre régulièrement 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 programmés, nous vous recommandons d'enregistrer les instantanés dans un bucket distinct. De cette façon, vous pouvez définir des autorisations et une configuration de cycle de vie pour ce bucket. Un bucket peut contenir des instantanés de plusieurs environnements. Vous pouvez également créer des buckets redondants entre les régions.
Avant de commencer
Pour en savoir plus sur les exigences et les limites applicables aux instantanés, consultez la page Enregistrer et charger des instantanés.
Cloud Composer est compatible avec les instantanés programmés dans les versions 2.0.32 et ultérieures. Les instantanés d'environnement sont compatibles avec les versions 2.0.9 et 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 cela fait partie de votre plan de reprise après sinistre, utilisez un bucket redondant entre les régions ou un bucket d'une région différente, afin de pouvoir accéder aux données même en cas d'indisponibilité régionale complète. Sinon, un bucket situé dans la même région que l'environnement peut être plus adapté. 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 d'autorisations de lecture et d'écriture pour ce bucket. Par exemple, le rôle Administrateur des objets Storage dispose de ces autorisations.
Les comptes utilisateur n'ont pas besoin d'autorisations supplémentaires pour que le bucket charge des instantanés, sauf si vous souhaitez en afficher le contenu à partir de la console Google Cloud. Dans ce cas, un compte utilisateur doit disposer de l'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 de l'environnement après un certain délai.
Par exemple, pour supprimer automatiquement les instantanés de plus de 30 jours:
- Définissez une configuration de cycle de vie pour le bucket.
- Spécifiez l'action Supprimer l'objet.
- Sélectionnez la condition Âge et 30 jours.
Activer une programmation d'instantanés pour votre environnement
Console
Dans la console Google Cloud, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement.
Dans Configuration de la récupération > Programmation des instantanés, cliquez sur Modifier. Le volet Programmation des instantanés s'ouvre.
Dans le volet Programmation des instantanés, sélectionnez Créer des instantanés régulièrement, en fonction de la programmation spécifiée.
Dans la liste déroulante Fréquence de programmation, sélectionnez une fréquence 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 * * * *
.Dans le champ Emplacement de l'instantané, 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 des instantanés.--snapshot-creation-schedule
spécifie la fréquence à laquelle les instantanés d'environnement doivent être réalisés, 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 du passage à l'heure d'été. Les valeurs valides sont comprises entreUTC-12
etUTC+12
. Exemples :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"
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
par la planification, au format unix-cron.TIME_ZONE
par le fuseau horaire de la planification.
Exemple (tous les jours à 4h00, 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
Rédigez une requête API environments.patch
.
Dans cette requête :
Dans le paramètre
updateMask
, spécifiez le masqueconfig.recoveryConfig.scheduledSnapshotsConfig
pour remplacer la configuration existante des instantanés programmés.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
par la planification, au format unix-cron.TIME_ZONE
par le fuseau horaire de la planification. Cette valeur est un horodatage et ne tient pas compte du passage à l'heure d'été. Les valeurs valides sont comprises entreUTC-12
etUTC+12
. Exemples :UTC
,UTC-01
,UTC+03
.
Exemple (tous les jours à 4h00, 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
L'élément scheduled_snapshots_config
dans le 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 des instantanés.snapshot_creation_schedule
spécifie la fréquence à laquelle les instantanés d'environnement doivent être réalisés, 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
par la planification, au format unix-cron.TIME_ZONE
par le fuseau horaire de la planification. Cette valeur est un horodatage et ne tient pas compte du passage à l'heure d'été. Les valeurs valides sont comprises entreUTC-12
etUTC+12
. Exemples :UTC
,UTC-01
,UTC+03
.
Exemple (tous les jours à 4h00, 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"
}
}
}
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 ni modifiés, ni supprimés. Ces instantanés restent à l'emplacement où ils ont été enregistrés.
Console
Dans la console Google Cloud, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement. La page Détails de l'environnement s'ouvre.
Accédez à l'onglet Configuration de l'environnement.
Dans Configuration de la récupération > Programmation des instantanés, cliquez sur Modifier. Le volet Programmation des instantanés s'ouvre.
Dans le volet Programmation des 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 beta 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 beta 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 :
Dans le paramètre
updateMask
, spécifiez le masqueconfig.recoveryConfig.scheduledSnapshotsConfig.enabled
pour remplacer la valeur du champenabled
.Dans le corps de la requête, spécifiez la nouvelle valeur:
{ "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": false } } } }
Exemple :
// 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
Pour désactiver les instantanés programmé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
- Enregistrer et charger des instantanés d'environnement
- Reprise après sinistre avec des instantanés
- Contrôle des accès