Estimer les coûts de vos charges de travail Google Cloud

Cette page explique comment faire vos premiers pas avec l'API Cost Estimation. Elle inclut des exemples de requêtes API pour des scénarios de coûts courants. Si vous souhaitez utiliser la console Google Cloud, découvrez comment obtenir des estimations dans la console Google Cloud.

Vous pouvez utiliser l'API Cost Estimation pour vous faire une idée des coûts liés à des charges de travail hypothétiques. Par exemple, si vous souhaitez évaluer le budget à prévoir pour une nouvelle application, l'API vous aide à estimer le coût de l'infrastructure requise par l'application au fil du temps. Vous pouvez également obtenir une estimation qui inclut les crédits associés à une remise sur engagement d'utilisation.

L'API permet de réaliser des estimations pour les services suivants :

  • Compute Engine
  • Cloud Storage
  • CDN Interconnect
  • Cloud CDN
  • VPC

Si vous avez un contrat de tarifs négociés, vous pouvez également estimer vos coûts avec les tarifs négociés.

Avant de commencer

  • Pour appeler l'API, obtenez une clé API.

  • Si vous souhaitez obtenir des estimations avec vos tarifs de contrat, vous devez disposer de l'autorisation billing.accounts.getPricing. Si vous appelez l'API à l'aide d'un compte de service, celui-ci doit disposer de cette autorisation.

    Les rôles prédéfinis suivants disposent de l'autorisation billing.accounts.getPricing :

    • Administrateur de compte de facturation
    • Lecteur de compte de facturation
  • Vous pouvez également activer le partage des remises pour vos remises sur engagement d'utilisation. Si vous n'activez pas le partage des remises et que votre utilisation a lieu dans un projet qui ne fait pas partie de l'engagement, vos coûts estimés et réels peuvent différer considérablement.

Comprendre les composants d'une estimation

Lorsque vous définissez vos charges de travail pour une estimation des coûts, tenez compte des facteurs suivants :

  • Charge de travail : représente votre utilisation d'un seul produit Google Cloud pour la période de l'estimation. Par exemple, une charge de travail peut correspondre à une machine virtuelle Compute Engine n2 pendant une semaine.

    Dans votre requête API, vous définissez une liste de charges de travail dans l'objet workloads.

  • Scénario de coûts : ensemble de charges de travail représentant les produits Google Cloud dont votre application a besoin. Par exemple, un scénario de coûts peut correspondre à cinq machines virtuelles n2 et 4 gibioctets (Gio) de stockage Cloud Storage pendant une semaine.

    Dans votre requête API, vous configurez votre scénario de coûts dans l'objet costScenario, qui inclut la période et la liste des charges de travail.

  • Période : durée pour laquelle vous souhaitez estimer les coûts. Vous pouvez obtenir des estimations pour des durées comprises entre une heure et 10 ans.

    Dans votre requête API, vous définissez la période à l'aide de l'objet estimateDuration.

  • Segments de temps : vous pouvez diviser votre estimation en segments de temps correspondant chacun à une variation de votre utilisation sur une certaine période. Par exemple, vous pouvez demander une estimation pour une période de quatre semaines, répartie comme suit : vous commencez avec cinq VM pendant une semaine, puis vous passez à huit VM pendant deux semaines et enfin vous réduisez à trois VM pendant la dernière semaine.

    Dans votre requête API, vous définissez des segments de temps à l'aide de l'objet usageRateTimeline et vous spécifiez le début d'un segment à l'aide de estimationTimeFrameOffset.

  • Utilisation : représente la quantité d'utilisation au cours d'un segment de temps. Par exemple, vous pouvez définir un segment de temps de cinq jours au cours duquel vous souhaitez utiliser six gibioctets (Gio) dans un bucket Cloud Storage.

    Dans votre requête API, vous spécifiez l'utilisation à l'aide de l'objet usage. Lorsque vous effectuez une requête API, si vous fournissez une unité incorrecte pour l'utilisation, le message d'erreur inclut l'unité correcte.

