Ce document s'adresse aux décideurs informatiques, aux administrateurs de sauvegarde et aux administrateurs de reprise après sinistre qui souhaitent en savoir plus sur les instantanés Filestore programmés ou en créer.
Objectifs
- Configurer les fonctions Cloud Run et le fichier de configuration JSON.
- Créer une tâche Cloud Scheduler.
- Créer et étiqueter des instantanés Filestore programmés.
- Surveiller le processus de création d'instantanés.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Cloud de Confiance by S3NS:
Une fois que vous avez terminé ce tutoriel, évitez de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the Filestore, Cloud Scheduler, Cloud Functions, App Engine, and Cloud Build APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Modèle de déploiement
Le schéma suivant illustre le modèle de déploiement compatible avec les fonctions Cloud Run d'instantanés Filestore.
La tâche Cloud Scheduler se coordonne avec les fonctions Cloud Run pour planifier et générer des instantanés Filestore et des fichiers journaux. Les instantanés sont disponibles dans le partage Filestore.
Limitations connues
Lorsque vous vous préparez à configurer un planificateur d'instantanés pour les instances Filestore, tenez compte des limitations suivantes :
- La fonction ne supprime qu'un seul instantané si nécessaire, même s'il existe plus d'instantanés de planificateur que ceux définis dans le fichier de configuration de la règle de conservation, ou si le fichier de configuration de la règle de conservation est mis à jour pour conserver moins d'instantanés qu'auparavant.
- Si vous diminuez la valeur numérique de
snapshotsdans le fichier de configuration JSON, les instantanés redondants de l'instance ne sont pas automatiquement supprimés. Si vous modifiez le paramètre, vous devez supprimer manuellement les instantanés redondants. - Comme la limite de l'ID d'instantané est de 75 caractères, le nom de la règle de conservation est limité à 50 caractères.
Préparer votre environnement
Dans cette section, vous allez configurer vos variables d'environnement, cloner le dépôt, puis créer les applications et les fichiers dont vous avez besoin pour ce tutoriel.
Définir des variables d'environnement
- Dans Cloud Shell, saisissez la commande suivante :
gcloud components update
Dans Cloud Shell, créez les variables suivantes :
export PROJECT_ID=PROJECT_ID export GCP_REGION=GCP_REGION export APP_ENGINE_REGION=APP_ENGINE_REGION export FUNCTION_NAME=FUNCTION_NAME export SCHEDULER_NAME=SCHEDULER_NAME export SCHEDULER_EXPRESSION="SCHEDULER_EXPRESSION" export SCHEDULER_TZ=SCHEDULER_TZ export SERVICE_ACCOUNT_NAME=SERVICE_ACCOUNT_NAMERemplacez les éléments suivants :
PROJECT_ID: ID du projet dans lequel vous souhaitez installer l'instance d'entreprise, la fonction Cloud Run et Cloud Scheduler. Cloud de ConfianceGCP_REGION: région dans laquelle vous souhaitez installer l'instance d'entreprise, la fonction Cloud Run et Cloud Scheduler. Cloud de ConfianceAPP_ENGINE_REGION: région de la liste des emplacements App Engine dans laquelle vous souhaitez installer App Engine. Tenez compte des exigences suivantes :- Un Cloud de Confiance projet ne peut comporter qu'une seule instance App Engine, et la région App Engine ne peut plus être modifiée par la suite.
- La tâche Cloud Scheduler et l'instance App Engine doivent résider dans la même région.
- Par exemple, si les ressources Cloud Scheduler utilisent
us-central1, utilisez l'équivalent App Engineus-central. - App Engine applique une convention d'appellation unique pour certaines régions. Pour en savoir plus, consultez la liste des emplacements App Engine.
- Par exemple, si les ressources Cloud Scheduler utilisent
FUNCTION_NAME: nom que vous souhaitez attribuer à la fonction Cloud Run.SCHEDULER_NAME: nom que vous souhaitez attribuer à Cloud Scheduler.SCHEDULER_EXPRESSION: expression cron Cloud Scheduler, par exemple10 0 * * *. Pour en savoir plus, consultez la section Configurer des job Cron Cron.SCHEDULER_TZ: fuseau horaire de Cloud Scheduler, au format de nom de la liste des fuseaux horaires de la base de données tz, par exempleAmerica/Los_Angeles.SERVICE_ACCOUNT_NAME: nom du compte de service nouvellement créé, par exemplescheduler-sa.
Créer un compte de service
Dans cette section, vous allez créer un compte de service dédié, qui vous permettra de créer et de gérer la fonction Cloud Run et la tâche Cloud Scheduler.
Lorsque vous effectuez cette procédure, le compte de service nécessite les autorisations suivantes :
file.instances.getfile.snapshots.listfile.snapshots.createfile.operations.getfile.snapshots.deletecloudfunctions.functions.invoke
Pour en savoir plus, consultez la section Autorisations IAM Filestore ou Autorisations IAM des fonctions Cloud Run.
Pour créer le compte de service, procédez comme suit :
Dans Cloud Shell, créez un rôle dédié pour le planificateur d'instantanés avec les autorisations requises :
gcloud iam roles create snapshot_scheduler --project $PROJECT_ID --permissions file.instances.get,file.snapshots.list,file.snapshots.create,file.operations.get,file.snapshots.delete,logging.logEntries.create,cloudfunctions.functions.invoke --stage GACréez le compte de service :
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --project $PROJECT_IDLiez le rôle au compte de service :
gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.s3ns.iam.gserviceaccount.com --role projects/$PROJECT_ID/roles/snapshot_scheduler
Créer une instance d'entreprise
Si vous n'avez pas encore créé de variables d'environnement pour une instance d'entreprise que vous souhaitez utiliser, créez les variables suivantes dans Cloud Shell :
export FILESTORE_INSTANCE_ID=FILESTORE_INSTANCE_ID export FILESTORE_SHARE_NAME=SHARE_NAME export FILESTORE_SHARE_SIZE=NUMERIC_IN_GB export NETWORK_NAME=VPC_NAMERemplacez les éléments suivants :
FILESTORE_INSTANCE_ID: nom de l'instance d'entrepriseSHARE_NAME: nom du partage de l'instance d'entrepriseNUMERIC_IN_GB: taille du partage de l'instance d'entreprise, nombre compris entre 1 024 et 10 240, par incréments de 256VPC_NAME: nom du réseau VPC dans lequel vous souhaitez installer l'instance d'entreprise
Si vous n'en avez pas encore, créez une instance Filestore :
gcloud filestore instances create $FILESTORE_INSTANCE_ID --network name=$NETWORK_NAME --file-share=capacity=$FILESTORE_SHARE_SIZE,name=$FILESTORE_SHARE_NAME --tier ZONAL --project=$PROJECT_ID --location=$GCP_REGION
Pour en savoir plus, consultez la page Créer des instances.
Créer une application App Engine
Dans cette section, vous allez créer une application App Engine pour votre Cloud de Confiance projet. Cela vous permettra de créer une tâche Cloud Scheduler plus loin dans ce tutoriel.
Un Cloud de Confiance projet ne peut comporter qu'une seule application App Engine, et la région ne peut plus être modifiée par la suite.
Si vous n'en avez pas encore, créez une application App Engine dans Cloud Shell :
gcloud app create --region=$APP_ENGINE_REGION --project=$PROJECT_ID
Créer le fichier de configuration JSON
Le fichier de configuration JSON peut comporter jusqu'à huit instances Filestore, en raison d'une limitation des fonctions Cloud Run. Si vous avez plus de huit instances Filestore pour lesquelles planifier des instantanés, utilisez des tâches Cloud Scheduler supplémentaires.
Dans Cloud Shell, créez un fichier nommé
request.json, puis modifiez le contenu en fonction de votre environnement :{ "retention_policy": "RETENTION_NAME", "instances": [ {"instance_path": "projects/PROJECT_ID/locations/GCP_REGION/instances/FILESTORE_INSTANCE_ID/", "snapshots": NUMBER_OF_SNAPSHOTS } ] }Remplacez les éléments suivants :
RETENTION_NAME: nom de votre type de conservation d'instantanés, qui fait partie du nom de l'instantané, par exempledaily.NUMBER_OF_SNAPSHOTS: nombre d'instantanés.
Cloner le dépôt
Clonez le dépôt de l'atelier, puis accédez au répertoire :
Dans Cloud Shell, clonez le dépôt de l'atelier :
git clone https://github.com/GoogleCloudPlatform/Filestore-Snapshot-SchedulerLe résultat ressemble à ce qui suit :
Cloning into Filestore-Snapshot-SchedulerAccédez au répertoire :
cd Filestore-Snapshot-Scheduler
Créer la fonction Cloud Run
Dans Cloud Shell, créez la solution de fonction Cloud Run :
gcloud functions deploy $FUNCTION_NAME --region $GCP_REGION --runtime=python39 --trigger-http --source scheduler/ --timeout 540 --service-account $SERVICE_ACCOUNT_NAME@$PROJECT_ID.s3ns.iam.gserviceaccount.com --entry-point main --project $PROJECT_ID
Exemple :
gcloud functions deploy scheduler_func --region us-central1 --runtime=python39 --trigger-http --source scheduler/ --timeout 540 --service-account scheduler-sa@project1.s3ns.iam.gserviceaccount.com --entry-point main --project project1
Créer une tâche Cloud Scheduler
La tâche Cloud Scheduler doit se trouver dans une région équivalente à la région App Engine.
Dans Cloud Shell, créez une tâche Cloud Scheduler avec un ou plusieurs planificateurs sur la même instance Filestore :
gcloud scheduler jobs create http $SCHEDULER_NAME --schedule "$SCHEDULER_EXPRESSION" --uri "https://$GCP_REGION-$PROJECT_ID.cloudfunctions.net/$FUNCTION_NAME" --http-method POST --message-body-from-file ../request.json --oidc-service-account-email $SERVICE_ACCOUNT_NAME@$PROJECT_ID.s3ns.iam.gserviceaccount.com --time-zone $SCHEDULER_TZ --project $PROJECT_ID
Dans l'exemple suivant, le planificateur quotidien s'exécute à 20h00 :
gcloud scheduler jobs create http daily_scheduler --schedule "0 20 * * *" --uri "https://us-central1-project1.cloudfunctions.net/scheduler_func" --http-method POST --message-body-from-file ../request.json --oidc-service-account-email scheduler-sa@project1.s3ns.iam.gserviceaccount.com --time-zone America/Los_angeles --project project1
Valider les instantanés Filestore programmés
Dans la Cloud de Confiance console, accédez à la page Cloud Scheduler.
Sur la ligne correspondant à la tâche que vous avez créée, cliquez sur Actions > Forcer l'exécution d'une tâche.
Cliquez sur Actualiser.
- Si la tâche s'exécute correctement, la colonne Dernier résultat d'exécution affiche un code temporel de la dernière tâche réussie.
Si la tâche échoue, procédez comme suit :
Accédez à la page Cloud Functions.
Sur la ligne de la fonction que vous avez créée, cliquez sur Actions > Afficher les journaux.
Recherchez un message d'erreur et résolvez le problème en conséquence.
Dans la Cloud de Confiance console, accédez à la page Instances Filestore.
Dans la liste Instances, sélectionnez votre instance et assurez-vous qu'elle comporte un instantané au format de nom suivant :
sched-RETENTION_NAME-DATE-TIMEPar exemple,
sched-daily-20220315-120640.
Effectuer un nettoyage
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel ne soient facturées sur votre compte Cloud Platform, supprimez le projet contenant les ressources.
Supprimer le projet
- Dans la Cloud de Confiance console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.
Étape suivante
- En savoir plus sur les instantanés Filestore.
- En savoir plus sur les sauvegardes Filestore.
- Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Cloud Architecture Center.