Innholdsfortegnelse[Gjemme seg][Forestilling]
Infracost er viktig for DevOps, SRE og utviklere som ønsker å estimere skykostnader for infrastruktur-som-kode-prosjekter som Terraform. Med Infracost kan du raskt se en kostnadsfordeling mens du sammenligner ulike alternativer, noe som bidrar til bedre innsikt før en stor beslutning.
Hvordan fungerer Infracost?
Infracost kan sjekke over 3 millioner priser ved å skanne Terraform-koden din, og den produserer et enkelt og lettlest kostnadsestimat før du lanserer ressurser.
Du kan også bruke Infracost for å finne ut hvilke linjer med kode som har størst kostnadspåvirkning siden det kartlegger kostnadene til ressurser i pull-forespørslene dine. Ved å integrere Infracost i din CI/CD kan du samarbeide med teamet ditt og muliggjøre diskusjoner om virkningen av endringer i din eksisterende arbeidsflyt.
Infracost fungerer gjennom sin Cloud Pricing API backend-tjeneste, og med CLI-verktøyet kan du analysere en Terraform-plan i JSON-format. API-en kryssreferanser den individuelle kostnaden for hver skyressurs som er i bruk, så vel som deres relaterte kostnadsparametere basert på skyleverandøren.
Programmet krever ingen legitimasjon for å fungere, og det gjør ingen endringer i Terraform eller de analyserte skyressursene. Ved å bruke tellingen av Terraform-ressurstyper, sikrer API-en at nye ressurser blir regnskapsført.
Det er to hovedmåter Infracost viser kostnadsfordelingen på:
A) Fullstendig fordeling av kostnader
B) Forskjellen mellom månedlige kostnader mellom nåværende og planlagt tilstand
Komme i gang med Infracost (trinn-for-trinn)
Følg denne trinnvise veiledningen for å installere og begynne å bruke Infracost:
1. Installer Infracost
Det første trinnet for å komme i gang er å installere Infracost, men du må først allerede ha det terra installert.
Her er en titt på de forskjellige versjonene av Infracost:
macOS Homebrew:
brew install infracost
infracost –versjon # Bør vise v0.9.7
macOS manual:
# Laster ned CLI basert på operativsystemet/arch og legger det i /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Linux:
# Laster ned CLI basert på operativsystemet/arch og legger det i /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Docker:
docker pull infracost/infracost
docker run –rm \
-e INFRACOST_API_KEY=se_følgende_trinn_på_hvordan_å_få_dette \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/code/ infracost/infracost sammenbrudd –bane /code/
# Legg til andre nødvendige flagg/envs for Infracost eller Terraform
# For eksempel kan disse være nødvendige hvis du bruker AWS anta-rolle:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Last ned og pakke ut siste utgivelsen. Kjør den fra ledeteksten eller Powershell ved hjelp av .\infracost.exe --no-color
sammen med andre nødvendige kommandoer/flagg (fargeutdata har en feil vi må fikse på Windows). Du bør også flytte exe-filen til en mappe som er i din PATH
miljøvariabel, f.eks C:\Windows
.
2. Få en API-nøkkel
Det neste trinnet er å registrere deg for en gratis API-nøkkel, som CLI bruker til å spørre Cloud Pricing API for oppgaver som å få priser for for eksempel typer.
Alle operativsystemer:
infrakostnadsregister
Nøkkelen er lagret i ~/.config/infracost/credentials.yml
.
3. Kjør Infracost
Nå er du klar til å kjøre Infracost, som ikke gjør noen endringer i Terraform-tilstanden eller skyressurser. Du kan kjøre det med det medfølgende Terraform-prosjektet for å teste det ut.
Alle operativsystemer:
git-klone https://github.com/infracost/example-terraform.git
cd eksempel-terraform/sample1
# Spill med main.tf og kjør på nytt for å sammenligne kostnader
infrakostnadssammenbrudd – bane .
# Vis diff av månedlige kostnader, rediger yml-filen og kjør på nytt for å sammenligne kostnadene
infracost diff –bane . –sync-usage-file –usage-file infracost-usage.yml
4. Legg til CI/CD
Du kan nå bruke Infracost's CI/CD-integrasjoner for automatisk å legge til pull request-kommentarer, som viser deg kostnadsestimatforskjeller. Dette vil også gi deg et sikkerhetsnett som gjør det mulig for team å diskutere kostnadseffekten av endringer som en del av deres arbeidsflyt.
bruk
De infracost
CLI har følgende hovedkommandoer:
breakdown
: Vis fullstendig oversikt over kostnaderdiff
: vis diff av månedlige kostnader mellom nåværende og planlagt tilstand
Bruk en Infracost-konfigurasjonsfil hvis repoen din har flere Terraform-prosjekter eller arbeidsområder. Resultatene deres vil bli kombinert til samme sammenbrudd eller diff-utgang.
Avansert bruk
Infracost har også ulike avanserte bruksmetoder som kan brukes i tillegg til de vanlige bruksmetodene. Disse avanserte metodene kan også brukes via en Infracost-konfigurasjonsfil.
Terraform planfil
Infracost kan kjøres mot en Terraform planfil, noe som betyr at du allerede har kjørt Terraform init.
Infracost kjører bare Terraformshow
i dette tilfellet, noe som betyr at det ikke krever skylegitimasjon eller --terraform-plan-flags
skal settes.
cd-bane/til/kode
terraform init
terraform plan -out tfplan.binary
infrakostnadssammenbrudd – bane tfplan.binary
infracost diff –path tfplan.binary
Terraform State
Hvis du vil se kostnadsfordelingen til den nåværende Terraform-tilstanden, bør du kjenne til infracost breakdown
kommandoen har en --terraform-use-state
flagg, noe som vil være nyttig i dette tilfellet. Du må allerede kjøre Terraform apply
, så Infracost kjører bare Terraform show
, som ikke krever skylegitimasjon eller --terraform-plan-flags
skal settes.
infrakostnadssammenbrudd – stieksempler/terraform –terraform-brukstilstand
Terraform State JSON-fil
Du kan kjøre infracost breakdown
mot en Terraform state JSON-fil. Dette vil være [JSON-utdataformatet] til staten i stedet for den interne JSON-representasjonen. Den må genereres ved å kjøre terraform show -json
inne i et Terraform-prosjekt, og det er spesielt nyttig hvis du vil se kostnadsfordelingen til den nåværende Terraform-tilstanden. I dette tilfellet betyr det at du allerede kjører Terraform apply
, som betyr ingen sky-legitimasjon eller --terraform-plan-flags
er påkrevd.
Hvilke skyer og ressurser støttes?
Infracost støtter mer enn 200 Terraform-ressurser på tvers av AWS, Google og Azure, mens andre IaC-verktøy som Pulumi og Skyformasjon er inkludert i veikartet. Støtte for nye ressurser legges stadig til, så det er viktig å sjekke repoen for utgivelser.
konklusjonen
Infracost er nyttig verktøy for utviklere, DevOps, SRE og andre som ønsker å raskt se kostnadsfordelingen og sammenligne ulike alternativer på forhånd. Det er også et godt valg hvis du ønsker å integrere den med CI og/eller trenger støtte for AWS og Google Cloud. Ønsker du å skape bedre samarbeid mellom teamet ditt kan Infracost også hjelpe i den forbindelse. Alle disse funksjonene gjør det til et verktøy du bør vurdere å implementere for skykostnadsestimater for Terraform.
Legg igjen en kommentar