Limites

  • Les charges de travail que vous pouvez modéliser à l'aide de l'API ne peuvent pas refléter parfaitement vos modèles d'utilisation réels. Par exemple, l'API vous permet de modéliser des charges de travail avec des variations horaires, mais l'utilisation de Compute Engine est enregistrée à la microseconde près.

  • Les estimations modélisent l'utilisation ayant lieu dans un seul projet. Si vous avez souscrit des remises sur engagement d'utilisation et que vous avez activé le partage des remises sur plusieurs projets, les frais et crédits associés à ces remises sont répartis sur tous les projets qui utilisent le service. Par exemple, si le projet A a consommé 75 $ d'utilisation et le projet B 25 $, le projet A est couvert jusqu'à 75 % du crédit disponible, et le projet B jusqu'à 25 %.

    En savoir plus sur l'attribution des crédits de remise sur engagement d'utilisation.

  • Si votre utilisation a lieu vers la fin du mois, elle peut être enregistrée pour le mois de facturation suivant.

  • Les estimations n'incluent pas le coût de la mise en réseau des VM Compute Engine dans votre scénario de coûts.

  • Les estimations ne tiennent pas compte des remises automatiques proportionnelles à une utilisation soutenue (SUD).

  • Les estimations ne tiennent pas compte des crédits sur votre compte, tels que des avoirs promotionnels ou des remises provenant d'offres privées sur Cloud Marketplace.

  • Les estimations ne tiennent pas compte des changements de tarification futurs des produits Google Cloud.

Exemples de scénarios de coûts

Les exemples suivants illustrent les appels d'API permettant d'obtenir des estimations de coûts. Pour obtenir des informations détaillées sur le format des requêtes, consultez la documentation de référence de l'API.

Dans la réponse de l'API, les coûts nets estimés se trouvent dans les objets suivants :

  • segmentTotalCostEstimate : coût estimé pour un segment de temps.
  • workloadTotalCostEstimate : coût estimé d'une charge de travail.

Estimer le coût de machines virtuelles au prix catalogue

La requête API suivante fournit une estimation pour cinq machines virtuelles (VM) n1 personnalisées, au prix catalogue, pendant 100 heures d'utilisation.

Dans la requête, usageRate indique le nombre de ressources faisant partie du scénario de coûts.

POST https://cloudbilling.googleapis.com/v1beta:estimateCostScenario?key=BILLING_ACCOUNT_ID HTTP/1.1

Accept: application/json
Content-Type: application/json

{
  "costScenario": {
    "scenarioConfig": {
      "estimateDuration": "360000s"
    },
    "workloads": [
      {
        "name": "vm-example",
        "computeVmWorkload": {
          "instancesRunning": {
            "usageRateTimeline": {
              "usageRateTimelineEntries": [
                {
                  "usageRate": 5
                }
              ]
            }
          },
          "machineType": {
            "customMachineType": {
              "machineSeries": "n1",
              "virtualCpuCount": 4,
              "memorySizeGb": 4
            }
          },
          "region": "us-central1"
        }
      }
    ]
  }
}

La réponse attendue est la suivante :

Cliquez pour développer l'exemple de réponse.

{
  "costEstimationResult": {
    "segmentCostEstimates": [
      {
        "segmentStartTime": {
          "estimationTimeFrameOffset": "0s"
        },
        "workloadCostEstimates": [
          {
            "name": "vm-example",
            "skuCostEstimates": [
              {
                "sku": "services/6F81-5844-456A/skus/ACBC-6999-A1C4",
                "usageAmount": 2000,
                "usageUnit": "h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "66",
                    "nanos": 348000000
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "66",
                    "nanos": 348000000
                  }
                }
              },
              {
                "sku": "services/6F81-5844-456A/skus/51E2-59BD-7A6E",
                "usageAmount": 2000,
                "usageUnit": "GiBy.h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "8",
                    "nanos": 892000000
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "8",
                    "nanos": 892000000
                  }
                }
              }
            ],
            "workloadTotalCostEstimate": {
              "preCreditCostEstimate": {
                "currencyCode": "USD",
                "units": "75",
                "nanos": 240000000
              },
              "netCostEstimate": {
                "currencyCode": "USD",
                "units": "75",
                "nanos": 240000000
              }
            }
          }
        ],
        "segmentTotalCostEstimate": {
          "preCreditCostEstimate": {
            "currencyCode": "USD",
            "units": "75",
            "nanos": 240000000
          },
          "netCostEstimate": {
            "currencyCode": "USD",
            "units": "75",
            "nanos": 240000000
          }
        }
      }
    ],
    "skus": [
      {
        "sku": "services/6F81-5844-456A/skus/ACBC-6999-A1C4",
        "displayName": "Custom Instance Core running in Americas",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 33174000
                  }
                }
              ],
              "unit": "h",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/51E2-59BD-7A6E",
        "displayName": "Custom Instance Ram running in Americas",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 4446000
                  }
                }
              ],
              "unit": "GiBy.h",
              "unitCount": 1
            }
          }
        ]
      }
    ],
    "currencyCode": "USD"
  }
}
  

