X

Technologie - Trends - Tipps&Tricks
in deutscher Sprache

Ressourcen-Kontrolle in der Oracle Cloud Infrastructure

Marcus Schroeder
Master Principal Sales Consultant

Ressourcen-Kontrolle in der OCI ist die Grundlage für die Kosten-Kontrolle innerhalb des Cloud-Tenants. Dazu stehen eine Reihe von Funktionalitäten zur Verfügung. In diesem Blog-Eintrag möchte ich zwei grundlegende und einfach zu verwendende Möglichkeiten darstellen. Das Setup dauert nur wenige Minuten und ist als Administrator ohne zusätzliche Policies möglich.

Die erste Möglichkeit ist eine Kosten-Grenzwert-Benachrichtigung zu erstellen. In der OCI nennt sich dieser Punkt "Budgets" und wird im Artikel detailliert beschrieben. Budget ermöglichen die Benachrichtigung per Email, wenn ein bestimmter Wert tatsächlich überschritten wird oder wenn der Forcast darauf hinweist, dass der Grenzwert überschritten wird. 

Die zweite Möglichkeit ist eine Benachrichtigung per Email bei Erstellung bestimmter Ressourcen in der OCI. Wird zum Beispiel eine Datenbank oder eine Compute-Instanz angelegt, bekommt der Administrator eine Email mit einer Reihe von Metadaten, zum Beispiel: Welcher Benutzer hat die Resource angelegt, um was für eine Ressource handelt es sich und wie groß ist diese...

Beide Möglichkeiten bieten eine erste, schnelle und transparente Möglichkeit den Kosten-und Ressoucen-Verbrauch der OCI zu überwachen. Es gibt eine Reihe weiterer viel detailliertere Möglichkeiten, auf die ich im Link-Bereich des Artikels hinweise.

1. Kostenkontrolle / Budgets

Um zu diesem Punkt zu kommen, navigieren Sie im linken Seiten-Menü auf "Account Management > Budgets" und Erstellen mit dem Button "Create Budget" einen neuen Eintrag. Sie können die Kosten des gesamten Compartments (durch Auswahl des Root-Compartments), eines einzelnen (Sub-)Compartments oder der Cost Tracking Tags überwachen. Cost Tracking Tags können jeder Ressource zugewiesen werden und ermöglichen eine Kosten-Kontrolle mehrer Organisationen innerhalb eines Tenants. In unserem Fall verwenden wir die schnelle Variante und wählen das Root-Compartment aus, durch diese Auswahl werden auch alle Sub-Compartments in die Überwachung eingeschlossen. 

Im nächsten Punkt geben wir die Summe ein, die wir als Grenzwert setzen wollen. Die Summe bezieht sich immer auf die Währung, die bei der Abrechnung Ihres Accounts verwendet wird und kann nur als ganze Zahl angegeben werden. 

Der nächste Teil ist optional, ich empfehle jedoch umbedingt die "Budget Alert Rule" zu definieren. Diese Regeln können auch zu einem späteren Zeitpunkt definiert und erweitert werden. In unserem Fall verwenden wir die Regel "Forecast Spend", dies bedeutet das die OCI eine Benachrichtigung schickt, wenn das gesetzte Limit in Zukunft zu dem gesetzten Zeitpunkt überschritten wird. Der Forecast-Algorithmus benötigt mindestens 3 Tage Consumption und folgt einer Linearen Extrapolation. Man kann jedoch auch "Actual Spend" setzen, dann wird der tatsächliche Verbrauch als Grenzwert verwendet.

Als nächstes wird der Grenzwert-Typ gesetzt hier hat man die Möglichkeit zwischen einer prozentualen und einer absoluten Größe zu wählen. In meinem Beispiel setzte ich das monatliche Budget auf 100€ und den Grenzwert auf 80% mit "Forecast Spend". Das bedeutet im Klartext: Wenn es sich anbahnt, das ich 80€ zum Ende des Monats überschreite, bekomme ich eine Email-Benachrichtigung.

Wichtig: Die Regeln setzen immer den Anfang des Bereichnungs-Zeitraumes als Startzeit an, d.h. in der Regel den 1. eines Monats.

Bild 1: Eingabe der Parameter (oberer Teil)

In den weiteren Feldern kann ich noch die Email-Adresse(n) der Benachrichtigung und den gewünschten Benachrichtigungs-Text verfassen. Nach Bestätigung der Eingaben, ist die Budget-Überwachung aktiv. Persönlich verwende ich diese Überwachung seit März 2019 und es hat bis heute tadellos funktioniert!

Bild 2: Eingabe der Parameter (unterer Teil)

Ressourcen-Kontrolle

Das Aufsetzten der Ressourcen-Kontrolle umfasst ein paar Arbeitsschritte mehr, die aber auch in anderen Bereichen eine Vergrösserung des Administrations-Komfort mit sich bringt. Grundsätzlich geht das Aufsetzten in drei Schritten

  • Erstellen von "Tag Defaults" zum Auslesen der Informationen: Wer und Wann hat diese Ressource erzeugt
  • Erstellen eines "Notification Topics" zur Definition des Benachrichtigungs-Kanals
  • Erstellen von "Events" die eine Benachrichtigung auslösen

Tag Defaults

