Cette page explique comment utiliser les recommandations de VM inactives pour identifier et arrêter les instances de VM inactives afin de réduire le gaspillage de ressources et votre facture de calcul sur vos projets.
- Pour en savoir plus sur la manière dont Compute Engine génère des recommandations de VM inactives, consultez la page Fonctionnement de la détection des instances de VM inactives.
- Pour en savoir plus sur la configuration de l'outil de recommandation de VM inactives pour recevoir plus ou moins de recommandations, consultez la page Configurer les recommandations de VM inactives.
Avant de commencer
- Consultez les limites pour vérifier si votre VM est compatible avec les recommandations de VM inactives.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud.
Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Définissez une région et une zone par défaut.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Tarifs
Les recommandations de VM inactives sont disponibles gratuitement. Les recommandations permettant de réduire votre utilisation des ressources peuvent vous permettre de réduire les coûts.
Afficher les recommandations d'instances de VM inactives
Pour afficher les recommandations concernant les VM inactives, utilisez gcloud CLI ou REST.
gcloud
Utilisez la commande gcloud recommender recommendations list
avec --recommender=google.compute.instance.IdleResourceRecommender
:
gcloud recommender recommendations list \ --project=PROJECT_ID \ --location=ZONE \ --recommender=google.compute.instance.IdleResourceRecommender \ --format=yaml
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projetZONE
: zone contenant des instances pour lesquelles vous souhaitez répertorier les recommandations
Exemple :
gcloud recommender recommendations list \ --project=my-project \ --location=us-central1-c \ --recommender=google.compute.instance.IdleResourceRecommender \ --format=yaml
S'il n'y a pas de VM inactive dans l'emplacement, la réponse est vide. Sinon, la réponse inclut les champs suivants pour chaque recommandation :
operationGroups
: groupes d'opérations que vous pouvez effectuer dans un ordre sérialisé pour appliquer la recommandationdescription
: explication de la recommandation, dans un format lisible
---
content:
...
operationGroups:
- operations:
- action: test
path: /status
resource: //compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name
resourceType: compute.googleapis.com/Instance
value: RUNNING
- action: replace
path: /status
resource: //compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name
resourceType: compute.googleapis.com/Instance
value: TERMINATED
description: Save cost by stopping Idle VM 'vm-name'.
etag: '"83da314c23f634e1"'
lastRefreshTime: '2020-02-24T07:56:40Z'
name: projects/141732092341/locations/us-central1-c/recommenders/google.compute.instance.IdleResourceRecommender/recommendations/0e061a3a-f921-4216-b1b4-62e16942cd1a
primaryImpact:
category: COST
costProjection:
cost:
currencyCode: USD
nanos: -91533961
units: '-262'
duration: 2592000s
recommenderSubtype: STOP_VM
stateInfo:
state: ACTIVE
Pour en savoir plus sur l'utilisation des recommandations à l'aide de gcloud, consultez les exemples gcloud.
REST
Appelez la méthode recommendations.list
et utilisez le type de recommandation suivant :
- google.compute.instance.IdleResourceRecommender
L'appel d'API ressemble à ceci :
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/recommenders/google.compute.instance.IdleResourceRecommender/recommendations
Remplacez les éléments suivants :
PROJECT_ID
: par l'ID du projet.ZONE
: par la zone contenant des instances pour lesquelles vous souhaitez répertorier les recommandations.
L'exemple suivant montre comment envoyer une requête avec curl
et l'exemple de réponse associé.
PROJECT_ID=my-project ZONE=us-central1-c RECOMMENDER_ID=google.compute.instance.IdleResourceRecommender curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: $PROJECT_ID" \ https://recommender.googleapis.com/v1/projects/$PROJECT_ID/locations/$ZONE/recommenders/$RECOMMENDER_ID/recommendations
Exemple de réponse JSON pour une recommandation de VM inactive :
{
"description" : "Save cost by stopping Idle VM `vm-name`",
"name": "projects/1574864402/locations/us-central1-c/recommenders/"
"google.compute.instance.IdleResourceRecommender/"
"recommendations/0fd31b24-cc05-4132-8431-ed54a22dd4f1",
"lastRefreshTime": {
"seconds": 1543912652
},
"primaryImpact": {
"category": COST,
"costProjection": {
"cost": {"currencyCode": "USD", "units": -50},
"duration": { "seconds": 2592000 }
}
},
"stateInfo": ACTIVE,
"content":
"groups" : [
{
"operations" : [
{
"action": "test",
"resourceType": "compute.googleapis.com/Instance",
"resource": "//compute.googleapis.com/projects/my-project/"
"zones/us-central1-c/instances/vm-name",
"path": "/status",
"value": "RUNNING"
},
{
"action": "replace",
"resourceType": "compute.googleapis.com/Instance",
"resource": "//compute.googleapis.com/projects/my-project/"
"zones/us-central1-c/instances/vm-name",
"path": "/status",
"value": "TERMINATED"
}
]
}
]
},
"etag" : "cb0e6ac2cfc0b591"
}
Vous trouverez plus de détails sur chaque champ dans la documentation de l'outil de recommandation.
Interpréter la réponse à la recommandation
Chaque recommandation que vous recevez via gcloud CLI ou REST contient un groupe d'opérations que vous pouvez exécuter en série pour appliquer la recommandation. Les groupes d'opérations de recommandation relatives aux VM inactives incluent deux opérations :
Opération de test pour vérifier l'état (
status
) actuel de la VM. Exemple :{ "action": "test", "resourceType": "compute.googleapis.com/Instance", "resource" : "//compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name", "path": "/status", "value": "RUNNING" }
Opération de remplacement pour modifier l'état (
status
) de la VM. Exemple :{ "action": "replace", "resourceType": "compute.googleapis.com/Instance", "resource" : "//compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/vm-name", "path": "/status", "value": "TERMINATED" }
La première opération est un test
, ce qui signifie que vous devez vérifier que la ressource (resource
) est toujours active (RUNNING
). Pour ce faire, vérifiez l'état de la VM.
La deuxième opération, replace
, signifie que vous devez remplacer l'état (status
) de la ressource par une nouvelle valeur, TERMINATED
. Pour ce faire, arrêtez la VM comme décrit ci-dessous.
Appliquer des recommandations de VM inactives
Après avoir reçu une recommandation de VM inactive et déterminé que l'instance correspondante n'est plus nécessaire, utilisez la console Google Cloud, gcloud CLI ou REST pour arrêter et éventuellement supprimer l'instance.
Si vous arrêtez une instance et ses disques, mais que vous ne les supprimez pas, vous continuez à être facturé pour les disques.
Console
- Dans Google Cloud Console, accédez à la page Instances de VM.
- Sélectionnez l'instance que vous souhaitez arrêter.
- Cliquez sur Arrêter.
gcloud
Utilisez la commande instances stop
et spécifiez le nom de la VM (VM_NAME
) que vous souhaitez arrêter.
gcloud compute instances stop VM_NAME --zone=ZONE
Remplacez les éléments suivants :
VM_NAME
: nom de l'instance de VM que vous souhaitez arrêterZONE
: zone contenant l'instance que vous souhaitez arrêter
REST
Créez une requête POST
pour arrêter une instance.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projetZONE
: zone contenant l'instance que vous souhaitez arrêterVM_NAME
: nom de l'instance de VM que vous souhaitez arrêter
Si vous êtes sûr que l'instance de VM et ses disques peuvent être supprimés, vous pouvez supprimer l'instance.
Étapes suivantes
- Découvrez comment le fait d'arrêter, de réinitialiser et de supprimer une instance de VM affecte l'instance et ses ressources.
- Découvrez comment configurer des recommandations de VM inactives.