Impostazioni di fatturazione per i servizi

Questa pagina descrive le impostazioni di fatturazione presupponendo l'utilizzo del comportamento di scalabilità automatica predefinito di Cloud Run. Consulta Comportamento di fatturazione con la scalabilità manuale per ulteriori considerazioni se utilizzi la scalabilità manuale.

Esistono due impostazioni di fatturazione nei servizi Cloud Run:

  • Fatturazione basata sulle richieste (impostazione predefinita): le istanze del servizio Cloud Run vengono addebitate solo quando elaborano le richieste, quando vengono avviate e quando vengono arrestate. Per saperne di più, consulta Ciclo di vita delle istanze. In precedenza, questa impostazione era denominata CPU allocata solo durante l'elaborazione delle richieste.

  • Fatturazione basata sulle istanze: le istanze del servizio Cloud Run vengono addebitate per l'intero ciclo di vita di ogni istanza, anche quando non ci sono richieste in entrata. La fatturazione basata sulle istanze può essere utile per l'esecuzione di attività in background di breve durata e altre attività di elaborazione asincrona. Questa impostazione era precedentemente denominata CPU sempre allocata.

Se scegli la fatturazione basata sulle richieste, ti vengono addebitati i costi per richiesta e solo quando l'istanza elabora una richiesta. Se scegli la fatturazione basata sulle istanze, ti vengono addebitati i costi per l'intero ciclo di vita dell'istanza. A differenza dei servizi Cloud Run, tutti i job Cloud Run hanno una fatturazione basata sulle istanze.

Impatto dell'allocazione della CPU

La selezione di un'impostazione di fatturazione influisce sull'allocazione della CPU.

  • Con la fatturazione basata sulle richieste, la CPU viene allocata solo durante l'elaborazione delle richieste.
  • Con la fatturazione basata sulle istanze, la CPU viene allocata per l'intero ciclo di vita dell'istanza di container.

Limiti di spesa del budget

Quando configuri i limiti di spesa di fatturazione Cloud nella console di fatturazione Cloud o in modo programmatico utilizzando l'API Cloud Billing Budget, questi limiti vengono applicati automaticamente a tutti i tipi di risorse Cloud Run nel tuo progetto.

Puoi monitorare l'avanzamento del limite di spesa direttamente dalla pagina Panoramica della console Cloud Run. Quando raggiungi un limite di spesa, Cloud de Confiance by S3NS mette in pausa tutti i workload di Cloud Run per evitare ulteriori costi per le seguenti risorse Cloud Run:

  • Servizi: i servizi esistenti non riusciranno a gestire il traffico e restituiranno errori 5xx.
  • Job: l'avvio delle nuove esecuzioni delle attività non riesce e le attività in corso non vengono completate.
  • Pool di worker: tutte le istanze esistenti interrompono l'elaborazione delle attività.
  • Istanze: tutte le istanze in esecuzione vengono arrestate, le nuove istanze o i riavvii non vengono avviati e le richieste agli URL delle istanze restituiscono errori 5xx.

Se superi il limite di spesa, riceverai una notifica di avviso e vedrai un banner di applicazione nella console Cloud Run. I limiti di spesa applicati vengono reimpostati all'inizio di ogni mese, il primo giorno del ciclo di fatturazione successivo, sbloccando i workload e impostando l'importo della spesa su zero. Se superi il limite di spesa e vuoi riprendere le operazioni prima della reimpostazione mensile, regola o rimuovi manualmente il limite nella pagina Panoramica della console Cloud Run.

Come scegliere l'impostazione di fatturazione appropriata

La scelta dell'impostazione di fatturazione appropriata per il tuo caso d'uso dipende da diversi fattori, come i pattern di traffico, l'esecuzione in background e il costo, ognuno dei quali è descritto nelle sezioni seguenti.

Considerazioni sui pattern di traffico

  • La fatturazione basata sulle richieste è consigliata quando il traffico in entrata è sporadico, improvviso o con picchi.
  • La fatturazione basata sulle istanze è consigliata quando il traffico in entrata è costante e varia lentamente.

Considerazioni sull'esecuzione in background

Selezionando la fatturazione basata sulle istanze, la CPU viene allocata anche al di fuori dell'elaborazione delle richieste, consentendoti di eseguire attività in background di breve durata e altre operazioni di elaborazione asincrona dopo la restituzione delle risposte. Ad esempio:

  • Utilizzo di agenti di monitoraggio come OpenTelemetry che potrebbero presupporre di poter essere eseguiti in background.
  • Utilizzo delle goroutine di Go, della modalità asincrona di Node.js, dei thread di Java e delle coroutine di Kotlin.
  • Utilizzo di framework di applicazioni che si basano su funzionalità di pianificazione o di background integrate.

Le istanze inattive, incluse quelle mantenute in uso utilizzando il numero minimo di istanze, possono essere arrestate in qualsiasi momento. Se devi completare le attività in sospeso prima che il container venga terminato, puoi intercettare SIGTERM per concedere a un'istanza un periodo di tolleranza di 10 secondi prima che venga arrestata.

Considerazioni sui costi

Se utilizzi la fatturazione basata sulle richieste, la fatturazione basata sulle istanze può essere più economica se:

  • Il tuo servizio Cloud Run sta elaborando un numero elevato di richieste attuali a una frequenza piuttosto costante.
  • Non vedi molte istanze "inattive" quando esamini la metrica del conteggio delle istanze.

Considerazioni sulla scalabilità automatica

Per impostazione predefinita, Cloud Run esegue la scalabilità automatica del numero di istanze container.

Per un servizio impostato sulla fatturazione basata sulle richieste, Cloud Run scala automaticamente il numero di istanze in base all'utilizzo della CPU solo durante l'elaborazione delle richieste.

