Indholdsfortegnelse[Skjule][At vise]
Infracost er vigtig for DevOps, SRE og udviklere, der ønsker at estimere cloudomkostninger for infrastruktur-som-kode-projekter såsom Terraform. Med Infracost kan du hurtigt se en omkostningsfordeling, mens du sammenligner forskellige muligheder, hvilket er med til at føre til bedre indsigt før en stor beslutning.
Hvordan virker Infracost?
Infracost kan tjekke over 3 millioner priser ved at scanne din Terraform-kode, og det producerer et enkelt og letlæseligt omkostningsestimat, før du starter ressourcer.
Du kan også bruge Infracost til at vide, hvilke linjer kode der har den største omkostningspåvirkning, da det kortlægger omkostninger til ressourcer i dine pull-anmodninger. Ved at integrere Infracost i din CI/CD kan du samarbejde med dit team og muliggøre diskussioner om virkningen af ændringer i din eksisterende arbejdsgang.
Infracost arbejder gennem sin Cloud Pricing API-backend-tjeneste, og med CLI-værktøjet kan du parse en Terraform-plan i JSON-format. API'et krydsreferencer de individuelle omkostninger for hver cloud-ressource, der er i brug, såvel som deres relaterede omkostningsparametre baseret på cloud-udbyderen.
Programmet kræver ingen legitimationsoplysninger for at fungere, og det foretager ingen ændringer til Terraform eller de analyserede cloud-ressourcer. Ved at bruge antallet af Terraform-ressourcetyper sikrer API'et, at der tages højde for nye ressourcer.
Der er to hovedmåder, som Infracost viser fordelingen af omkostninger på:
A) Fuldstændig fordeling af omkostninger
B) Forskellen mellem månedlige omkostninger mellem nuværende og planlagte tilstand
Kom godt i gang med Infracost (trin-for-trin)
Følg denne trin-for-trin guide for at installere og begynde at bruge Infracost:
1. Installer Infracost
Det første skridt til at komme i gang er at installere Infracost, men det skal du først allerede have terraform installeret.
Her er et kig på de forskellige versioner af Infracost:
macOS Homebrew:
bryg installation infracost
infracost –version # Bør vise v0.9.7
macOS manual:
# Downloader CLI baseret på dit OS/arch og sætter det i /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Linux:
# Downloader CLI baseret på dit OS/arch og sætter 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_trin_på_how_to_get_this \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/code/ infracost/infracost opdeling –sti /code/
# Tilføj andre påkrævede flag/envs til Infracost eller Terraform
# For eksempel kan disse være nødvendige, hvis du bruger AWS antage-rolle:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Download og pakk ud seneste udgivelse. Kør det fra kommandoprompten eller Powershell vha .\infracost.exe --no-color
sammen med andre nødvendige kommandoer/flag (farveoutput har en fejl, vi skal rette på Windows). Du bør også flytte exe-filen til en mappe, der er i din PATH
miljøvariabel, f.eks C:\Windows
.
2. Få en API-nøgle
Det næste trin er at registrere sig for en gratis API-nøgle, som CLI'en bruger til at forespørge Cloud Pricing API til opgaver som at få priser for f.eks. typer.
Alle operativsystemer:
infraomkostningsregister
Nøglen er gemt i ~/.config/infracost/credentials.yml
.
3. Kør Infracost
Nu er du klar til at køre Infracost, som ikke foretager ændringer i din Terraform-tilstand eller cloud-ressourcer. Du kan køre det med det medfølgende Terraform-projekt for at teste det.
Alle operativsystemer:
git-klon https://github.com/infracost/example-terraform.git
cd eksempel-terraform/sample1
# Spil med main.tf og kør igen for at sammenligne omkostninger
opdeling af infraomkostninger – sti .
# Vis forskel på månedlige omkostninger, rediger yml-filen og kør igen for at sammenligne omkostninger
infracost diff –sti . –sync-usage-file –usage-file infracost-usage.yml
4. Tilføj til CI/CD
Du kan nu bruge Infracost's CI/CD integrationer for automatisk at tilføje pull-anmodningskommentarer, som viser dig omkostningsestimatforskelle. Dette vil også give dig et sikkerhedsnet, der gør det muligt for teams at diskutere omkostningerne ved ændringer som en del af deres arbejdsgang.
Brug
infracost
CLI har følgende hovedkommandoer:
breakdown
: Vis fuldstændig fordeling af omkostningerdiff
: Vis forskel på månedlige omkostninger mellem nuværende og planlagt tilstand
Brug en Infracost-konfigurationsfil, hvis din repo har flere Terraform-projekter eller arbejdsområder. Deres resultater vil blive kombineret til den samme opdeling eller diff output.
Avanceret brug
Infracost har også forskellige avancerede brugsmetoder, som kan bruges udover de almindelige brugsmetoder. Disse avancerede metoder kan også bruges via en Infracost-konfigurationsfil.
Terraform planfil
Infracost kan køres mod en Terraform plan fil, hvilket betyder, at du allerede har kørt Terraform init.
Infracost kører bare Terraformshow
i dette tilfælde, hvilket betyder, at det ikke kræver cloud-legitimationsoplysninger eller --terraform-plan-flags
der skal indstilles.
cd-sti/til/kode
terraform init
terraform plan -out tfplan.binær
opdeling af infraomkostninger –sti tfplan.binær
infracost diff –path tfplan.binary
Terraform stat
Hvis du vil se omkostningsfordelingen af den nuværende Terraform-tilstand, bør du kende infracost breakdown
kommandoen har en --terraform-use-state
flag, hvilket ville vise sig nyttigt i dette tilfælde. Du skal allerede køre Terraform apply
, så Infracost kører bare Terraform show
, som ikke kræver cloud-legitimationsoplysninger eller --terraform-plan-flags
der skal indstilles.
nedbrydning af infraomkostninger –stieksempler/terraform –terraform-brugstilstand
Terraform State JSON-fil
Du kan køre infracost breakdown
mod en Terraform state JSON-fil. Dette ville være [JSON-outputformat] for staten i stedet for den interne JSON-repræsentation. Den skal genereres ved at køre terraform show -json
inde i et Terraform-projekt, og det er især nyttigt, hvis du vil se omkostningsfordelingen af den nuværende Terraform-tilstand. I dette tilfælde betyder det, at du allerede kører Terraform apply
, hvilket betyder ingen cloud-legitimationsoplysninger eller --terraform-plan-flags
er krævet.
Hvilke skyer og ressourcer understøttes?
Infracost understøtter mere end 200 Terraform-ressourcer på tværs af AWS, Google og Azure, mens andre IaC-værktøjer f.eks Pulumi , Skydannelse indgår i køreplanen. Understøttelse af nye ressourcer tilføjes konstant, så det er vigtigt at tjekke repoen for udgivelser.
Konklusion
Infracost er en hjælp værktøj til udviklere, DevOps, SRE og andre, der ønsker hurtigt at se omkostningsfordelingen og sammenligne forskellige muligheder på forhånd. Det er også et godt valg, hvis du ønsker at integrere det med CI og/eller har brug for support til AWS og Google Cloud. Ønsker du at skabe et bedre samarbejde mellem dit team, kan Infracost også hjælpe i den forbindelse. Alle disse funktioner gør det til et værktøj, som du kraftigt bør overveje at implementere til skyomkostningsestimater for Terraform.
Giv en kommentar