Posts

AWS T3 Instanzen verstehen: CPU-Credits und plötzliche Performance-Einbrüche erklärt

Die Anwendung läuft stundenlang stabil, dann bricht die Performance ohne erkennbaren Grund ein — CPU-Auslastung bleibt hoch, aber der Durchsatz fällt auf ein Bruchteil des Normalen. Wer burstable T3 Instanzen betreibt, ohne das CPU-Credit-Modell zu verstehen, tappt bei diesem Symptom regelmäßig in die falsche Diagnoserichtung. TL;DR: T3 Instanzen und CPU-Credits auf einen Blick Aspekt Verhalten Baseline-CPU Festgelegter Prozentsatz je Instanzgröße (z.B. t3.micro: 10%) CPU-Credits Werden bei Nutzung unter Baseline angesammelt, bei Überschreitung verbraucht Credit-Erschöpfung Instanz wird auf Baseline-CPU gedrosselt Standard-Modus Burst begrenzt durch verfügbare Credits Unlimited-Modus Burst über Credits hinaus möglich — zusätzliche Kosten entstehen Diagnose-Metrik CPUCreditBalance in CloudWatch Wie das T3 CPU-Credit-Modell funktioniert T3 Instanzen gehören zur Kategorie der burstable perf...

Gelöschte S3-Dateien wiederherstellen: Versionierung und Wiederherstellung erklärt

Eine Datei versehentlich aus S3 gelöscht — das passiert in der Produktion öfter als man zugeben möchte. Wenn S3-Versionierung aktiviert war, ist die Datei nicht wirklich weg. Sie ist nur hinter einem sogenannten Delete-Marker versteckt. Dieser Artikel zeigt, wie man gelöschte S3-Objekte mit aktivierter Versionierung findet und wiederherstellt. TL;DR: Gelöschte S3-Dateien mit Versionierung wiederherstellen Schritt Aktion Ergebnis 1 Versionierung prüfen Sicherstellen, dass Versioning aktiv war 2 Delete-Marker identifizieren Versionsliste abrufen, Marker-ID finden 3 Delete-Marker löschen Objekt erscheint wieder als aktuell 4 Alternativ: Alte Version kopieren Explizit eine bestimmte Version wiederherstellen Wie S3-Versionierung und Delete-Marker funktionieren Wenn S3-Versionierung aktiviert ist, löscht ein normaler DELETE -Aufruf das Objekt nicht physisch. Stattdessen legt S3 einen sogenannten Delete-M...

Lambda mit privatem RDS verbinden: VPC-Konfiguration, Subnets und Security Groups

Eine Lambda-Funktion kann plötzlich keine Verbindung mehr zu einer RDS-Instanz in einem privaten Subnet aufbauen — kein Timeout-Log, keine klare Fehlermeldung, nur ein generisches 'Connection timed out'. Wer Lambda und RDS zum ersten Mal in einer VPC-Umgebung kombiniert, tappt hier schnell in eine Falle: Die Funktion läuft, die Datenbank läuft, aber die Verbindung kommt nie an. Der Grund liegt fast immer in der VPC-Konfiguration der Lambda-Funktion selbst. TL;DR: Lambda mit privatem RDS verbinden Schritt Was zu tun ist 1 Lambda-Funktion in dieselbe VPC wie RDS einbinden 2 Private Subnets (mindestens zwei AZs) für Lambda konfigurieren 3 Eigene Security Group für Lambda erstellen 4 RDS Security Group: Inbound-Regel für Lambda-SG auf DB-Port freischalten 5 IAM-Rolle der Lambda mit AWSLambdaVPCAccessExecutionRole ausstatten 6 Verbindung testen und CloudWatch Logs prüfen Wie Lambda und...

ElastiCache Redis einsetzen: Wann ein Caching-Layer deine RDS-Datenbank entlastet

Du hast die Abfragen optimiert, Indizes gesetzt, Read Replicas hinzugefügt — und der RDS-Endpunkt ist immer noch der Engpass. Das passiert fast immer dann, wenn dieselben Zeilen hunderte Male pro Sekunde gelesen werden und jede Anfrage trotzdem den vollen Datenbankpfad durchläuft. Ein ElastiCache Redis-Layer löst genau dieses Problem, indem er häufig gelesene Ergebnisse im Arbeitsspeicher hält und RDS damit aus der kritischen Anfragekette herausnimmt. TL;DR: ElastiCache Redis als Caching-Layer vor RDS Aspekt Ohne Cache Mit ElastiCache Redis Lesepfad App → RDS (Disk/Buffer Pool) App → Redis (RAM) → RDS nur bei Cache Miss Latenz (typisch) Einige Millisekunden bis Dutzende ms Unter 1 ms bei Cache Hit RDS-Last bei hohem Traffic Linear steigend Deutlich reduziert bei hoher Hit-Rate Datenkonsistenz Immer aktuell Abhängig von TTL und Invalidierungsstrategie Operativer Aufwand Gering Mittel (Cache-Strategie,...

LSI vs. GSI in DynamoDB: Den richtigen Sekundärindex wählen

Man hat eine DynamoDB-Tabelle aufgebaut, die Abfragen über den Primärschlüssel laufen schnell — und dann kommt die Anforderung, dieselben Daten nach einem anderen Attribut zu filtern. Genau hier beginnt die Entscheidung zwischen einem Local Secondary Index (LSI) und einem Global Secondary Index (GSI) , und wer sie falsch trifft, zahlt entweder mit Flexibilitätsverlust oder mit unerwartetem Durchsatz-Overhead. TL;DR: LSI vs. GSI auf einen Blick Merkmal LSI GSI Erstellungszeitpunkt Nur bei Tabellenerstellung Jederzeit Partition Key Identisch mit Basistabelle Beliebiges Attribut Sort Key Anderes Attribut als Basistabelle Beliebiges Attribut (optional) Konsistenzmodell Strongly consistent möglich Nur eventually consistent Kapazität Teilt RCU/WCU mit Basistabelle Eigene RCU/WCU (Provisioned) oder On-Demand Datenmenge pro Partition Key Max. 10 GB Unbegrenzt Max. Anzahl pro Tabelle 5 20 (Standard...

IAM Groups vs. direkte Policy-Zuweisung: Warum Gruppen die bessere Wahl sind

Wer zum ersten Mal mehrere IAM-Benutzer anlegt, greift oft zur schnellsten Lösung: Policy direkt an den User hängen, fertig. Das funktioniert — bis das Team auf zehn Personen wächst, jemand die Abteilung wechselt, oder ein Audit zeigt, dass drei Entwickler versehentlich Admin-Rechte haben. IAM Groups lösen genau dieses operationale Problem, und dieser Beitrag erklärt warum. TL;DR: IAM Groups vs. direkte Policy-Zuweisung Kriterium Direkte Policy-Zuweisung IAM Groups Skalierbarkeit Jeder neue User braucht manuelle Policy-Zuweisung User zur Gruppe hinzufügen — Policies gelten sofort Konsistenz Fehleranfällig bei vielen Usern Einheitliche Berechtigungen für alle Gruppenmitglieder Auditierbarkeit Berechtigungen verteilt über viele User-Objekte Zentrale Policy-Definition an der Gruppe Offboarding ...