Estimer le coût de l'utilisation de Cloud Storage à un prix contrat

La requête API suivante permet d'obtenir l'estimation pour un mois, soit 500 gibioctets (Gio) dans la région asia-southeast2, à un prix contrat :

POST https://cloudbilling.googleapis.com/v1beta/billingAccounts/BILLING_ACCOUNT_ID:estimateCostScenario HTTP/1.1

Authorization: Bearer API_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json

{
  "costScenario": {
    "workloads": [
      {
        "name": "storage-example",
        "cloudStorageWorkload": {
          "storageClass": "archive",
          "dataStored": {
            "usageRateTimeline": {
              "unit": "GiBy",
              "usageRateTimelineEntries": [
                {
                  "usageRate": 500
                }
              ]
            }
          },
          "region": {
            "name": "asia-southeast2"
          }
        }
      }
    ],
    "scenarioConfig": {
      "estimateDuration": "2628000s"
    }
  }
}

La réponse attendue est la suivante :

Cliquez pour développer l'exemple de réponse.

{
  "costEstimationResult": {
    "segmentCostEstimates": [
      {
        "segmentStartTime": {
          "estimationTimeFrameOffset": "0s"
        },
        "workloadCostEstimates": [
          {
            "name": "storage-example",
            "skuCostEstimates": [
              {
                "sku": "services/95FF-2EF5-5EA1/skus/62E5-3AA6-3149",
                "usageAmount": 493.15068493150687,
                "usageUnit": "GiBy.mo",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "1",
                    "nanos": 232876712
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "1",
                    "nanos": 232876712
                  }
                }
              }
            ],
            "workloadTotalCostEstimate": {
              "preCreditCostEstimate": {
                "currencyCode": "USD",
                "units": "1",
                "nanos": 232876712
              },
              "netCostEstimate": {
                "currencyCode": "USD",
                "units": "1",
                "nanos": 232876712
              }
            }
          }
        ],
        "segmentTotalCostEstimate": {
          "preCreditCostEstimate": {
            "currencyCode": "USD",
            "units": "1",
            "nanos": 232876712
          },
          "netCostEstimate": {
            "currencyCode": "USD",
            "units": "1",
            "nanos": 232876712
          }
        }
      }
    ],
    "skus": [
      {
        "sku": "services/95FF-2EF5-5EA1/skus/62E5-3AA6-3149",
        "displayName": "Archive Storage Jakarta",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 2500000
                  }
                }
              ],
              "unit": "GiBy.mo",
              "unitCount": 1
            }
          }
        ]
      }
    ],
    "currencyCode": "USD"
  }
}
    

Estimer le coût de charges de travail qui évoluent avec le temps

La requête API suivante fournit une estimation pour un mois d'utilisation, avec des tarifs contractuels personnalisés, pour les ressources suivantes :

  • 7000 Gio d'espace de stockage
  • Huit VM n2-standard-4
  • Trois VM n2-standard-4 supplémentaires, 14 jours après le début du mois
POST https://cloudbilling.googleapis.com/v1beta/billingAccounts/BILLING_ACCOUNT_ID:estimateCostScenario HTTP/1.1

Authorization: Bearer API_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json

