arrow_back

Éliminer les adresses IP inutilisées

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Éliminer les adresses IP inutilisées

Lab 1 heure universal_currency_alt 5 crédits show_chart Intermédiaire
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP646

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans cet atelier, vous allez identifier et éliminer les ressources cloud inutilisées à l'aide de Cloud Functions et de Cloud Scheduler. Sur Google Cloud, les adresses IP statiques sont gratuites quand elles sont associées à un équilibreur de charge ou à une instance de machine virtuelle (VM). Lorsqu'une adresse IP statique est réservée, mais non utilisée, elle fait l'objet d'une facturation horaire. Dans les applications qui dépendent fortement d'adresses IP statiques et du provisionnement dynamique à grande échelle, ce gaspillage peut devenir important au fil du temps.

Objectifs de l'atelier

  • Créer une VM Compute Engine associée à une adresse IP statique externe et à une adresse IP statique externe inutilisée distincte
  • Déployer une fonction Cloud pour identifier les adresses inutilisées
  • Créer un job Cloud Scheduler pour planifier l'exécution de la fonction à l'aide d'un déclencheur HTTP

Architecture

Le diagramme suivant présente l'architecture utilisée dans la première section de cet atelier, lors de laquelle vous allez planifier une fonction Cloud pour identifier et éliminer les adresses IP inutilisées.

Schéma de l'architecture

Préparation

Dans cette section, vous allez configurer l'infrastructure et les identités requises pour réaliser l'atelier.

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Activer les API et cloner le dépôt

  1. Dans Cloud Shell, activez l'API Cloud Scheduler :

    gcloud services enable cloudscheduler.googleapis.com Remarque : L'activation de l'API Cloud Scheduler peut prendre un certain temps.

Cliquez sur Vérifier ma progression pour valider l'objectif.

Activer l'API Cloud Scheduler
  1. Clonez le dépôt :

    git clone https://github.com/GoogleCloudPlatform/gcf-automated-resource-cleanup.git && cd gcf-automated-resource-cleanup/
  2. Définissez des variables d'environnement et utilisez le dossier de dépôt comme répertoire de travail $WORKDIR. C'est d'ici que vous exécuterez toutes les commandes de cet atelier :

    export PROJECT_ID=$(gcloud config list --format 'value(core.project)' 2>/dev/null) export region={{{project_0.default_region | Region}}} WORKDIR=$(pwd)

Tâche 2 : Créer des adresses IP

  1. Dans Cloud Shell, accédez au répertoire "unused-ip" :

    cd $WORKDIR/unused-ip
  2. Exportez les noms des adresses IP en tant que variables :

    export USED_IP=used-ip-address export UNUSED_IP=unused-ip-address
  3. Créez deux adresses IP statiques :

    gcloud compute addresses create $USED_IP --project=$PROJECT_ID --region={{{project_0.default_region | Region}}} gcloud compute addresses create $UNUSED_IP --project=$PROJECT_ID --region={{{project_0.default_region | Region}}}

    Cet atelier utilise la région , mais vous pouvez en choisir une autre et y faire référence de manière systématique dans le reste de l'atelier.

  4. Vérifiez que les deux adresses ont été créées :

    gcloud compute addresses list --filter="region:({{{project_0.default_region | Region}}})"

    Dans le résultat de cette commande, l'état RESERVED (Réservée) signifie que les adresses IP ne sont pas utilisées :

    NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS unused-ip-address 35.232.144.85 EXTERNAL {{{project_0.default_region | Region}}} RESERVED used-ip-address 104.197.56.87 EXTERNAL {{{project_0.default_region | Region}}} RESERVED

Cliquez sur Vérifier ma progression pour valider l'objectif.

Créer deux adresses IP statiques
  1. Définissez l'adresse IP utilisée en tant que variable d'environnement :

    export USED_IP_ADDRESS=$(gcloud compute addresses describe $USED_IP --region={{{project_0.default_region | Region}}} --format=json | jq -r '.address')

Tâche 3 : Créer une VM

  1. Dans Cloud Shell, créez une instance :

    gcloud compute instances create static-ip-instance \ --zone={{{project_0.default_zone | Zone}}} \ --machine-type=e2-medium \ --subnet=default \ --address=$USED_IP_ADDRESS

Cliquez sur Vérifier ma progression pour valider l'objectif.

Créer une instance avec l'adresse IP statique précédemment créée
  1. Vérifiez que l'une des adresses IP est maintenant utilisée :

    gcloud compute addresses list --filter="region:({{{project_0.default_region | Region}}})"

    Le résultat ressemble à ce qui suit :

    NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS unused-ip-address 35.232.144.85 EXTERNAL {{{project_0.default_region | Region}}} RESERVED used-ip-address 104.197.56.87 EXTERNAL {{{project_0.default_region | Region}}} IN_USE

