Inhaltsverzeichnis[Ausblenden][Zeigen]
Infracost ist wichtig für DevOps, SRE und Entwickler, die Cloud-Kosten für Infrastructure-as-Code-Projekte wie Terraform abschätzen möchten. Mit Infracost können Sie schnell eine Kostenaufschlüsselung sehen, während Sie verschiedene Optionen vergleichen, was zu besseren Erkenntnissen vor einer großen Entscheidung führt.
Wie funktioniert Infracost?
Infracost kann über 3 Millionen Preise überprüfen, indem es Ihren Terraform-Code scannt, und es erstellt eine einfache und leicht lesbare Kostenschätzung, bevor Sie Ressourcen starten.
Sie können Infracost auch verwenden, um zu ermitteln, welche Codezeilen die größten Kostenauswirkungen haben, da es die Kosten den Ressourcen in Ihren Pull-Anforderungen zuordnet. Durch die Integration von Infracost in Ihr CI/CD können Sie mit Ihrem Team zusammenarbeiten und Diskussionen über die Auswirkungen von Änderungen in Ihrem bestehenden Workflow ermöglichen.
Infracost arbeitet über seinen Cloud Pricing API-Backend-Dienst, und mit dem CLI-Tool können Sie einen Terraform-Plan im JSON-Format parsen. Die API vergleicht die individuellen Kosten jeder verwendeten Cloud-Ressource sowie die zugehörigen Kostenparameter basierend auf dem Cloud-Anbieter.
Für den Betrieb des Programms sind keine Anmeldeinformationen erforderlich, und es nimmt keine Änderungen an Terraform oder an den analysierten Cloud-Ressourcen vor. Durch die Verwendung der Anzahl der Terraform-Ressourcentypen stellt die API sicher, dass neue Ressourcen berücksichtigt werden.
Es gibt zwei Möglichkeiten, wie Infracost die Aufschlüsselung der Kosten anzeigt:
A) Vollständige Aufschlüsselung der Kosten
B) Differenz der monatlichen Kosten zwischen aktuellem und geplantem Zustand
Erste Schritte mit Infracost (Schritt für Schritt)
Befolgen Sie diese Schritt-für-Schritt-Anleitung, um Infracost zu installieren und zu verwenden:
1. Installieren Sie Infracost
Der erste Schritt zum Einstieg ist die Installation von Infracost, die Sie jedoch bereits haben müssen Terraform installiert.
Hier ist ein Blick auf die verschiedenen Versionen von Infracost:
macOS-Homebrew:
Infracost brauen installieren
infracost –Version # Sollte v0.9.7 anzeigen
macOS-Handbuch:
# Lädt die CLI basierend auf Ihrem Betriebssystem/arch herunter und legt sie in /usr/local/bin ab
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | Sch
Linux:
# Lädt die CLI basierend auf Ihrem Betriebssystem/arch herunter und legt sie in /usr/local/bin ab
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | Sch
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-Aufschlüsselung –Pfad /code/
# Fügen Sie andere erforderliche Flags/envs für Infracost oder Terraform hinzu
# Diese könnten beispielsweise erforderlich sein, wenn Sie AWS annehmen-Rolle verwenden:
# -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN \
# -e AWS_REGION=$AWS_REGION \
Windows:
Downloaden und entpacken Sie die neueste Erscheinung. Führen Sie es über die Eingabeaufforderung oder Powershell aus .\infracost.exe --no-color
neben anderen erforderlichen Befehlen/Flags (die Farbausgabe hat einen Fehler, den wir unter Windows beheben müssen). Sie sollten die exe-Datei auch in einen Ordner verschieben, der sich in Ihrem befindet PATH
variable Umgebung, z.B C:\Windows
.
2. Holen Sie sich einen API-Schlüssel
Der nächste Schritt besteht darin, sich für einen kostenlosen API-Schlüssel zu registrieren, den die CLI verwendet, um die Cloud Pricing API für Aufgaben wie das Abrufen von Preisen für Instance-Typen abzufragen.
Alle Betriebssysteme:
Infrakostenregister
Der Schlüssel wird gespeichert ~/.config/infracost/credentials.yml
.
3. Führen Sie Infracost aus
Jetzt können Sie Infracost ausführen, das keine Änderungen an Ihrem Terraform-Status oder Ihren Cloud-Ressourcen vornimmt. Sie können es mit dem bereitgestellten Terraform-Projekt ausführen, um es zu testen.
Alle Betriebssysteme:
git-Klon https://github.com/infracost/example-terraform.git
cd beispiel-terraform/sample1
# Spielen Sie mit main.tf und führen Sie es erneut aus, um die Kosten zu vergleichen
Infrakostenaufschlüsselung –Pfad .
# Unterschiede der monatlichen Kosten anzeigen, YML-Datei bearbeiten und erneut ausführen, um die Kosten zu vergleichen
infracost diff –Pfad . –sync-nutzungsdatei –nutzungsdatei infracost-nutzung.yml
4. Zu CI/CD hinzufügen
Sie können jetzt Infracosts verwenden CI/CD-Integrationen um automatisch Pull-Request-Kommentare hinzuzufügen, die Ihnen Kostenschätzungsunterschiede zeigen. Dies bietet Ihnen auch ein Sicherheitsnetz, das es Teams ermöglicht, die Kostenauswirkungen von Änderungen als Teil ihres Arbeitsablaufs zu besprechen.
Anwendungsbereich
Das infracost
CLI hat die folgenden Hauptbefehle:
breakdown
: vollständige Aufschlüsselung der Kosten anzeigendiff
: Differenz der monatlichen Kosten zwischen aktuellem und geplantem Zustand anzeigen
Verwenden Sie eine Infracost-Konfigurationsdatei, wenn Ihr Repository mehrere Terraform-Projekte oder Arbeitsbereiche enthält. Ihre Ergebnisse werden in derselben Aufschlüsselung oder Diff-Ausgabe kombiniert.
Erweiterte Verwendung
Infracost verfügt auch über verschiedene erweiterte Nutzungsmethoden, die zusätzlich zu den regulären Nutzungsmethoden verwendet werden können. Diese erweiterten Methoden können auch über eine Infracost-Konfigurationsdatei verwendet werden.
Terraform-Plandatei
Infracost kann mit einer Terraform-Plandatei ausgeführt werden, was bedeutet, dass Sie Terraform bereits ausgeführt haben init.
Infracost führt nur Terraform ausshow
in diesem Fall bedeutet dies, dass keine Cloud-Anmeldeinformationen erforderlich sind oder --terraform-plan-flags
eingestellt werden.
CD-Pfad/zu/Code
Terraform-Initialisierung
Terraform-Plan -out tfplan.binary
Infrakostenaufschlüsselung –Pfad tfplan.binary
infracost diff –Pfad tfplan.binary
Terraform-Zustand
Wenn Sie die Kostenaufschlüsselung des aktuellen Terraform-Zustands sehen möchten, sollten Sie die kennen infracost breakdown
Befehl hat a --terraform-use-state
Flag, was sich in diesem Fall als nützlich erweisen würde. Sie müssen Terraform bereits ausführen apply
, also führt Infracost nur Terraform aus show
, für die keine Cloud-Anmeldeinformationen erforderlich sind, oder --terraform-plan-flags
eingestellt werden.
Infrakostenaufschlüsselung –Pfadbeispiele/Terraform –Terraform-Nutzungszustand
Terraform State JSON-Datei
Sie können das ausführen infracost breakdown
gegen eine Terraform-State-JSON-Datei. Dies wäre das [JSON-Ausgabeformat] des Zustands anstelle der internen JSON-Darstellung. Es muss durch Ausführen generiert werden terraform show -json
innerhalb eines Terraform-Projekts, und es ist besonders nützlich, wenn Sie die Kostenaufschlüsselung des aktuellen Terraform-Zustands sehen möchten. In diesem Fall bedeutet dies, dass Sie Terraform bereits ausführen apply
, d. h. keine Cloud-Anmeldeinformationen oder --terraform-plan-flags
erforderlich sind.
Welche Clouds und Ressourcen werden unterstützt?
Infracost unterstützt mehr als 200 Terraform-Ressourcen über AWS, Google und Azure, während andere IaC-Tools wie Pulumi und Wolkenbildung sind in der Roadmap enthalten. Die Unterstützung für neue Ressourcen wird ständig hinzugefügt, daher ist es wichtig, das Repo auf Veröffentlichungen zu überprüfen.
Zusammenfassung
Infracost ist hilfreich Werkzeug für Entwickler, DevOps, SRE und andere, die schnell die Kostenaufschlüsselung sehen und verschiedene Optionen im Voraus vergleichen möchten. Es ist auch eine gute Wahl, wenn Sie es in CI integrieren möchten und/oder Unterstützung für AWS und Google Cloud benötigen. Wenn Sie eine bessere Zusammenarbeit zwischen Ihrem Team schaffen möchten, kann Infracost auch dabei helfen. All diese Funktionen machen es zu einem Tool, das Sie unbedingt für Cloud-Kostenschätzungen für Terraform implementieren sollten.
Hinterlassen Sie uns einen Kommentar