{
  "costScenario": {
    "workloads": [
      {
        "name": "combined-example-storage",
        "cloudStorageWorkload": {
          "region": {
            "name": "us-central1"
          },
          "storageClass": "archive",
          "dataStored": {
            "usageRateTimeline": {
              "unit": "GiBy",
              "usageRateTimelineEntries": [
                {
                  "usageRate": 7000
                }
              ]
            }
          }
        }
      },
      {
        "name": "combined-example-compute",
        "computeVmWorkload": {
          "machineType": {
            "predefinedMachineType": {
              "machineType": "n2-standard-4"
            }
          },
          "region": "us-central1",
          "instancesRunning": {
            "usageRateTimeline": {
              "usageRateTimelineEntries": [
                {
                  "usageRate": 8
                },
                {
                  "usageRate": 11,
                  "effectiveTime": {
                    "estimationTimeFrameOffset": "1209600s"
                  }
                }
              ]
            }
          }
        }
      }
    ],
    "scenarioConfig": {
      "estimateDuration": "2628000s"
    }
  }
}

Cet exemple utilise le champ estimationTimeFrameOffset pour déterminer le moment où un nouveau segment horaire commence. Le nombre de VM passe de 8 à 11 (usageRate) après 1 209 600 secondes (14 jours), comme indiqué dans cet extrait :

"usageRateTimeline": {
  "usageRateTimelineEntries": [
    {
      "usageRate": 8
    },
    {
      "usageRate": 11,
      "effectiveTime": {
        "estimationTimeFrameOffset": "1209600s"
      }
    }
  ]

De même, pour estimer le coût si votre charge de travail est réduite à trois VM 20 jours à compter du début de la période, vous pouvez ajouter un segment supplémentaire à usageRateTimelineEntries, comme illustré dans l'exemple suivant :

"usageRateTimeline": {
  "usageRateTimelineEntries": [
    {
      "usageRate": 8
    },
    {
      "usageRate": 11,
      "effectiveTime": {
        "estimationTimeFrameOffset": "1209600s"
      }
    }
    {
      "usageRate": 3,
      "effectiveTime": {
        "estimationTimeFrameOffset": "1728000s"
      }
    }
  ]

La réponse attendue est la suivante :

Cliquez pour développer l'exemple de réponse.

{
  "costEstimationResult": {
    "segmentCostEstimates": [
      {
        "segmentStartTime": {
          "estimationTimeFrameOffset": "0s"
        },
        "workloadCostEstimates": [
          {
            "name": "combined-example-storage",
            "skuCostEstimates": [
              {
                "sku": "services/95FF-2EF5-5EA1/skus/EC4B-C190-470D",
                "usageAmount": 6904.1095890410961,
                "usageUnit": "GiBy.mo",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "8",
                    "nanos": 284931506
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "8",
                    "nanos": 284931506
                  }
                }
              }
            ],
            "workloadTotalCostEstimate": {
              "preCreditCostEstimate": {
                "currencyCode": "USD",
                "units": "8",
                "nanos": 284931506
              },
              "netCostEstimate": {
                "currencyCode": "USD",
                "units": "8",
                "nanos": 284931506
              }
            }
          },
          {
            "name": "combined-example-compute",
            "skuCostEstimates": [
              {
                "sku": "services/6F81-5844-456A/skus/BB77-5FDA-69D9",
                "usageAmount": 27648,
                "usageUnit": "h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "873",
                    "nanos": 980928000
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "873",
                    "nanos": 980928000
                  }
                }
              },
              {
                "sku": "services/6F81-5844-456A/skus/5B01-D157-A097",
                "usageAmount": 110592,
                "usageUnit": "GiBy.h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "468",
                    "nanos": 578304000
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "468",
                    "nanos": 578304000
                  }
                }
              }
            ],
            "workloadTotalCostEstimate": {
              "preCreditCostEstimate": {
                "currencyCode": "USD",
                "units": "1342",
                "nanos": 559232000
              },
              "netCostEstimate": {
                "currencyCode": "USD",
                "units": "1342",
                "nanos": 559232000
              }
            }
          }
        ],
        "segmentTotalCostEstimate": {
          "preCreditCostEstimate": {
            "currencyCode": "USD",
            "units": "1350",
            "nanos": 844163506
          },
          "netCostEstimate": {
            "currencyCode": "USD",
            "units": "1350",
            "nanos": 844163506
          }
        }
      }
    ],
    "skus": [
      {
        "sku": "services/95FF-2EF5-5EA1/skus/EC4B-C190-470D",
        "displayName": "Archive Storage Iowa",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 1200000
                  }
                }
              ],
              "unit": "GiBy.mo",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/BB77-5FDA-69D9",
        "displayName": "N2 Instance Core running in Americas",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 31611000
                  }
                }
              ],
              "unit": "h",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/5B01-D157-A097",
        "displayName": "N2 Instance Ram running in Americas",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 4237000
                  }
                }
              ],
              "unit": "GiBy.h",
              "unitCount": 1
            }
          }
        ]
      }
    ],
    "currencyCode": "USD"
  }
}

  

