CloudDevOps

Infracost ile Cloud Maliyet Analizi

Infracost Nedir ?

Infracost, altyapı kodu (Infrastructure as Code – IaC) kullanan ekiplerin, bulut altyapı değişikliklerinin maliyet etkisini kod yazım aşamasında görmesini sağlayan açık kaynaklı bir maliyet analiz aracıdır.

Özellikle Terraform ile tanımlanan kaynakların aylık tahmini bulut maliyetlerini hesaplayarak, geliştiricilerin ve DevOps ekiplerinin maliyet odaklı kararlar almasına yardımcı olur. CI/CD süreçlerine kolayca entegre edilebilen Infracost, pull request’ler üzerinde yapılan değişikliklerin bütçeye etkisini otomatik olarak raporlayarak daha alt yapının kurulum yapılmadan önce maliyetini görebilmenizi sağlar maliyet sürprizlerinin önüne geçer ve FinOps süreçlerini geliştirir.

Infracost kurulumu

bu sistemi kullanabilmemiz için https://www.infracost.io/ adresine giderek bir hesap oluşturacağız ve bu hesaptan bir api key alarak makinemize tanımlayacağız böylecek en güncel fiyat bilgilerini kodumuz çekerek bize en net maliyet bilgilerini veriyor olacak.

portala login oluyoruz ve ilk 3 adımı tamamlıyoruz 4. adım git reponuzdaki kodları analiz ettirmek için TF dosyalarınızı reponuza atıp içerisinde aşağıdaki kodu eklemenizi gerektiriyor.

Biz bu çaışmada sadece cli üzerinden anlizler yapacağız git reposuyla ilgili bir analiz yapmayacağız bu sebeple bu adımı tamamlamadım. Gir reposundaki Tf kodunu analiz etmeyuecekseniz bu şekilde kalabilir.

Infracost ile Cloud Maliyet Analizi 2

sağ üst bölümdeki “Settings→Org Settings” menüsüne gidiyoruz.

Infracost ile Cloud Maliyet Analizi 3

API Menüsünde bize verdiği token bilgisini bir yere not ediyoruz.

Agent Kurulumu

Bu “https://www.infracost.io/docs/#quick-start” adres üzerinden diğer sistemler için pratik kurulum metotlarını takip ederek agentımızı makinemize yüklüyoruz.

#Mac cihazlar
brew install infracost
#Windows cihazlar powershell ile
choco install infracost

#Linux 
# Downloads the CLI based on your OS/arch and puts it in /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh

versiyon kontrolü yapıyoruz.

infracost –version
#Infracost v0.10.42

Dashboard’dan “Settingz–> Organization settins–>API Token–>CLI and CI/CD token” API Key oluşturp kopyaladığımız key i aşağıdaki komutla cli a aktarıyoruz.

Burada 2 yöntemle de bu işlemi yapabilirsiniz ben yöntem 1 ile ilerliyorum.

Yöntem-1

#infracost configure set api_key <senin_api_keyin>
infracost configure set api_key ico-EiPnvbjExiGvXBtiM1sKLWXXXXXXXXXX

Yöntem 2

#Sadece kullanılan session da geçerli olur key
export INFRACOST_API_KEY=”ico-EiPnvbjExiGvXBtiM1sKLXXXXXXXXXXXX”#Key i kalıcı olarak locale yazar
echo ‘export INFRACOST_API_KEY=”ico-EiPnvbjExiGvXBtiM1sXXXXXXXXXXXX”‘ >> ~/.zshrc
source ~/.zshrc

işlem sonucunu görüntülemek için API key i kontrol ediyorum.

infracost configure get api_key

cli ile logn oluyoruz.

infracost auth login

Bu adım bizi browser a yönlendirecek ve login olduğumuz bilgisi aşağıdaki gibi karşımıza gelecek.

Infracost ile Cloud Maliyet Analizi 4

Infracost ile Cloud Maliyet Analizi 5

buraya kadar geldiyseniz artık infra cost yapılandırması tamamladı demektir.

Terrafrom Cost report oluşturma

Ben örnek bir Terraform dizinine giriyorum burada VPC oluşturmak için gerekli Terraform kodları yer alıyor.

serdar@sbMacBook aws-vpc %
├── backend.tf
├── eip.tf
├── main.tf
├── outputs.tf
├── provider.tf
├── README.md
├── terraform.tfvars
├── variables.tf
└── versions.tf

Terraform komutlarını çalıştırıyorum.

terraform init
#Terraform planı infracost un okuyabileceği formata çeviriyorum.
terraform plan -out=tfplan 
infracost breakdown --path . --format table

Bu çıktıdan sonra aşağıdaki komutu çalıştırarak Terraform ile kuracağınız sistemin maliyetini görebilirsiniz.

#analizi yaptırmak için
infracost breakdown –path=tfplaninfracost breakdown –path . –format table
serdar@sbMacBook 002-aws-vpc % infracost breakdown --path=tfplan  
INFO Autodetected 1 Terraform plan binary file project across 1 root module
INFO Found Terraform plan binary file project tfplan at directory tfplan

Project:/002-aws-vpc/tfplan

 Name                                   Monthly Qty  Unit              Monthly Cost   
                                                                                      
 module.vpc.aws_nat_gateway.this[0]                                                   
 ├─ NAT gateway                                 730  hours                   $37.96   
 └─ Data processed                   Monthly cost depends on usage: $0.052 per GB     
                                                                                      
 OVERALL TOTAL                                                              $37.96 

*Usage costs can be estimated by updating Infracost Cloud settings, see docs for other options.

──────────────────────────────────
34 cloud resources were detected:
∙ 1 was estimated
∙ 33 were free

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Project                                            ┃ Baseline cost ┃ Usage cost* ┃ Total cost ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━╋━━━━━━━━━━━━┫
┃#########################/002-aws-vpc/tfplan        ┃           $38 ┃           - ┃        $38 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━┻━━━━━━━━━━━━┛
serdar@sbMacBook 002-aws-vpc %

Infracost ile Cloud Maliyet Analizi 6

#Html format rapor almak için

infracost breakdown –path . –format html > cost-report.html

Infracost ile Cloud Maliyet Analizi 7

Raporu infracost Web e gönderme

localde aldığımız bu raporlar infracost portala yansımazlar bunun için kodlarınızı ya Github gibi repolara gönderip infracost ile entegrasyon yapmalısınız. yada pc nizden manuel olarak göndermelisiniz.

Aşağıdaki komutla raporumuzu json formatına çeviriyoruz.

infracost breakdown –path . –format json –out-file infracost-output.json

Bu dosyayı aşağıdaki komutla infraDashboard a gönderiyoruz.

infracost upload –path infracost-output.json

Visibility→Reports menüsüne giderek raporu artık dashboard üzerinde de görebilirsiniz.

Infracost ile Cloud Maliyet Analizi 8

Iac üzerinden maliyet analizinin nasıl yapılacağını bu makalede anlattım bu yöntemle daha maliyetleriniz oluşmadan büyük bir oranda net hesaplamalar yaparak maliyetlerinizi çıkarabilirsiniz.

Bir başka makalede görüşmek üzere

SERDAR BAYRAM

Serdar Bayram

Bu yazı blog üzerinde Serdar Bayram tarafından hazırlanıp paylaşılmıştır. 2009 yılında açılan blogum kısa zaman içerisinde paylasımları ile dikkat cekip büyük bir izleyici kitlesine sahip olmuştur.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu