Spis treści[Ukryć][Pokazać]
Infracost jest ważny dla DevOps, SRE i programistów, którzy chcą oszacować koszty chmury dla projektów infrastruktury jako kodu, takich jak Terraform. Dzięki Infracost możesz szybko zobaczyć zestawienie kosztów podczas porównywania różnych opcji, co pomaga uzyskać lepszy wgląd przed podjęciem poważnej decyzji.
Jak działa Infracost?
Infracost może sprawdzić ponad 3 miliony cen, skanując Twój kod Terraform, i tworzy prosty i łatwy do odczytania kosztorys przed uruchomieniem zasobów.
Możesz także użyć Infracost, aby dowiedzieć się, które wiersze kodu mają największy wpływ na koszty, ponieważ odwzorowuje koszt na zasoby w twoich żądaniach ściągnięcia. Integrując Infracost z CI/CD, możesz współpracować ze swoim zespołem i umożliwiać dyskusje na temat wpływu zmian w istniejącym przepływie pracy.
Infracost działa za pośrednictwem usługi zaplecza Cloud Pricing API, a za pomocą narzędzia CLI można analizować plan Terraform w formacie JSON. Interfejs API odwołuje się do indywidualnych kosztów każdego używanego zasobu w chmurze, a także powiązanych z nimi parametrów kosztów w oparciu o dostawcę chmury.
Program nie wymaga żadnych poświadczeń do działania i nie wprowadza żadnych zmian w Terraformie ani w analizowanych zasobach chmury. Korzystając z liczby typów zasobów Terraform, interfejs API zapewnia uwzględnienie nowych zasobów.
Istnieją dwa główne sposoby, w jakie Infracost pokazuje podział kosztów:
A) Pełny podział kosztów
B) Różnica miesięcznych kosztów między obecnym a planowanym stanem
Pierwsze kroki z Infracost (krok po kroku)
Postępuj zgodnie z tym przewodnikiem krok po kroku, aby zainstalować i rozpocząć korzystanie z Infracost:
1. Zainstaluj Infracost
Pierwszym krokiem do rozpoczęcia jest instalacja Infracost, ale najpierw musisz ją mieć Terraform zainstalowany.
Oto spojrzenie na różne wersje Infracost:
MacOS Homebrew:
brew zainstalować infracost
infracost –version # Powinien pokazywać wersję v0.9.7
instrukcja macOS:
# Pobiera CLI w oparciu o twój system operacyjny/arch i umieszcza go w /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | cii
Linux:
# Pobiera CLI w oparciu o twój system operacyjny/arch i umieszcza go w /usr/local/bin
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | cii
Doker:
docker pull infracost/infracost
uruchomienie dokera –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/podział infracost –ścieżka /kod/
# Dodaj inne wymagane flagi/środowiska dla Infracost lub Terraform
# Na przykład mogą być one wymagane, jeśli używasz roli AWS:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Pobierz i rozpakuj Najnowsze wydanie. Uruchom go z wiersza polecenia lub programu Powershell, używając .\infracost.exe --no-color
wraz z innymi wymaganymi poleceniami/flagami (wyjście koloru ma błąd, który musimy naprawić w systemie Windows). Powinieneś także przenieść plik exe do folderu, który znajduje się w twoim PATH
zmienna środowiskowanp C:\Windows
.
2. Zdobądź klucz API
Następnym krokiem jest zarejestrowanie się w celu uzyskania bezpłatnego klucza interfejsu API, którego interfejs CLI używa do wysyłania zapytań do interfejsu Cloud Pricing API o takie zadania, jak pobieranie cen dla typów instancji.
Wszystkie systemy operacyjne:
rejestr infrakosztów
Klucz jest zapisany w ~/.config/infracost/credentials.yml
.
3. Uruchom Infracost
Teraz możesz już uruchomić Infracost, który nie wprowadza żadnych zmian w stanie Terraform ani w zasobach w chmurze. Możesz go uruchomić z dostarczonym projektem Terraform, aby go przetestować.
Wszystkie systemy operacyjne:
klon git https://github.com/infracost/example-terraform.git
cd przykład-terraform/próbka1
# Zagraj z main.tf i uruchom ponownie, aby porównać koszty
podział infrakosztów –ścieżka .
# Pokaż różnicę kosztów miesięcznych, edytuj plik yml i uruchom ponownie, aby porównać koszty
infracost diff –ścieżka . –sync-usage-file –usage-file infracost-usage.yml
4. Dodaj do CI/CD
Możesz teraz korzystać z usług Infracost Integracje CI/CD aby automatycznie dodawać komentarze do żądania ściągnięcia, które pokazują różnice w kosztorysie. Zapewni to również sieć bezpieczeństwa, umożliwiającą zespołom omawianie wpływu zmian na koszty w ramach ich przepływu pracy.
Stosowanie
Połączenia infracost
CLI ma następujące główne polecenia:
breakdown
: pokaż pełny podział kosztówdiff
: pokazuje różnicę kosztów miesięcznych pomiędzy stanem obecnym a planowanym
Użyj pliku konfiguracyjnego Infracost, jeśli repozytorium zawiera wiele projektów Terraform lub obszarów roboczych. Ich wyniki zostaną połączone w ten sam wynik podziału lub różnicy.
Zaawansowane użycie
Infracost ma również różne zaawansowane metody użytkowania, które można stosować oprócz zwykłych metod użytkowania. Tych zaawansowanych metod można również używać za pośrednictwem pliku konfiguracyjnego Infracost.
Plik planu Terraform
Infracost można uruchomić w oparciu o plik planu Terraform, co oznacza, że już uruchomiłeś Terraform init.
Infracost po prostu uruchamia Terraformshow
w tym przypadku oznacza to, że nie wymaga poświadczeń w chmurze ani --terraform-plan-flags
do ustawienia.
cd ścieżka/do/kod
terraformowanie
plan terraform -out tfplan.binary
podział infrakosztów – ścieżka tfplan.binary
infracost diff –ścieżka tfplan.binary
Stan Terraforma
Jeśli chcesz zobaczyć zestawienie kosztów obecnego stanu Terraform, powinieneś znać infracost breakdown
komenda ma --terraform-use-state
flaga, która przydałaby się w tym przypadku. Musisz już uruchomić Terraform apply
, więc Infracost po prostu uruchamia Terraform show
, która nie wymaga poświadczeń w chmurze lub --terraform-plan-flags
do ustawienia.
podział infrakosztów – przykłady ścieżek/terraform – terraform-stan-użytkowania
Plik JSON stanu Terraform
Możesz uruchomić infracost breakdown
względem pliku JSON stanu Terraform. Byłby to [format wyjściowy JSON] stanu zamiast wewnętrznej reprezentacji JSON. Musi być wygenerowany przez uruchomienie terraform show -json
wewnątrz projektu Terraform i jest to szczególnie przydatne, jeśli chcesz zobaczyć zestawienie kosztów bieżącego stanu Terraform. W tym przypadku oznacza to, że już korzystasz z Terraform apply
, co oznacza brak poświadczeń w chmurze lub --terraform-plan-flags
są wymagane.
Które chmury i zasoby są obsługiwane?
Infracost obsługuje więcej niż 200 surowców Terraform w AWS, Google i Azure, podczas gdy inne narzędzia IaC, takie jak Pulumi i Tworzenie się chmur są uwzględnione w rozkładzie jazdy. Stale dodawane jest wsparcie dla nowych zasobów, dlatego ważne jest, aby sprawdzać repozytorium pod kątem wydań.
Wnioski
Infracost jest pomocny narzędzie dla programistów, DevOps, SRE i innych, którzy chcą szybko zobaczyć zestawienie kosztów i porównać różne opcje z góry. Jest to również dobry wybór, jeśli szukasz integracji z CI i/lub potrzebujesz wsparcia dla AWS i Google Cloud. Jeśli chcesz stworzyć lepszą współpracę między swoim zespołem, Infracost może również pomóc w tym zakresie. Wszystkie te funkcje sprawiają, że jest to narzędzie, które należy zdecydowanie rozważyć zaimplementowanie do szacowania kosztów chmury dla Terraform.
Dodaj komentarz