Leçon 1 sur 9 · Fondamentaux
Google Cloud : projets, organisation, facturation, console et gcloud
Objectif
Comprendre comment Google Cloud range les ressources (organisation, dossiers, projets), comment l'argent circule (compte de facturation), choisir une région pour un client marocain, puis piloter le tout avec la console, Cloud Shell et gcloud.
Les notions générales du cloud (modèles de service, responsabilité partagée, élasticité, coûts) sont traitées dans la formation « Cloud » (fondamentaux). Si vous connaissez déjà AWS ou Azure, la grande différence de Google Cloud est la place centrale du projet.
L'essentiel
- Le projet est l'unité de base : toute ressource (VM, bucket, service Cloud Run) appartient à un projet. Il a un ID unique au monde (
boutique-atlas-prod), un nom affiché et un numéro. - Au-dessus : les dossiers et l'organisation (liée à un domaine Google Workspace ou Cloud Identity, par exemple
boutiqueatlas.ma). Les droits IAM et les règles d'administration héritent vers le bas. - Un compte de facturation paie pour un ou plusieurs projets. Un projet sans compte de facturation ne peut utiliser que les services gratuits.
- Avant d'utiliser un service, il faut activer son API dans le projet (
gcloud services enable). - Pas de région Google Cloud au Maroc à ce jour : les plus proches sont europe-southwest1 (Madrid) et europe-west9 (Paris).
1. La hiérarchie des ressources
Organisation : boutiqueatlas.ma
├── Dossier « Production »
│ ├── Projet boutique-atlas-prod ← site web, base, stockage
│ └── Projet reseau-partage-prod ← VPC partagé, VPN
└── Dossier « Hors-production »
└── Projet boutique-atlas-dev
| Niveau | Rôle | Remarque |
|---|---|---|
| Organisation | racine, liée au domaine de l'entreprise | créée avec Google Workspace ou Cloud Identity (version gratuite possible) |
| Dossier | regrouper des projets (par service, par environnement, par client) | peut contenir d'autres dossiers |
| Projet | conteneur des ressources, des API activées, des quotas | l'ID est définitif et unique au monde |
| Ressource | VM, bucket, sujet Pub/Sub… | appartient à un seul projet |
Sans organisation (compte Gmail personnel), vos projets sont « sans organisation » : c'est acceptable pour apprendre, mais une entreprise a besoin de l'organisation pour centraliser les droits, les règles et la facturation.
Identifiant, nom et numéro
ID du projet : boutique-atlas-prod (choisi par vous, 6 à 30 caractères, définitif)
Nom du projet : Boutique Atlas Prod (libre, modifiable)
Numéro du projet : 412345678901 (attribué par Google)
L'ID apparaît dans les URL, les noms de comptes de service (…@boutique-atlas-prod.iam.gserviceaccount.com) et les commandes. Choisissez-le avec soin : on ne peut pas le renommer.
2. La facturation
- Un compte de facturation Cloud porte le moyen de paiement (carte bancaire internationale, ou facturation mensuelle pour les entreprises éligibles). Son identifiant a la forme
01A2B3-C4D5E6-F7A8B9. - Un compte de facturation peut payer plusieurs projets ; un projet est lié à un seul compte à la fois.
- Les nouveaux comptes bénéficient en général d'un crédit d'essai et d'un niveau gratuit (une petite VM
e2-microdans certaines régions américaines, quelques Go de stockage…). Les conditions changent : vérifiez-les sur la page officielle. - Créez des budgets avec alertes dès le premier jour (leçon 3.1).
gcloud billing accounts list
gcloud billing projects link boutique-atlas-prod --billing-account=01A2B3-C4D5E6-F7A8B9
gcloud billing projects describe boutique-atlas-prod # billingEnabled: true
3. Régions et zones
Une région (europe-southwest1, Madrid) contient plusieurs zones (europe-southwest1-a, -b, -c). Certaines ressources sont zonales (VM, disques persistants zonaux), d'autres régionales (sous-réseaux, Cloud Run, disques régionaux), d'autres mondiales (réseaux VPC, images, règles de pare-feu).
| Critère | À vérifier |
|---|---|
| latence vers le Maroc | Madrid et Paris sont les plus proches |
| disponibilité des services et des types de machines | tous ne sont pas partout |
| prix | il varie selon la région |
| exigences légales | loi 09-08 sur les données personnelles ; avis de la CNDP pour certains transferts |
| empreinte carbone | Google signale les régions à faibles émissions |
gcloud compute regions list
gcloud compute zones list --filter="region:europe-southwest1"
4. La console et Cloud Shell
La console (console.cloud.google.com) permet de tout faire en cliquant. Repères utiles :
- le sélecteur de projet en haut : vérifiez-le toujours avant d'agir ;
- API et services : activer une API ;
- IAM et administration : droits, comptes de service, quotas ;
- Facturation : rapports, budgets ;
- l'icône Activer Cloud Shell ouvre un terminal.
Cloud Shell est une petite VM Debian gratuite, déjà authentifiée, avec gcloud, kubectl, terraform, docker, git et un éditeur de code. Votre dossier personnel (5 Go) est conservé entre les sessions. C'est l'outil idéal pour suivre cette formation depuis n'importe quel poste.
5. gcloud sur votre poste
Le Google Cloud CLI contient gcloud, gsutil (ancien outil du stockage, remplacé par gcloud storage) et bq (BigQuery).
gcloud init # assistant : connexion, projet, région par défaut
gcloud auth login # se connecter (ouvre le navigateur)
gcloud auth list # comptes connectés
gcloud config list # configuration active
gcloud projects list
gcloud components update # mettre à jour (installation par archive)
Valeurs par défaut
gcloud config set project boutique-atlas-prod
gcloud config set compute/region europe-southwest1
gcloud config set compute/zone europe-southwest1-a
gcloud config get-value project
gcloud config unset compute/zone
Plusieurs configurations
Un consultant d'une ESN de Rabat travaille pour trois clients : une configuration nommée par client évite les erreurs.
gcloud config configurations create client-boutique
gcloud config set account consultant@esn.ma
gcloud config set project boutique-atlas-prod
gcloud config configurations list
gcloud config configurations activate client-ecole
gcloud compute instances list --project=autre-projet # forcer un projet pour UNE commande
La forme des commandes
gcloud [GROUPE ...] RESSOURCE ACTION [NOM] --options
gcloud compute instances create web-01 --machine-type=e2-medium
gcloud storage buckets list
gcloud run services describe site
gcloud help compute instances create ou --help affiche l'aide ; gcloud beta … et gcloud alpha … donnent accès aux fonctionnalités en préversion.
Formats et filtres
gcloud compute instances list --format="table(name, zone.basename(), status)"
gcloud compute instances list --filter="status=RUNNING AND labels.env=prod"
gcloud projects describe boutique-atlas-prod --format="value(projectNumber)" # valeur brute
gcloud compute instances list --format=json | jq '.[].name'
--format=value(...) est l'équivalent de --output tsv d'Azure : idéal pour une variable shell.
6. Les API et les quotas
Chaque service est une API à activer par projet. Une erreur « API has not been used in project … or it is disabled » signifie simplement qu'il faut l'activer.
gcloud services list --enabled
gcloud services enable compute.googleapis.com run.googleapis.com
gcloud services disable bigquery.googleapis.com
Les quotas (nombre de vCPU par région, d'adresses IP…) protègent votre facture et la plateforme. Une demande d'augmentation se fait depuis la console (IAM et administration → Quotas).
7. Étiquettes (labels)
gcloud compute instances update web-01 --update-labels=env=prod,projet=boutique
Les labels (minuscules, chiffres, _ et -) se retrouvent dans l'export de facturation : ils permettent de répondre à « combien coûte la boutique en production ? ». Ne pas confondre avec les tags réseau (leçon 1.4) ni les tags de ressources gérés au niveau de l'organisation.
8. Fermer un projet
gcloud projects delete boutique-atlas-dev
Le projet passe en arrêt : toutes ses ressources cessent de fonctionner et de coûter, et il est supprimé définitivement après 30 jours. Pendant ce délai, gcloud projects undelete le restaure. Un projet de test supprimé est la meilleure façon d'être sûr de ne rien oublier.
Pièges fréquents
- Agir dans le mauvais projet : vérifiez
gcloud config get-value project(ou le sélecteur de la console) avant chaque opération importante. - Choisir un ID de projet trop générique ou avec le nom d'un client que vous risquez de perdre : il est définitif.
- Oublier de lier la facturation : les créations de VM échouent avec une erreur de facturation.
- Croire qu'un projet supprimé disparaît tout de suite : il reste 30 jours, et son ID ne peut pas être réutilisé.
Lab
Vous écrivez le script de démarrage du projet de production de Boutique Atlas : création du projet, liaison à la facturation, valeurs par défaut (Madrid), activation des API, puis un petit fichier qui résume la hiérarchie des ressources. Le lab n'a ni réseau ni gcloud : le script est celui que vous lanceriez dans Cloud Shell.
cat /root/gcp/01-projet.sh
sh -n /root/gcp/01-projet.sh # vérifier la syntaxe sans exécuter
Quiz
- Quelle est l'unité de base qui contient les ressources dans Google Cloud ?
- Peut-on renommer l'ID d'un projet ?
- Que faut-il faire avant d'utiliser Compute Engine dans un projet neuf ?
- Quelle option de gcloud donne une valeur brute, sans tableau ?
- Que devient un projet supprimé pendant les 30 premiers jours ?
Réponses
- Le projet.
- Non : l'ID est définitif (seul le nom affiché se modifie).
- Le lier à un compte de facturation et activer l'API
compute.googleapis.com. --format="value(champ)".- Il est arrêté (plus de service, plus de coûts) et peut être restauré avec
gcloud projects undelete; ensuite il est supprimé définitivement.
Sources de référence : documentation Google Cloud (CC BY 4.0) — Compute Engine, gcloud, IAM, emplacements. Texte original MasterLinux.