Tâche 4 : Examiner le code de la fonction Cloud

  • Dans Cloud Shell, affichez la section principale du code :

    cat $WORKDIR/unused-ip/function.js | grep "const compute" -A 31

Voici le résultat :

const compute = new Compute(); compute.getAddresses(function(err, addresses){ // gets all addresses across regions if(err){ console.log("there was an error: " + err); } if (addresses == null) { console.log("no addresses found"); return; } console.log("there are " + addresses.length + " addresses"); // iterate through addresses for (let item of addresses){ // get metadata for each address item.getMetadata(function(err, metadata, apiResponse) { // if the address is not used: if (metadata.status=='RESERVED'){ // compute age by convering ISO 8601 timestamps to Date var creationDate = new Date(metadata.creationTimestamp); var currDate = new Date(); var addressAge = Math.floor((currDate - creationDate)/86400e3);; // delete address item.delete(function(err, operation, apiResponse2){ if (err) { console.log("could not delete address: " + err); } }) }

Dans l'exemple de code précédent, les éléments suivants sont importants :

  • compute.getAddresses(function(err, addresses) utilise la méthode getAddresses pour récupérer les adresses IP de toutes les régions du projet.

  • item.getMetadata(function(err, metadata, apiResponse) récupère les métadonnées de chaque adresse IP et vérifie leur champ STATUS (État).

  • if ((metadata.status=='RESERVED') & (calculateAge(metadata.creationTimestamp) >= ageToDelete)){ vérifie si l'adresse IP est utilisée, calcule son âge à l'aide d'une fonction d'assistance, puis le compare à une constante (définie sur 0 pour les besoins de l'atelier).

  • item.delete(function(err, operation, apiResponse2){ supprime l'adresse IP.

Tâche 5 : Déployer la fonction Cloud

  1. Dans Cloud Shell, déployez la fonction Cloud :

    gcloud functions deploy unused_ip_function --trigger-http --runtime=nodejs12 --region={{{project_0.default_region | Region}}}
    • Si vous y êtes invité, saisissez Y pour autoriser les appels non authentifiés.
    Remarque : Le déploiement d'une fonction Cloud peut prendre deux à cinq minutes selon la région.

Cliquez sur Vérifier ma progression pour valider l'objectif.

Déployer la fonction Cloud
  1. Définissez l'URL du déclencheur en tant que variable d'environnement :

    export FUNCTION_URL=$(gcloud functions describe unused_ip_function --region={{{project_0.default_region | Region}}} --format=json | jq -r '.httpsTrigger.url')

Tâche 6 : Planifier et tester la fonction Cloud

  1. Dans Cloud Shell, créez une application App Engine pour utiliser Cloud Scheduler :

    gcloud app create --region {{{project_0.startup_script.app_region | REGION}}}
  2. Dans Cloud Shell, créez une tâche Cloud Scheduler permettant d'exécuter la fonction Cloud à 2h toutes les nuits :

    gcloud scheduler jobs create http unused-ip-job \ --schedule="* 2 * * *" \ --uri=$FUNCTION_URL \ --location={{{project_0.default_region | Region}}}

Cliquez sur Vérifier ma progression pour valider l'objectif.

Créer une application App Engine
  1. Testez le job en le déclenchant manuellement :

    gcloud scheduler jobs run unused-ip-job \ --location={{{project_0.default_region | Region}}}

Aucun résultat ne devrait s'afficher.

Cliquez sur Vérifier ma progression pour valider l'objectif.

Exécuter un job Cloud Scheduler
  1. Vérifiez que l'adresse IP inutilisée a été supprimée :

    gcloud compute addresses list --filter="region:({{{project_0.default_region | Region}}})"

Le résultat ressemble à ce qui suit :

NAME ADDRESS/RANGE TYPE PURPOSE NETWORK REGION SUBNET STATUS used-ip-address 104.197.56.87 EXTERNAL {{{project_0.default_region | Region}}} IN_USE

Cliquez sur Vérifier ma progression pour valider l'objectif.

Vérifier que l'adresse IP inutilisée a été supprimée

Félicitations !

Dans cet atelier, vous avez effectué les tâches suivantes :

  • Créer une VM Compute Engine associée à une adresse IP statique externe et à une adresse IP statique externe inutilisée distincte
  • Déployer une fonction Cloud pour identifier les adresses inutilisées
  • Créer un job Cloud Scheduler pour planifier l'exécution de la fonction à l'aide d'un déclencheur HTTP

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 23 novembre 2023

Dernier test de l'atelier : 23 novembre 2023

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.