Mundarija[Yashirish][Show]
Infracost DevOps, SRE va Terraform kabi kod sifatida infratuzilma loyihalari uchun bulutli xarajatlarni taxmin qilmoqchi bo'lgan ishlab chiquvchilar uchun muhimdir. Infracost yordamida siz turli xil variantlarni solishtirganda xarajatlar taqsimotini tezda ko'rishingiz mumkin, bu esa katta qaror qabul qilishdan oldin yaxshiroq tushunishga yordam beradi.
Infracost qanday ishlaydi?
Infracost sizning Terraform kodingizni skanerlash orqali 3 milliondan ortiq narxlarni tekshirishi mumkin va u resurslarni ishga tushirishdan oldin oddiy va o'qilishi oson xarajatlar smetasini ishlab chiqadi.
Shuningdek, Infracost-dan qaysi kod satrlari eng katta xarajat ta'siriga ega ekanligini bilish uchun foydalanishingiz mumkin, chunki u tortishish so'rovlaringizdagi resurslarga xarajatlarni xaritalaydi. Infracost-ni CI/CD-ga integratsiyalash orqali siz jamoangiz bilan hamkorlik qilishingiz va mavjud ish oqimingizdagi o'zgarishlarning ta'siri bo'yicha munozaralarni faollashtirishingiz mumkin.
Infracost o'zining Cloud Pricing API backend xizmati orqali ishlaydi va CLI vositasi yordamida siz Terraform rejasini JSON formatida tahlil qilishingiz mumkin. API ishlatilayotgan har bir bulutli resursning individual narxini, shuningdek, bulut provayderiga asoslangan ularning tegishli xarajat parametrlarini o‘zaro bog‘laydi.
Dastur ishlash uchun hech qanday hisob ma'lumotlarini talab qilmaydi va Terraform yoki tahlil qilingan bulut resurslariga hech qanday o'zgartirish kiritmaydi. Terraform resurs turlarini hisoblash orqali API yangi resurslar hisobga olinishini ta'minlaydi.
Infracost xarajatlarni taqsimlashning ikkita asosiy usuli mavjud:
A) Xarajatlarni to‘liq taqsimlash
B) Oylik xarajatlarning joriy va rejalashtirilgan davlat o'rtasidagi farqi
Infracost bilan ishlashni boshlash (bosqichma-bosqich)
Infracost-ni o'rnatish va undan foydalanishni boshlash uchun ushbu bosqichma-bosqich qo'llanmani bajaring:
1. Infracost-ni o'rnating
Ishni boshlash uchun birinchi qadam Infracost-ni o'rnatishdir, lekin avval sizda bo'lishi kerak Terraform o'rnatilgan.
Infracost-ning turli versiyalarini ko'rib chiqamiz:
macOS Homebrew:
brew install infracost
infracost -versiya # v0.9.7 ko'rsatilishi kerak
macOS qo'llanmasi:
# OS/arch asosida CLI-ni yuklab oladi va uni /usr/local/bin ichiga joylashtiradi
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
linux:
# OS/arch asosida CLI-ni yuklab oladi va uni /usr/local/bin ichiga joylashtiradi
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=buni qanday_olish_bo'yicha_quyidagi_qadamga qarang \
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
-v $PWD/:/code/ infracost/infracost bo'linishi -yo'l /kod/
# Infracost yoki Terraform uchun boshqa kerakli bayroqlarni/envlarni qo'shing
# Masalan, agar siz AWS assume-roldan foydalansangiz, bular talab qilinishi mumkin:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Yuklab oling va oching oxirgi versiyasi. Uni buyruq satri yoki Powershell yordamida ishga tushiring .\infracost.exe --no-color
boshqa kerakli buyruqlar/bayroqlar bilan bir qatorda (rangli chiqishda Windowsda tuzatishimiz kerak bo'lgan xatolik mavjud). Bundan tashqari, exe faylini o'zingizdagi papkaga ko'chirishingiz kerak PATH
muhit o'zgaruvchisi, masalan C:\Windows
.
2. API kalitini oling
Keyingi qadam - bepul API kalitiga ro'yxatdan o'tish, CLI undan misol turlari uchun narxlarni olish kabi vazifalar uchun Cloud Pricing API so'rovi uchun foydalanadi.
Barcha operatsion tizimlar:
infrakost registri
Kalit saqlangan ~/.config/infracost/credentials.yml
.
3. Infracost dasturini ishga tushiring
Endi siz Terraform holatiga yoki bulut manbalariga hech qanday o'zgartirish kiritmaydigan Infracost-ni ishga tushirishga tayyorsiz. Uni sinab ko'rish uchun uni taqdim etilgan Terraform loyihasi bilan ishga tushirishingiz mumkin.
Barcha operatsion tizimlar:
git clone https://github.com/infracost/example-terraform.git
CD misol-terraform/namuna1
# Main.tf bilan o'ynang va xarajatlarni solishtirish uchun qayta ishga tushiring
infrakostlarning buzilishi - yo'l.
# Oylik xarajatlar farqini ko'rsating, yml faylini tahrirlang va xarajatlarni solishtirish uchun qayta ishga tushiring
infracost diff –path . –sync-usage-file –usage-fayl infracost-usage.yml
4. CI/CD ga qo'shing
Endi Infracost'dan foydalanishingiz mumkin CI/CD integratsiyasi xarajat smetasi farqlarini ko'rsatadigan tortishish so'rovini avtomatik ravishda qo'shish uchun. Bu sizga xavfsizlik tarmog'ini ham taqdim etadi, bu esa jamoalarga o'z ish jarayonining bir qismi sifatida o'zgarishlarning xarajatlarga ta'sirini muhokama qilish imkonini beradi.
foydalanish
The infracost
CLI quyidagi asosiy buyruqlarga ega:
breakdown
: xarajatlarning to'liq taqsimotini ko'rsatishdiff
: joriy va rejalashtirilgan holat o'rtasidagi oylik xarajatlarning farqini ko'rsating
Agar repoda bir nechta Terraform loyihalari yoki ish joylari bo'lsa, Infracost konfiguratsiya faylidan foydalaning. Ularning natijalari bir xil parchalanish yoki farq chiqishiga birlashtiriladi.
Kengaytirilgan foydalanish
Infracost shuningdek, muntazam foydalanish usullariga qo'shimcha ravishda ishlatilishi mumkin bo'lgan turli ilg'or foydalanish usullariga ega. Ushbu ilg'or usullardan Infracost konfiguratsiya fayli orqali ham foydalanish mumkin.
Terraform rejasi fayli
Infracost Terraform reja fayliga qarshi ishlashi mumkin, bu siz allaqachon Terraformni ishga tushirganingizni anglatadi init.
Infracost faqat Terraformni boshqaradishow
bu holda, bulut hisob ma'lumotlarini talab qilmaydi, degan ma'noni anglatadi yoki --terraform-plan-flags
o'rnatilishi kerak.
CD yo'li/kod
terraform init
terraform rejasi -out tfplan.binary
infracost parchalanishi – tfplan.binary yo'li
infracost diff –path tfplan.binary
Terraform holati
Agar siz hozirgi Terraform holatining xarajatlar taqsimotini ko'rishni istasangiz, bilishingiz kerak infracost breakdown
buyruqqa ega --terraform-use-state
bayroq, bu holatda foydali bo'ladi. Siz allaqachon Terraformni ishga tushirishingiz kerak apply
, shuning uchun Infracost faqat Terraformni boshqaradi show
, bulutli hisob ma'lumotlarini talab qilmaydigan yoki --terraform-plan-flags
o'rnatilishi kerak.
infrakostlarning parchalanishi - yo'l misollari / terraform - terraform-foydalanish holati
Terraform holati JSON fayli
Buni ishlatishingiz mumkin infracost breakdown
Terraform holati JSON fayliga qarshi. Bu ichki JSON vakili o'rniga davlatning [JSON chiqish formati] bo'ladi. U ishga tushirish orqali yaratilishi kerak terraform show -json
Terraform loyihasi ichida va hozirgi Terraform holatining xarajatlar taqsimotini ko'rishni istasangiz, ayniqsa foydalidir. Bunday holda, bu siz allaqachon Terraformni ishga tushirganingizni anglatadi apply
, bulutli hisob ma'lumotlari yo'q yoki degan ma'noni anglatadi --terraform-plan-flags
talab qilinadi.
Qaysi bulutlar va manbalar qo'llab-quvvatlanadi?
Infracost dan ko'proq narsani qo'llab-quvvatlaydi 200 Terraform resurslari AWS, Google va Azure bo'ylab, boshqa IaC vositalari esa Pulumi va Bulutli shakllanish yo‘l xaritasiga kiritilgan. Yangi resurslarni qo'llab-quvvatlash doimiy ravishda qo'shiladi, shuning uchun repo-ni relizlar uchun tekshirish muhimdir.
Xulosa
Infracost foydalidir ishlab chiquvchilar uchun vosita, DevOps, SRE va boshqalar xarajatlarni tezda ko'rishni va turli xil variantlarni oldindan solishtirishni xohlaydi. Agar siz uni CI bilan integratsiya qilmoqchi bo'lsangiz va/yoki AWS va Google Cloud uchun yordamga muhtoj bo'lsangiz, bu yaxshi tanlovdir. Agar siz jamoangiz o'rtasida yaxshiroq hamkorlikni yaratmoqchi bo'lsangiz, Infracost ham bu borada yordam berishi mumkin. Bu xususiyatlarning barchasi uni Terraform uchun bulutli xarajatlar smetasini amalga oshirish haqida jiddiy o'ylashingiz kerak bo'lgan vositaga aylantiradi.
Leave a Reply