Es geht immer nur ums Geld! Verwaltung von OCI-Budgets mit Terraform
Wenn Sie die Oracle Cloud (OCI) zur Verwaltung Ihrer Infrastruktur nutzen, ist es entscheidend, nicht nur Ressourcen, sondern auch Budgets sorgfältig zu planen. Ob für einzelne Projekte oder ganze Teams, Budgets sind ein mächtiges Werkzeug, um die Kontrolle über Ihre Ausgaben zu behalten. Doch es gilt, einige wichtige Punkte zu beachten.
Budgets erlauben es Ihnen, Ausgabelimits innerhalb der Oracle Cloud Infrastructure (OCI) festzulegen und dank automatisierter Benachrichtigungen den Überblick zu wahren – sei es für Sie persönlich oder Ihr Team. Die OCI liefert dabei eine umfassende Sicht auf alle Budgets und Ausgaben, um eine effiziente Finanzverwaltung zu gewährleisten.
Möchten Sie Ihrem Team oder Ihrer Abteilung ein Budget von 100 Euro zur Verfügung stellen, können Sie ein Budget erstellen und dies dem entsprechenden Compartment des Teams zuweisen.
Budgets können entweder immer wiederkehrend sein. Das heißt, beispielsweise hat ein Team pro Monat ein Ausgabenkontingent von 100 Euro zur Verfügung. Sie können aber auch einmalig sein, was bedeuten würde, dass ein Team ein Kontingent von 100 Euro hat, welches einmalig, über einen definierten Zeitraum ausgegeben werden kann.
Einmalige Budgets sind immer dann sinnvoll, wenn es nur um kurzfristige Projekte, wie Proof of Concepts, oder Ähnliches geht.
Damit Sie auch informiert werden und proaktiv reagieren können, wenn ein Budget zur Neige geht, gibt es sogenannte „Budgetalerts“. Diese Alerts werden täglich überprüft und umfassen auch Prognosen bezüglich der zukünftigen Ausgaben. Dabei ist es nicht möglich, die Häufigkeit der Prüfungen festzulegen. Täglich ist damit die einzig mögliche Einheit und Kontrollen in einem kürzeren Intervall sind nicht möglich. Sie können festlegen, ob Sie bei einem absoluten Wert oder einem prozentualen Anteil des Budgets benachrichtigt werden möchten.
Budgets erstellen - It's a trap!
Budgets lassen sich, wie alle Ressourcen, in der Oracle Cloud über drei verschieden Varianten erstellen. Zum einen über die Web-UI, über die OCI CLI und über die REST-API, also weitere Clients, wie Python oder Terraform.
Wir werden uns auf die Erstellung und Verwaltung durch Terraform fokussieren, da wir dort alle Vorteile von Infrastructure as Code nutzen können. Sie finden einen weiteren Artikel über Terraform in unserem Blog.
Es gibt leider einige Fallstricke, die Sie beachten müssen, wenn Sie Budgets managen wollen. Insbesondere, wenn Sie Ihre Infrastruktur mit Terraform verwalten.
1. Nur im Root-Compartment
Die Budget-Ressource kann nur im Root-Compartment erstellt werden. Das hat für Sie mindestens zwei Folgen:
- Wenn Sie ein Budget für ein Team erstellen wollen, müssen Sie dieses Budget im Root-Compartment erstellen. Erst dann können Sie das Budget dem entsprechenden Team zuweisen. Das ist insbesondere nicht eindeutig, da die Variable in der Dokumentation compartment_id und nicht tenancy_id heißt.
- Ohne die entsprechende Berechtigung auf das Root-Compartment, sind Sie nicht in der Lage, das Budget anzulegen.
2. Das verzwickte Datum
Da einmalige Budgets stets zeitlich begrenzt sind, müssen Sie beim Erstellen zwingend ein Start- und ein Enddatum festlegen.
Beide Datumsangaben müssen dabei im RFC3339-Format angegeben werden. Das heißt, dass Sie das Datum in der Form 2024-01-12T00:00:00.000Z angeben müssen.
Fügt man einen solchen Wert ein, bekommt man jedoch die Fehlermeldung: 400-InvalidParameter, Unable to process JSON input
Spannend ist dabei, dass dieser Wert von der OCI CLI problemlos akzeptiert wird.
Zu dem Problem gibt es bereits ein Issue auf GitHub.
Das Problem liegt daran, dass der Wert start_date missinterpretiert wird. Um das zu lösen, müssen Sie am Ende des Datums die Millisekunden auf .001Z ändern. Das heißt, dass das Datum dann wie folgt aussehen muss: 2024-01-12T00:00:00.001Z
Eine korrekte Budget-Ressource in Terraform sieht damit wie folgt aus:
Codebeispiel
resource "oci_budget_budget" "test_budget" { amount = 100 compartment_id = <TENANCY_ID> reset_period = "MONTHLY" description = "Einmaliges Test-Budget" display_name = "Einmaliges Test-Budget" processing_period_type = "SINGLE_USE" target_type = "COMPARTMENT" start_date = "2024-01-01T00:00:00.001Z" # .001 is important end_date = "2024-01-10T23:59:59.999Z" targets = [<COMPARTMENT_IDs>] }
Die Abrechnung
Die Verwaltung von Budgets in der Oracle Cloud Infrastructure (OCI) mit Terraform stellt eine wichtige Methode dar, um finanzielle Ressourcen zu steuern und zu überwachen. Während die Einrichtung von Budgets über die Web-UI, die OCI CLI und REST-API ihre eigenen Vorzüge hat, ermöglicht Terraform die vollständige Ausschöpfung der Vorteile von Infrastructure as Code.
Es ist wichtig, die Probleme und Einschränkungen zu verstehen, die beim Erstellen von Budgets auftreten können, insbesondere im Zusammenhang mit den Berechtigungen und der spezifischen Konfiguration von Datumswerten.
Dann lassen sich Budgets aber sehr gut mit Terraform verwalten.
Nutzen Sie auch die OCI? Haben Sie Fragen und Anregungen zu Terraform, oder zur Oracle Cloud? Sprechen Sie uns gerne an!
Seminarempfehlungen
TERRAFORM ESSENTIALS TERRA-01
Mehr erfahrenORACLE CLOUD INFRASTRUCTURE (OCI) FÜR ORACLE DBAS ORA-OCI-01
Mehr erfahrenConsultant bei ORDIX
Bei Updates im Blog, informieren wir per E-Mail.
Kommentare