Diese Tags werden auf Compartment-Ebene angelegt und jeder Ressource mitgegeben, die innerhalb dieses Compartments angelegt wird. Wird es auf Root-Compartment-Ebene definiert, bekommen alle Ressourcen in allen Compartments diese Tag Defaults. Um Tag Defaults anlegen zu können muss zuerst ein Tag-Namespace mit den dazugehörigen Key-Definitions angelegt werden. Dazu geht man auf Gouvernance > Tag Namespaces und erstellt einen neuen Namespace. In unserem Fall habe ich den Namespace "Operation" genannt. Nach der Erstellung des Namespaces können innerhalb des Namespaces Key-Definitions oder Schlüssel-Namen angelegt werden. In unserem Fall verwende ich die Standard-Namen "CreatedBy" für die automatische Zuordnung des eingeloggten Benutzers und "CreationDate" für den automatischen Zeitstempel der Ressourcen-Erstellung. Ich gebe nur den Namen in den Details an und belasse die Einstellung von Cost-Tracking auf NO und verwende den "Tag Value Type" "Static Value".

Anschließend kann ich auf Compartment Ebene den Tag-Default setzen. Dazu navigiere ich zu Identity > Compartments und wähle das Root-Compartment aus. In der Detail-Ansicht gehe ich links auf "Tag Defaults". Mit der Auswahl von "Create Tag Default" wähle ich den Namespace "Operation" aus und den Tag-Key "CreatedBy". In der Default Value setze ich den regulären Ausdruck ${iam.principal.name}. Dieser Ausdruck wird mit dem Benutzer ersetzt, der zum Zeitpunkt der Ressourcen-Erstellung eingeloggt ist. Dies gilt natürlich auch für Erstellungen über die OCI APIs!

Der nächste Tag-Default wird mit dem Tag-Key "CreationDate" und dem regulären Ausdruck ${oci.datetime} gefüllt. Wie schon vermuten lässt,wird der Ausdruck durch das aktuelle Zeitstempel/Datum der jeweiligen Region ersetzt.

In der Übersichtsseite sieht dann das fertige Konstrukt folgendermaßen aus: 

Bild 3: Erstellen von Tag Defaults

Jedes Mal, wenn ein Benutzer nun eine Ressource anlegt, können Sie zurückverfolgen, wer und wann diese Ressource angelegt hat. Ein Hinweis am Rande: Falls User die Administrationsrechte Tag besitzen, können diese natürlich die Tags im Nachhinein abändern. Für fälschungssichere Verfolgung muß man zusätzlich die Audit- Logs überprüfen (Link am Ende des Textes).

Erstellen eines "Notification Topics"

Für die eigentliche Benachrichtigung muss zuerst festgelegt werden, wie und an wem die Benachrichtigung erfolgen soll. Dies erreicht man durch eine Notification Topic. Navigieren Sie dazu auf Application Integration > Notifications > Create Topic und erstellen ein Topic. Ich habe es in unserem Fall "CreationAlert" genannt. Im zweiten Schritt geht man auf die Detail-Ansicht des Topic und erstellt eine Subscription. Der Einfachheit halber verwenden wir hier Email. Es gibt noch eine Reihe andere Möglichkeiten wie Pager, Slack, Functions etc. Nach Eingabe der Emailadresse ist dieser Punkt abgeschlossen.

Bild 4: Erstellen von Notification Topics

Erstellen von "Events"

Der letzte Schritt ist das Setzen von Events. D.h. nahezu jede Aktion, die in der OCI mit Ressourcen durchgeführt wird, kann als Trigger für eine Notification verwendet werden. Um dies zu bewerkstelligen, navigieren Sie auf Application Integration > Event Service > Create Rule. In dieser Regel können Sie mithilfe von Drop-Down-Menüs nach belieben Events aussuchen, bei denen Sie benachrichtigt werden wollen. In unserem Beispiel soll bei folgenden Events benachrichtigt werden:

  • Erstellung einer Compute Instanz
  • Anlegen eines neuen Benutzers im Cloud Account
  • Erstellen einer (Autonomen) Datenbank
  • Erstellen eines Analytics Services

Sie können sich hier frei entfalten. Sie müssen nur die Condition "Event Type" und den gewünschten Service Namen auswählen und können dann den Status (Create, Update, Delete, etc.) setzen, bei dessen Erreichung Sie eine Nachricht bekommen möchten. Im letzten Punkt wählen Sie noch die Aktion, die aus dem Event generiert werden soll. In unserem Fall wählen wir "Notification" im Root-Compartment und wählen die eben erstellte Benachrichtigung "CreationAlert" aus.

Bild 5: Erstellen von Rssourcen-Events

Wenn Sie die beschriebenen Schritte durchgeführt haben, sind Sie fertig.Jedes Mal wenn einer dieser Events erfolgt, bekommen Sie eine Email im JSON-Format, in der wichtige Meta-Informationen hinterlegt sind. Für mich persönlich sind dabei die wichtigsten Informationen: Wer hat welche Ressource angelegt und wie groß ist diese!

Bild 6: Benachrichtigungs-Email mit Ressourcen-Typ, Name, Erstellungs-Datum und Benutzer der die Ressource erstellt hat (Reale Werte sind ausgeschnitten!)

Fazit

Budget, Tag-Defaults, Notification und Events gehören zu den wichtigen Werkzeugen, um die Abläufe im OCI-Account transparenter zu machen. In meinem Beispiel verwalte ich einen Tenant mit 100+ Benutzer und habe immer einen Überblick über Ressourcen-Ausreißer und mein zugeordnetes Budget. Das Ganze ist in wenigen Minuten aufgesetzt. Der Aufwand lohnt sich auf jeden Fall!

Links:

Dokumentation der beschriebenen Abläufe:

Weiter Tools und Links zur Kostenkontrolle:

 

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.