Sommario[Nascondere][Spettacolo]
Infracost è importante per DevOps, SRE e sviluppatori che desiderano stimare i costi del cloud per progetti di infrastruttura come codice come Terraform. Con Infracost, puoi visualizzare rapidamente una ripartizione dei costi confrontando diverse opzioni, il che aiuta a ottenere informazioni migliori prima di prendere una decisione importante.
Come funziona l'infracosto?
Infracost può controllare oltre 3 milioni di prezzi scansionando il tuo codice Terraform e produce una stima dei costi semplice e di facile lettura prima di avviare le risorse.
Puoi anche utilizzare Infracost per sapere quali righe di codice hanno il maggiore impatto sui costi poiché associa i costi alle risorse nelle tue richieste pull. Integrando Infracost nel tuo CI/CD, puoi collaborare con il tuo team e consentire discussioni sull'impatto delle modifiche nel flusso di lavoro esistente.
Infracost funziona tramite il suo servizio di backend API Cloud Pricing e, con lo strumento CLI, puoi analizzare un piano Terraform in formato JSON. L'API incrocia il costo individuale di ciascuna risorsa cloud in uso, nonché i relativi parametri di costo in base al provider cloud.
Il programma non richiede credenziali per funzionare e non apporta alcuna alterazione a Terraform o alle risorse cloud analizzate. Utilizzando il conteggio dei tipi di risorse Terraform, l'API garantisce che le nuove risorse vengano contabilizzate.
Ci sono due modi principali in cui Infracost mostra la ripartizione dei costi:
A) Ripartizione completa dei costi
B) Differenza dei costi mensili tra stato attuale e stato pianificato
Iniziare con Infracost (passo dopo passo)
Segui questa guida passo passo per installare e iniziare a utilizzare Infracost:
1. Installa Infracost
Il primo passo per iniziare è installare Infracost, ma devi averlo già fatto Terraform installato.
Ecco uno sguardo alle diverse versioni di Infracost:
homebrew macOS:
brew installa infracosto
infracost –version # Dovrebbe mostrare v0.9.7
Manuale di macOS:
# Scarica la CLI in base al tuo sistema operativo/arch e la inserisce in /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | SH
Linux:
# Scarica la CLI in base al tuo sistema operativo/arch e la inserisce in /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | SH
docker:
docker pull infracost/infracost
Docker esegui –rm \
-e INFRACOS_API_KEY=see_following_step_on_how_to_get_this \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/codice/ ripartizione infracosto/infracosto –percorso /codice/
# Aggiungi altri flag/ambienti richiesti per Infracost o Terraform
# Ad esempio, potrebbero essere necessari se stai utilizzando il ruolo di assunzione di AWS:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e REGIONE_AWS=$REGIONE_AWS \
Windows:
Scarica e decomprimi il ultima uscita. Eseguilo dal prompt dei comandi o da Powershell usando .\infracost.exe --no-color
insieme ad altri comandi/flag richiesti (l'output del colore ha un bug che dobbiamo correggere su Windows). Dovresti anche spostare il file exe in una cartella che si trova nel tuo PATH
variabile d'ambiente, per esempio C:\Windows
.
2. Ottieni una chiave API
Il passaggio successivo consiste nel registrarsi per una chiave API gratuita, che la CLI utilizza per interrogare l'API Cloud Pricing per attività come ottenere i prezzi per i tipi di istanza.
Tutti i sistemi operativi:
registro infracosti
La chiave è salvata ~/.config/infracost/credentials.yml
.
3. Esegui Infracost
Ora sei pronto per eseguire Infracost, che non apporta modifiche allo stato Terraform o alle risorse cloud. Puoi eseguirlo con il progetto Terraform fornito per testarlo.
Tutti i sistemi operativi:
clone di git https://github.com/infracost/example-terraform.git
cd esempio-terraform/campione1
# Gioca con main.tf ed esegui nuovamente per confrontare i costi
ripartizione infracosto –percorso .
# Mostra la differenza dei costi mensili, modifica il file yml e rieseguilo per confrontare i costi
infracost diff –percorso . –sync-usage-file –usage-file infracost-usage.yml
4. Aggiungere a CI/CD
Ora puoi usare Infracost Integrazioni CI/CD per aggiungere automaticamente commenti alla richiesta pull, che mostrano le differenze di stima dei costi. Questo ti fornirà anche una rete di sicurezza, che consentirà ai team di discutere l'impatto sui costi delle modifiche come parte del loro flusso di lavoro.
Impiego
I infracost
La CLI ha i seguenti comandi principali:
breakdown
: mostra la ripartizione completa dei costidiff
: mostra la differenza dei costi mensili tra lo stato attuale e quello pianificato
Usa un file di configurazione Infracost se il tuo repository ha più progetti o spazi di lavoro Terraform. I loro risultati verranno combinati nella stessa ripartizione o output differenziale.
Utilizzo avanzato
Infracost ha anche vari metodi di utilizzo avanzati che possono essere utilizzati in aggiunta ai normali metodi di utilizzo. Questi metodi avanzati possono essere utilizzati anche tramite un file di configurazione Infracost.
File del piano Terraform
Infracost può essere eseguito su un file del piano Terraform, il che implica che hai già eseguito Terraform init.
Infracost esegue solo Terraformshow
in questo caso, il che significa che non richiede credenziali cloud o --terraform-plan-flags
da impostare.
cd percorso/a/codice
terraform inizia
piano terraform -out tfplan.binary
ripartizione infracosto –percorso tfplan.binary
infracost diff –percorso tfplan.binary
Stato Terraforma
Se vuoi vedere la ripartizione dei costi dell'attuale stato Terraform, dovresti conoscere il infracost breakdown
il comando ha un --terraform-use-state
flag, che si rivelerebbe utile in questo caso. Devi già eseguire Terraform apply
, quindi Infracost esegue solo Terraform show
, che non richiede credenziali cloud o --terraform-plan-flags
da impostare.
scomposizione infracosto –esempi percorsi/terraforma –stato-uso-terraforma
File JSON dello stato Terraform
È possibile eseguire il infracost breakdown
contro un file JSON dello stato Terraform. Questo sarebbe il [formato di output JSON] dello stato invece della rappresentazione JSON interna. Deve essere generato eseguendo terraform show -json
all'interno di un progetto Terraform, ed è particolarmente utile se si desidera visualizzare la ripartizione dei costi dell'attuale stato Terraform. In questo caso, significa che hai già eseguito Terraform apply
, ovvero senza credenziali cloud o --terraform-plan-flags
sono necessarie.
Quali cloud e risorse sono supportati?
Infracost supporta più di 200 risorse Terraform su AWS, Google e Azure, mentre altri strumenti IaC come Pulumi ed Formazione nuvolosa sono inclusi nella tabella di marcia. Il supporto per nuove risorse viene costantemente aggiunto, quindi è importante controllare il repository per le versioni.
Conclusione
Infracost è un utile strumento per sviluppatori, DevOps, SRE e altri che desiderano vedere rapidamente la ripartizione dei costi e confrontare in anticipo diverse opzioni. È anche una buona scelta se stai cercando di integrarlo con CI e/o hai bisogno di supporto per AWS e Google Cloud. Se vuoi creare una migliore collaborazione tra il tuo team, Infracost può anche aiutarti in questo senso. Tutte queste funzionalità lo rendono uno strumento che dovresti considerare fortemente di implementare per le stime dei costi del cloud per Terraform.
Lascia un Commento