Estimer le coût de charges de travail lorsque vous bénéficiez d'une remise sur engagement d'utilisation

L'exemple suivant illustre une requête API pour une VM a2-megagpu, avec un GPU NVIDIA Tesla A100 et un disque persistant extrême, pendant cinq heures (18 000 secondes), avec un prix contrat et un engagement d'un an.

POST https://cloudbilling.googleapis.com/v1beta/billingAccounts/BILLING_ACCOUNT_ID:estimateCostScenario HTTP/1.1

Authorization: Bearer API_ACCESS_TOKEN
Accept: application/json
Content-Type: application/json

{
  "costScenario": {
    "workloads": [{
      "computeVmWorkload": {
        "region": "us-central1",
        "machineType": {
          "predefinedMachineType": {
            "machineType": "a2-megagpu-16g"
          }
        },
        "guestAccelerator": {
          "acceleratorType": "nvidia-tesla-a100",
          "acceleratorCount": "1"
        },
        "persistentDisks": [{
          "diskType": "pd-extreme",
          "scope": "SCOPE_ZONAL",
          "diskSize": {
            "usageRateTimeline": {
              "unit": "GiBy",
              "usageRateTimelineEntries": [{
                "usageRate": 1000.0
              }]
            }
          },
          "provisionedIops": {
            "usageRateTimeline": {
              "usageRateTimelineEntries": [{
                "usageRate": 15000.0
              }]
            }
          }
        }],
        "instancesRunning": {
          "usageRateTimeline": {
            "usageRateTimelineEntries": [{
              "usageRate": 1.0
            }]
          }
        }
      }
    }],
    "commitments": [{
      "vmResourceBasedCud": {
        "region": "us-central1",
        "virtualCpuCount": "48",
        "memorySizeGb": 680.0,
        "plan": "TWELVE_MONTH",
        "machineSeries": "a2"
      }
    }],
    "scenarioConfig": {
      "estimateDuration": "18000s"
    }
  }
}

La réponse attendue est la suivante. L'estimation des économies réalisées grâce à la remise sur engagement d'utilisation se trouve dans l'objet commitmentCostEstimates :

Cliquez pour développer l'exemple de réponse.

