Talaan ng nilalaman[Tago][Ipakita]
Mahalaga ang Infracost para sa DevOps, SRE, at mga developer na naghahanap upang tantyahin ang mga gastos sa cloud para sa mga proyektong imprastraktura-bilang-code gaya ng Terraform. Sa Infracost, mabilis kang makakakita ng breakdown ng gastos habang inihahambing ang iba't ibang opsyon, na tumutulong na humantong sa mas magagandang insight bago ang isang malaking desisyon.
Paano Gumagana ang Infracost?
Maaaring suriin ng Infracost ang mahigit 3 milyong presyo sa pamamagitan ng pag-scan sa iyong Terraform code, at gumagawa ito ng simple at madaling basahin na pagtatantya ng gastos bago ka maglunsad ng mga mapagkukunan.
Maaari mo ring gamitin ang Infracost para malaman kung aling mga linya ng code ang may pinakamalaking epekto sa gastos dahil ito ay nagmamapa ng gastos sa mga mapagkukunan sa iyong mga kahilingan sa paghila. Sa pamamagitan ng pagsasama ng Infracost sa iyong CI/CD, maaari kang makipagtulungan sa iyong koponan at paganahin ang mga talakayan sa epekto ng mga pagbabago sa iyong kasalukuyang daloy ng trabaho.
Gumagana ang Infracost sa pamamagitan ng backend na serbisyo ng Cloud Pricing API nito, at gamit ang CLI tool, maaari kang mag-parse ng Terraform plan sa JSON na format. Nire-cross-reference ng API ang indibidwal na gastos ng bawat cloud resource na ginagamit, pati na rin ang mga nauugnay na parameter ng gastos nito batay sa cloud provider.
Ang programa ay hindi nangangailangan ng anumang mga kredensyal upang gumana, at hindi ito gumagawa ng anumang mga pagbabago sa Terraform o sa nasuri na mga mapagkukunan ng ulap. Sa pamamagitan ng paggamit sa bilang ng mga uri ng mapagkukunan ng Terraform, tinitiyak ng API na ang mga bagong mapagkukunan ay isinasaalang-alang.
Mayroong dalawang pangunahing paraan na ipinapakita ng Infracost ang breakdown ng mga gastos:
A) Buong Paghahati-hati ng mga Gastos
B) Pagkakaiba ng Buwanang Gastos sa Pagitan ng Kasalukuyan at Planong Estado
Pagsisimula Sa Infracost (Step-by-Step)
Sundin ang sunud-sunod na gabay na ito upang i-install at simulan ang paggamit ng Infracost:
1. I-install ang Infracost
Ang unang hakbang sa pagsisimula ay ang pag-install ng Infracost, ngunit dapat ay mayroon ka na Terraform -install.
Narito ang isang pagtingin sa iba't ibang bersyon ng Infracost:
macOS Homebrew:
brew install infracost
infracost –bersyon # Dapat ipakita ang v0.9.7
manual ng macOS:
# Nagda-download ng CLI batay sa iyong OS/arch at inilalagay ito sa /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
Linux:
# Nagda-download ng CLI batay sa iyong OS/arch at inilalagay ito sa /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=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/
# Magdagdag ng iba pang kinakailangang mga flag/env para sa Infracost o Terraform
# Halimbawa, maaaring kailanganin ang mga ito kung gumagamit ka ng AWS assume-role:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
I-download at i-unzip ang pinakabagong release. Patakbuhin ito mula sa Command Prompt o Powershell gamit .\infracost.exe --no-color
kasama ng iba pang kinakailangang command/flag (ang output ng kulay ay may bug na kailangan nating ayusin sa Windows). Dapat mo ring ilipat ang exe file sa isang folder na nasa iyong PATH
variable ng kapaligiran, halimbawa C:\Windows
.
2. Kumuha ng API Key
Ang susunod na hakbang ay ang magparehistro para sa isang libreng API key, na ginagamit ng CLI para i-query ang Cloud Pricing API para sa mga gawain tulad ng pagkuha ng mga presyo para sa mga uri ng instance.
Lahat ng Operating System:
rehistro ng infracost
Ang susi ay naka-save sa ~/.config/infracost/credentials.yml
.
3. Patakbuhin ang Infracost
Ngayon ay handa ka nang magpatakbo ng Infracost, na hindi gumagawa ng anumang mga pagbabago sa iyong Terraform state o cloud resources. Maaari mo itong patakbuhin gamit ang ibinigay na proyekto ng Terraform upang subukan ito.
Lahat ng Operating System:
git clone https://github.com/infracost/example-terraform.git
halimbawa ng cd-terraform/sample1
# Maglaro sa main.tf at muling patakbuhin upang ihambing ang mga gastos
infracost breakdown –path .
# Ipakita ang pagkakaiba ng buwanang gastos, i-edit ang yml file at muling patakbuhin upang ihambing ang mga gastos
infracost diff –path . –sync-usage-file –usage-file infracost-usage.yml
4. Idagdag sa CI/CD
Maaari mo na ngayong gamitin ang Infracost's Mga pagsasama ng CI/CD upang awtomatikong magdagdag ng mga komento ng pull request, na nagpapakita sa iyo ng mga pagkakaiba sa pagtatantya ng gastos. Bibigyan ka rin nito ng safetynet, na magbibigay-daan sa mga team na talakayin ang epekto sa gastos ng mga pagbabago bilang bahagi ng kanilang daloy ng trabaho.
Paggamit
Ang infracost
Ang CLI ay may mga sumusunod na pangunahing utos:
breakdown
: ipakita ang buong breakdown ng mga gastosdiff
: ipakita ang pagkakaiba ng buwanang gastos sa pagitan ng kasalukuyan at nakaplanong estado
Gumamit ng Infracost config file kung ang iyong repo ay maraming proyekto o workspace ng Terraform. Ang kanilang mga resulta ay pagsasamahin sa parehong breakdown o diff output.
Advanced na Paggamit
Ang Infracost ay mayroon ding iba't ibang mga advanced na paraan ng paggamit na maaaring magamit bilang karagdagan sa mga regular na paraan ng paggamit. Ang mga advanced na pamamaraan na ito ay magagamit din sa pamamagitan ng isang Infracost config file.
File ng Terraform Plan
Maaaring patakbuhin ang Infracost laban sa isang file ng plano ng Terraform, na nagpapahiwatig na pinatakbo mo na ang Terraform init.
Ang Infracost ay nagpapatakbo lang ng Terraformshow
sa kasong ito, ibig sabihin, hindi ito nangangailangan ng mga kredensyal sa ulap o --terraform-plan-flags
ihahanda.
cd path/to/code
terraform init
terraform plan -out tfplan.binary
infracost breakdown –path tfplan.binary
infracost diff –path tfplan.binary
Estado ng Terraform
Kung gusto mong makita ang breakdown ng gastos ng kasalukuyang estado ng Terraform, dapat mong malaman ang infracost breakdown
utos ay may a --terraform-use-state
flag, na magiging kapaki-pakinabang sa kasong ito. Dapat ay nagpatakbo ka na ng Terraform apply
, kaya pinapatakbo lang ng Infracost ang Terraform show
, na hindi nangangailangan ng mga kredensyal sa cloud o --terraform-plan-flags
ihahanda.
infracost breakdown –mga halimbawa ng landas/terraform –terraform-use-state
Terraform State JSON File
Maaari mong patakbuhin ang infracost breakdown
laban sa isang Terraform state JSON file. Ito ang magiging [JSON output format] ng estado sa halip na ang panloob na representasyon ng JSON. Dapat itong mabuo sa pamamagitan ng pagtakbo terraform show -json
sa loob ng isang proyekto ng Terraform, at ito ay lalong kapaki-pakinabang kung gusto mong makita ang breakdown ng gastos ng kasalukuyang estado ng Terraform. Sa kasong ito, ipinahihiwatig nito na nagpapatakbo ka na ng Terraform apply
, ibig sabihin walang cloud credentials o --terraform-plan-flags
ay kinakailangan.
Aling Mga Ulap at Mapagkukunan ang Sinusuportahan?
Sinusuportahan ng Infracost ang higit sa 200 mga mapagkukunan ng Terraform sa buong AWS, Google, at Azure, habang tulad ng iba pang mga tool ng IaC Pulumi at Cloudformation ay kasama sa roadmap. Ang suporta para sa mga bagong mapagkukunan ay patuloy na idinaragdag, kaya mahalagang suriin ang repo para sa mga paglabas.
Konklusyon
Ang infracost ay nakakatulong tool para sa mga developer, DevOps, SRE, at iba pa na naghahanap upang mabilis na makita ang breakdown ng gastos at ihambing ang iba't ibang opsyon sa harap. Ito rin ay isang mahusay na pagpipilian kung ikaw ay naghahanap upang isama ito sa CI at/o kailangan ng suporta para sa AWS at Google Cloud. Kung gusto mong lumikha ng mas mahusay na pakikipagtulungan sa pagitan ng iyong koponan, makakatulong din ang Infracost sa bagay na iyon. Ginagawa itong tool ng lahat ng feature na ito na dapat mong lubos na isaalang-alang ang pagpapatupad para sa mga pagtatantya ng gastos sa cloud para sa Terraform.
Mag-iwan ng Sagot