Table of Contents[Hide][Show]
Infracost yog ib qho tseem ceeb rau DevOps, SRE, thiab cov neeg tsim khoom tab tom nrhiav kev kwv yees huab nqi rau kev tsim kho vaj tse-raws li txoj cai xws li Terraform. Nrog Infracost, koj tuaj yeem pom sai sai ntawm tus nqi tawg thaum sib piv cov kev xaiv sib txawv, uas yuav pab ua kom muaj kev nkag siab zoo dua ua ntej kev txiav txim siab loj.
Infracost ua haujlwm li cas?
Infracost tuaj yeem tshawb xyuas ntau dua 3 lab tus nqi los ntawm kev txheeb xyuas koj tus lej Terraform, thiab nws tsim cov nqi kwv yees yooj yim thiab yooj yim-rau-nyeem ntawv ua ntej koj tso cov peev txheej.
Koj tseem tuaj yeem siv Infracost kom paub cov kab ntawv twg muaj feem cuam tshuam rau tus nqi loj tshaj plaws txij li nws daim duab qhia tus nqi rau cov peev txheej hauv koj qhov kev thov rub. Los ntawm kev sib koom ua ke Infracost rau hauv koj CI / CD, koj tuaj yeem koom tes nrog koj pab neeg thiab pab kom muaj kev sib tham txog qhov cuam tshuam ntawm kev hloov pauv hauv koj cov haujlwm uas twb muaj lawm.
Infracost ua haujlwm los ntawm nws qhov kev pabcuam Cloud Pricing API backend, thiab nrog CLI cov cuab yeej, koj tuaj yeem txheeb xyuas Terraform txoj kev npaj hauv JSON hom. API cross-references tus nqi ntawm txhua qhov kev siv huab hauv kev siv, nrog rau lawv cov nqi tsis sib xws raws li tus neeg muab kev pabcuam huab.
Qhov kev zov me nyuam tsis tas yuav muaj ntawv pov thawj los ua haujlwm, thiab nws tsis hloov pauv rau Terraform lossis cov kev tshawb fawb huab. Los ntawm kev siv suav ntawm Terraform cov peev txheej, API ua kom paub tseeb tias cov peev txheej tshiab raug suav nrog.
Muaj ob txoj hauv kev tseem ceeb Infracost qhia txog kev tawg ntawm cov nqi:
A) Tag Nrho Cov Nqi Them Nqi
B) Qhov sib txawv ntawm cov nqi them txhua hli nruab nrab ntawm lub xeev tam sim no thiab lub xeev tau npaj tseg
Pib Nrog Infracost (Step-by-Step)
Ua raws li cov lus qhia ib kauj ruam dhau los rau nruab thiab pib siv Infracost:
1. Nruab Infracost
Thawj kauj ruam los pib yog rau nruab Infracost, tab sis koj yuav tsum xub muaj Terraform ntsia.
Nov yog saib ntawm qhov sib txawv ntawm Infracost:
macOS Homebrew:
brew nruab infracost
infracost –version # Yuav tsum qhia v0.9.7
macOS manual:
# Rub tawm CLI raws li koj lub OS/arch thiab muab tso rau hauv /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Linux:
# Rub tawm CLI raws li koj lub OS/arch thiab muab tso rau hauv /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Docker:
docker rub infracost/infracost
docker run –rm \
-e INFRACOST_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/:/code/ infracost/infracost breakdown –path /code/
# Ntxiv lwm qhov xav tau chij / envs rau Infracost lossis Terraform
# Piv txwv li, cov no yuav xav tau yog tias koj siv AWS assume-role:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Qhov rai:
Download tau thiab unzip lub kawg tso. Khiav nws los ntawm Command Prompt lossis Powershell siv .\infracost.exe --no-color
nrog rau lwm qhov yuav tsum tau hais kom ua / chij (xim tso zis muaj kab mob peb yuav tsum tau kho ntawm Windows). Koj kuj yuav tsum txav cov ntaub ntawv exe mus rau ib daim nplaub tshev uas nyob hauv koj PATH
ib puag ncig hloov, Xws li C:\Windows
.
2. Tau txais API Key
Cov kauj ruam tom ntej yog mus rau npe rau tus yuam sij API pub dawb, uas CLI siv los nug Cloud Pricing API rau cov haujlwm xws li tau txais nqi rau hom piv txwv.
Txhua Qhov Chaw Ua Haujlwm:
sau npe infracost
Tus yuam sij raug cawm hauv ~/.config/infracost/credentials.yml
.
3. Khiav Infracost
Tam sim no koj npaj txhij los khiav Infracost, uas tsis hloov pauv rau koj lub xeev Terraform lossis huab huab. Koj tuaj yeem khiav nws nrog qhov muab Terraform project los kuaj nws.
Txhua Qhov Chaw Ua Haujlwm:
git clone https://github.com/infracost/example-terraform.git
cd piv txwv-terraform/sample1
# Ua si nrog main.tf thiab rov ua dua los sib piv cov nqi
infracost kev puas tsuaj - txoj kev.
# Qhia qhov txawv ntawm cov nqi txhua hli, kho cov ntaub ntawv yml thiab rov ua dua los sib piv cov nqi
infracost diff - txoj kev. -sync-usage-file -usage-file infracost-usage.yml
4. Ntxiv rau CI/CD
Tam sim no koj tuaj yeem siv Infracost's CI/CD kev koom ua ke kom cia li ntxiv rub cov lus thov, uas qhia koj tus nqi kwv yees qhov sib txawv. Qhov no tseem yuav muab rau koj nrog kev ruaj ntseg network, ua rau pab pawg sib tham txog tus nqi cuam tshuam ntawm kev hloov pauv raws li ib feem ntawm lawv cov haujlwm.
pab
cov infracost
CLI muaj cov lus txib hauv qab no:
breakdown
: qhia tag nrho cov nqi themdiff
: qhia qhov sib txawv ntawm cov nqi txhua hli nruab nrab ntawm lub xeev tam sim no thiab cov phiaj xwm
Siv cov ntaub ntawv Infracost config yog tias koj qhov repo muaj ntau qhov haujlwm Terraform lossis chaw ua haujlwm. Lawv cov txiaj ntsig yuav muab sib xyaw ua ke rau hauv tib qho kev sib cais lossis qhov sib txawv.
Kev Siv Tau Zoo
Infracost kuj muaj ntau yam kev siv qib siab uas tuaj yeem siv ntxiv rau cov kev siv tsis tu ncua. Cov txheej txheem siab heev no tuaj yeem siv los ntawm Infracost config file thiab.
Terraform Plan File
Infracost tuaj yeem khiav tawm tsam Terraform cov ntaub ntawv npaj, uas txhais tau hais tias koj twb tau khiav Terraform init.
Infracost tsuas yog khiav Terraformshow
nyob rau hauv cov ntaub ntawv no, lub ntsiab lus nws tsis xav tau huab credentials los yog --terraform-plan-flags
yuav tsum teeb.
cd path/to/code
terraform ib
terraform plan -out tfplan.binary
infracost kev puas tsuaj -path tfplan.binary
infracost diff –path tfplan.binary
Terraform Xeev
Yog tias koj xav pom tus nqi tawg ntawm lub xeev Terraform tam sim no, koj yuav tsum paub qhov infracost breakdown
command muaj a --terraform-use-state
chij, uas yuav ua pov thawj muaj txiaj ntsig hauv qhov no. Koj yuav tsum tau khiav Terraform apply
, yog li Infracost cia li khiav Terraform show
, uas tsis xav tau huab credentials los yog --terraform-plan-flags
yuav tsum teeb.
infracost breakdown –path piv txwv/terraform –terraform-siv-state
Terraform State JSON Cov Ntaub Ntawv
Koj tuaj yeem khiav ntawm infracost breakdown
tawm tsam Terraform xeev JSON cov ntaub ntawv. Qhov no yuav yog [JSON tso zis hom] ntawm lub xeev es tsis txhob ntawm sab hauv JSON sawv cev. Nws yuav tsum tau tsim los ntawm kev khiav terraform show -json
nyob rau hauv ib qhov project Terraform, thiab nws yog tshwj xeeb tshaj yog muaj txiaj ntsig yog tias koj xav pom tus nqi tawg ntawm lub xeev Terraform tam sim no. Hauv qhov no, nws txhais tau tias koj twb khiav Terraform apply
, txhais tsis muaj huab credentials los yog --terraform-plan-flags
yog yuav tsum tau.
Cov huab thiab cov peev txheej twg tau txais kev txhawb nqa?
Infracost txhawb ntau dua 200 Terraform peev txheej thoob plaws AWS, Google, thiab Azure, thaum lwm yam IaC cov cuab yeej nyiam Pulumi thiab Cloudformation muaj nyob rau hauv daim ntawv qhia. Kev them nyiaj yug rau cov peev txheej tshiab tau ntxiv tas li, yog li nws yog ib qho tseem ceeb los xyuas cov repo rau kev tso tawm.
xaus
Infracost yog qhov pab tau cuab yeej rau developers, DevOps, SRE, thiab lwm tus tab tom nrhiav kom pom sai sai rau cov nqi tawg thiab sib piv cov kev xaiv sib txawv ua ntej. Nws kuj yog ib qho kev xaiv zoo yog tias koj tab tom nrhiav kev koom ua ke nrog CI thiab / lossis xav tau kev txhawb nqa rau AWS thiab Google Cloud. Yog tias koj xav tsim kev sib koom tes zoo ntawm koj pab neeg, Infracost kuj tseem tuaj yeem pab tau qhov ntawd. Tag nrho cov yam ntxwv no ua rau nws yog ib qho cuab yeej uas koj yuav tsum xav txog kev siv rau huab cua kev kwv yees rau Terraform.
Sau ntawv cia Ncua