{
  "costEstimationResult": {
    "segmentCostEstimates": [
      {
        "segmentStartTime": {
          "estimationTimeFrameOffset": "0s"
        },
        "workloadCostEstimates": [
          {
            "name": "workload",
            "skuCostEstimates": [
              {
                "sku": "services/6F81-5844-456A/skus/2922-40C5-B19F",
                "usageAmount": 533.33333333333337,
                "usageUnit": "h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "16",
                    "nanos": 859200000
                  },
                  "creditEstimates": [
                    {
                      "creditAmount": {
                        "currencyCode": "USD",
                        "units": "-8",
                        "nanos": -429600000
                      },
                      "creditType": "Committed Use Discount"
                    }
                  ],
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "8",
                    "nanos": 429600000
                  }
                }
              },
              {
                "sku": "services/6F81-5844-456A/skus/2390-DCAF-DA38",
                "usageAmount": 7555.5555555555557,
                "usageUnit": "GiBy.h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "32",
                    "nanos": 12888888
                  },
                  "creditEstimates": [
                    {
                      "creditAmount": {
                        "currencyCode": "USD",
                        "units": "-7",
                        "nanos": -344133333
                      },
                      "creditType": "Committed Use Discount"
                    }
                  ],
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "24",
                    "nanos": 668755555
                  }
                }
              },
              {
                "sku": "services/6F81-5844-456A/skus/039F-D0DA-4055",
                "usageAmount": 5.5555555555555554,
                "usageUnit": "h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "16",
                    "nanos": 299488888
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "16",
                    "nanos": 299488888
                  }
                }
              },
              {
                "sku": "services/6F81-5844-456A/skus/165B-942F-F345",
                "usageAmount": 7.6103500761035008,
                "usageUnit": "GiBy.mo",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "nanos": 951293759
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "nanos": 951293759
                  }
                }
              },
              {
                "sku": "services/6F81-5844-456A/skus/DCA4-F1BE-57C4",
                "usageAmount": 114.15525114155251,
                "usageUnit": "mo",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "7",
                    "nanos": 420091324
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "7",
                    "nanos": 420091324
                  }
                }
              }
            ],
            "workloadTotalCostEstimate": {
              "preCreditCostEstimate": {
                "currencyCode": "USD",
                "units": "73",
                "nanos": 542962859
              },
              "creditEstimates": [
                {
                  "creditAmount": {
                    "currencyCode": "USD",
                    "units": "-15",
                    "nanos": -773733333
                  },
                  "creditType": "Committed Use Discount"
                }
              ],
              "netCostEstimate": {
                "currencyCode": "USD",
                "units": "57",
                "nanos": 769229526
              }
            }
          }
        ],
        "segmentTotalCostEstimate": {
          "preCreditCostEstimate": {
            "currencyCode": "USD",
            "units": "83",
            "nanos": 479896191
          },
          "creditEstimates": [
            {
              "creditAmount": {
                "currencyCode": "USD",
                "units": "-15",
                "nanos": -773733333
              },
              "creditType": "Committed Use Discount"
            }
          ],
          "netCostEstimate": {
            "currencyCode": "USD",
            "units": "67",
            "nanos": 706162858
          }
        },
        "commitmentCostEstimates": [
          {
            "name": "test1",
            "skuCostEstimates": [
              {
                "sku": "services/6F81-5844-456A/skus/3A31-931E-6360",
                "usageAmount": 266.66666666666669,
                "usageUnit": "h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "5",
                    "nanos": 310666666
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "5",
                    "nanos": 310666666
                  }
                }
              },
              {
                "sku": "services/6F81-5844-456A/skus/220C-35D0-70E0",
                "usageAmount": 1733.3333333333333,
                "usageUnit": "GiBy.h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "4",
                    "nanos": 626266666
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "4",
                    "nanos": 626266666
                  }
                }
              }
            ],
            "commitmentTotalCostEstimate": {
              "preCreditCostEstimate": {
                "currencyCode": "USD",
                "units": "9",
                "nanos": 936933332
              },
              "netCostEstimate": {
                "currencyCode": "USD",
                "units": "9",
                "nanos": 936933332
              }
            }
          }
        ]
      }
    ],
    "skus": [
      {
        "sku": "services/6F81-5844-456A/skus/3A31-931E-6360",
        "displayName": "Commitment v1: A2 Cpu in Americas for 1 Year",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 19915000
                  }
                }
              ],
              "unit": "h",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/220C-35D0-70E0",
        "displayName": "Commitment v1: A2 Ram in Americas for 1 Year",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 2669000
                  }
                }
              ],
              "unit": "GiBy.h",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/039F-D0DA-4055",
        "displayName": "Nvidia Tesla A100 GPU running in Americas",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "units": "2",
                    "nanos": 933908000
                  }
                }
              ],
              "unit": "h",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/165B-942F-F345",
        "displayName": "Extreme PD Capacity",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 125000000
                  }
                }
              ],
              "unit": "GiBy.mo",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/DCA4-F1BE-57C4",
        "displayName": "Extreme PD IOPS",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 65000000
                  }
                }
              ],
              "unit": "mo",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/2922-40C5-B19F",
        "displayName": "A2 Instance Core running in Americas",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 31611000
                  }
                }
              ],
              "unit": "h",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/2390-DCAF-DA38",
        "displayName": "A2 Instance Ram running in Americas",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 4237000
                  }
                }
              ],
              "unit": "GiBy.h",
              "unitCount": 1
            }
          }
        ]
      }
    ],
    "currencyCode": "USD"
  }
}
    