Per un servizio impostato sulla fatturazione basata sulle istanze, Cloud Run scala automaticamente il numero di istanze in base all'utilizzo della CPU per l'intero ciclo di vita dell'istanza container, tranne quando scala da e verso zero, dove utilizza solo le richieste.

Consulta la sezione sulla scalabilità manuale per ulteriori considerazioni se utilizzi la scalabilità manuale anziché la funzionalità di scalabilità automatica di Cloud Run.

Considerazioni sulla fatturazione basata sulle istanze

Anche se l'impostazione di fatturazione è impostata su Fatturazione basata sulle istanze, la scalabilità automatica di Cloud Run è comunque attiva e potrebbe terminare le istanze se non sono necessarie per gestire il traffico in entrata o l'utilizzo attuale della CPU al di fuori delle richieste. Un'istanza non rimarrà mai inattiva per più di 15 minuti dopo l'elaborazione di una richiesta, a meno che non venga mantenuta attiva utilizzando il numero minimo di istanze.

La combinazione della fatturazione basata sulle istanze con un numero di istanze minime comporta l'esecuzione di un numero di istanze con accesso completo alle risorse della CPU, consentendo casi d'uso di elaborazione in background. Quando utilizzi questo pattern, Cloud Run applica la scalabilità automatica delle istanze anche se un servizio utilizza la CPU al di fuori di qualsiasi richiesta.

Se utilizzi i probe dei controlli di integrità, devi utilizzare la fatturazione basata sulle istanze per ogni probe. Per i dettagli sulla fatturazione, consulta Probe di controllo di integrità dei container.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment di servizi Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Se esegui il deployment di un servizio o di una funzione dal codice sorgente, devi anche disporre di ruoli aggiuntivi concessi al tuo progetto e al account di servizio Cloud Build.

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo servizio Cloud Run interagisce con le APICloud de Confiance , come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Imposta e aggiorna la fatturazione

Qualsiasi modifica alla configurazione porta alla creazione di una nuova revisione. Anche le revisioni successive riceveranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.

Se selezioni la fatturazione basata sulle istanze, devi specificare almeno 512 MiB di memoria.

Puoi modificare l'impostazione di fatturazione utilizzando la console Cloud de Confiance , gcloud CLI o un file YAML quando crei un nuovo servizio o esegui il deployment di una nuova revisione:

Console

  1. Nella console Cloud de Confiance by S3NS , vai a Cloud Run:

    Vai a Cloud Run

  2. Seleziona Servizi dal menu di navigazione di Cloud Run e fai clic su Esegui il deployment del container per configurare un nuovo servizio. Se stai configurando un servizio esistente, fai clic sul servizio.

  3. Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio.

  4. Se stai configurando un servizio esistente, fai clic sulla scheda Scalabilità.

  5. In Fatturazione, seleziona Basata sulle richieste per addebitare le istanze solo durante l'elaborazione delle richieste oppure seleziona Basata sulle istanze per addebitare le istanze per l'intera durata delle istanze.

  6. Fai clic su Crea per un nuovo servizio. Fai clic su Visualizza differenze e fai di nuovo il deployment, quindi su Esegui il deployment delle modifiche per un servizio esistente.

gcloud

Puoi aggiornare l'impostazione di fatturazione. Per impostare la fatturazione basata su istanze per un determinato servizio:

gcloud run services update SERVICE --no-cpu-throttling 

Sostituisci SERVICE con il nome del servizio.

Per impostare la fatturazione basata sulle richieste:

gcloud run services update SERVICE --cpu-throttling 

Puoi anche configurare l'impostazione di fatturazione durante il deployment. Per impostare la fatturazione in base alle istanze:

gcloud run deploy --image IMAGE_URL --no-cpu-throttling

Per impostare la fatturazione basata sulle richieste:

gcloud run deploy --image IMAGE_URL --cpu-throttling

Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.

YAML

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aggiorna l'attributo cpu:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/cpu-throttling: 'BOOLEAN'
          name: REVISION

    Sostituisci quanto segue:

    • SERVICE: il nome del tuo servizio Cloud Run
    • BOOLEAN: true per impostare la fatturazione basata sulle richieste o false per impostare la fatturazione basata sulle istanze.
    • REVISION: un nuovo nome della revisione o eliminalo (se presente). Se fornisci un nuovo nome per la revisione, questo deve soddisfare i seguenti criteri:
      • Inizia con SERVICE-
      • Contiene solo lettere minuscole, numeri e -
      • Non termina con -
      • Non supera i 63 caratteri
  3. Crea o aggiorna il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

    Il comando gcloud run services replace utilizza per impostazione predefinita il file service.yaml, se presente.

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Aggiungi quanto segue a una risorsa google_cloud_run_v2_service nella configurazione Terraform:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-cpu-allocation"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
      resources {
        # If true, garbage-collect CPU when once a request finishes
        cpu_idle = false
      }
    }
  }
}

Visualizza le impostazioni di fatturazione

Per visualizzare le impostazioni di fatturazione attuali per il tuo servizio Cloud Run:

Console

  1. Nella console Cloud de Confiance by S3NS , vai alla pagina Servizi di Cloud Run:

    Vai a Cloud Run

  2. Fai clic sul servizio per aprire la pagina Dettagli servizio.

  3. Fai clic sulla scheda Scalabilità per trovare l'impostazione Fatturazione.

gcloud

  1. Esegui questo comando per visualizzare la configurazione di fatturazione:

    gcloud run services describe SERVICE --format=yaml
  2. Nell'output YAML, individua l'impostazione run.googleapis.com/cpu-throttling. Un valore pari a false indica la fatturazione basata su istanze, mentre se questa impostazione non è presente, indica la fatturazione basata su richieste.