Estimer le coût d'une VM avec une licence premium, au prix catalogue

L'exemple suivant illustre une requête API pour cinq machines virtuelles n1 personnalisées dotées d'une licence premium de Windows Server 2022 DC au prix catalogue, pendant 100 heures.

POST https://cloudbilling.googleapis.com/v1beta:estimateCostScenario?key=[YOUR_API_KEY] HTTP/1.1

Accept: application/json
Content-Type: application/json

{
  "costScenario": {
    "scenarioConfig": {
      "estimateDuration": "360000s"
    },
    "workloads": [
      {
        "name": "vm-example",
        "computeVmWorkload": {
          "instancesRunning": {
            "usageRateTimeline": {
              "usageRateTimelineEntries": [
                {
                  "usageRate": 5
                }
              ]
            }
          },
          "machineType": {
            "customMachineType": {
              "machineSeries": "n1",
              "virtualCpuCount": 4,
              "memorySizeGb": 4
            }
          },
          "region": "us-central1",
          "licenses": "projects/windows-cloud/global/licenses/windows-server-2022-dc"
        }
      }
    ]
  }
}

La réponse attendue est la suivante :

Cliquez pour développer l'exemple de réponse.

{
  "costEstimationResult": {
    "segmentCostEstimates": [
      {
        "segmentStartTime": {
          "estimationTimeFrameOffset": "0s"
        },
        "workloadCostEstimates": [
          {
            "name": "vm-example",
            "skuCostEstimates": [
              {
                "sku": "services/6F81-5844-456A/skus/ACBC-6999-A1C4",
                "usageAmount": 2000,
                "usageUnit": "h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "66",
                    "nanos": 348000000
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "66",
                    "nanos": 348000000
                  }
                }
              },
              {
                "sku": "services/6F81-5844-456A/skus/51E2-59BD-7A6E",
                "usageAmount": 2000,
                "usageUnit": "GiBy.h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "8",
                    "nanos": 892000000
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "8",
                    "nanos": 892000000
                  }
                }
              },
              {
                "sku": "services/6F81-5844-456A/skus/92D2-8A8F-DF54",
                "usageAmount": 2000.0,
                "usageUnit": "h",
                "costEstimate": {
                  "preCreditCostEstimate": {
                    "currencyCode": "USD",
                    "units": "92"
                  },
                  "netCostEstimate": {
                    "currencyCode": "USD",
                    "units": "92"
                  }
                }
              }
            ],
            "workloadTotalCostEstimate": {
              "preCreditCostEstimate": {
                "currencyCode": "USD",
                "units": "167",
                "nanos": 240000000
              },
              "netCostEstimate": {
                "currencyCode": "USD",
                "units": "167",
                "nanos": 240000000
              }
            }
          }
        ],
        "segmentTotalCostEstimate": {
          "preCreditCostEstimate": {
            "currencyCode": "USD",
            "units": "167",
            "nanos": 240000000
          },
          "netCostEstimate": {
            "currencyCode": "USD",
            "units": "167",
            "nanos": 240000000
          }
        }
      }
    ],
    "skus": [
      {
        "sku": "services/6F81-5844-456A/skus/92D2-8A8F-DF54",
        "displayName": "Licensing Fee for Windows Server 2022 Datacenter Edition on VM",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 46000000
                  }
                }
              ],
              "unit": "GiBy.h",
              "unitCount": 1.0
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/51E2-59BD-7A6E",
        "displayName": "Custom Instance Ram running in Americas",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 4446000
                  }
                }
              ],
              "unit": "GiBy.h",
              "unitCount": 1
            }
          }
        ]
      },
      {
        "sku": "services/6F81-5844-456A/skus/ACBC-6999-A1C4",
        "displayName": "Custom Instance Core running in Americas",
        "prices": [
          {
            "priceType": "RATE",
            "rate": {
              "tiers": [
                {
                  "price": {
                    "currencyCode": "USD",
                    "nanos": 33174000
                  }
                }
              ],
              "unit": "h",
              "unitCount": 1
            }
          }
        ]
      }
    ],
    "currencyCode": "USD"
  }
}