Zum Inhalt

M106 Block03 – Ganze Theorie - Link 🔗

Ingesting and Preparing Data


Dokumentation AWS Modul 5

Securing and Scaling the Data Pipeline


1. Einführung

In Modul 5 geht es darum, wie man Datenpipelines in AWS sichert und skaliert.
Eine Datenpipeline verarbeitet Datenströme zwischen verschiedenen Systemen, z. B. vom Dateneingang bis zur Analyse oder Speicherung.
Hierbei geht es um zwei Kernziele:

  • Sicherheit: Schutz der Daten und Systeme.

  • Skalierbarkeit: Sicherstellen, dass die Pipeline effizient wächst, wenn mehr Daten verarbeitet werden.


2. Datenpipelines – Grundlagen

Eine typische Datenpipeline in AWS besteht aus mehreren Stufen:

  1. Datenerfassung (z. B. durch IoT-Geräte, Apps, Webseiten)

  2. Datenübertragung (z. B. mit Amazon Kinesis oder AWS IoT Core)

  3. Datenspeicherung (z. B. Amazon S3, Amazon RDS, DynamoDB)

  4. Datenverarbeitung (z. B. AWS Lambda, Amazon EMR)

  5. Datenanalyse (z. B. Amazon Redshift, Athena)

Jede Stufe muss sicher und skalierbar gestaltet werden.


3. Sicherheit in der Datenpipeline

Sicherheitsmaßnahmen umfassen:

3.1. Identitäts- und Zugriffsmanagement (IAM)

  • IAM-Policies: Definieren, wer auf welche Ressourcen zugreifen darf.

  • Least Privilege Principle: Benutzer und Services erhalten nur die minimal nötigen Berechtigungen.

  • IAM Roles: Services (z. B. EC2, Lambda) greifen über Rollen auf Ressourcen zu.

Beispiel:
Eine Lambda-Funktion hat eine IAM-Rolle, die nur Leserechte auf ein bestimmtes S3-Bucket besitzt.


3.2. Verschlüsselung

  • At Rest: Speicherung verschlüsselter Daten z. B. in S3, RDS, DynamoDB.

  • In Transit: Verschlüsselung der Datenübertragung mit TLS (Transport Layer Security).

  • Managed Keys: Nutzung von AWS KMS (Key Management Service) zur zentralen Verwaltung der Schlüssel.

Beispiel:
S3-Buckets sind so konfiguriert, dass sie nur verschlüsselte Objekte akzeptieren.


3.3. Netzwerksicherheit

  • VPC (Virtual Private Cloud): Logische Isolation von Ressourcen.

  • Security Groups: Virtuelle Firewalls für EC2, RDS, etc.

  • Network ACLs: Kontrollieren den eingehenden und ausgehenden Traffic auf Subnetzebene.

  • Private Endpoints: Ermöglichen privaten Zugriff auf AWS-Services ohne das öffentliche Internet zu nutzen.


3.4. Überwachung und Auditing

  • AWS CloudTrail: Protokolliert API-Aufrufe und Aktivitäten in deinem AWS-Konto.

  • Amazon CloudWatch: Überwachung von Metriken, Logs und Events.

  • AWS Config: Überwacht Konfigurationen und Änderungen von Ressourcen.


4. Skalierung der Datenpipeline

Skalierbarkeit ist wichtig, um große Datenmengen effizient zu verarbeiten.

4.1. Skalierbare Datenerfassung

  • Amazon Kinesis Data Streams: Echtzeit-Datenströme erfassen und verteilen.

  • AWS IoT Core: Für IoT-Datenströme.

  • Amazon S3: Automatisch skalierbarer Objektspeicher.


4.2. Skalierbare Datenverarbeitung

  • AWS Lambda: Serverlose Funktionen, die automatisch nach Bedarf skalieren.

  • Amazon EMR (Elastic MapReduce): Skalierbare Big Data-Verarbeitung (Hadoop, Spark).


4.3. Skalierbare Speicherung

  • Amazon S3: Praktisch unbegrenzter Objektspeicher.

  • Amazon DynamoDB: Hochskalierbare NoSQL-Datenbank.

  • Amazon RDS: Skalierbare relationale Datenbanken (mit Read Replicas und Multi-AZ).


4.4. Skalierbare Analyse

  • Amazon Redshift: Data Warehousing und Analyse großer Datenmengen.

  • Amazon Athena: SQL-Abfragen direkt auf S3-Daten ausführen, ohne Infrastruktur.


5. Typische Architekturbeispiele

Hier eine vereinfachte Darstellung einer gesicherten und skalierbaren Pipeline:

Schritt AWS Service Maßnahmen
Datenerfassung Kinesis / IoT Core Verschlüsselung, IAM-Policies
Zwischenspeicherung Amazon S3 Server-side Encryption, Bucket Policies
Verarbeitung AWS Lambda / EMR Rollenbasierter Zugriff, automatische Skalierung
Speicherung DynamoDB / RDS Backup, Verschlüsselung, Skalierbarkeit
Analyse Redshift / Athena Zugriffskontrolle, Verschlüsselung

6. Best Practices

  • Prinzip der geringsten Berechtigung für IAM umsetzen.

  • Automatische Verschlüsselung überall aktivieren.

  • Monitoring und Logging nicht vergessen.

  • Fehlerbehandlung in der Pipeline einbauen (Retry-Mechanismen).

  • Auto-Scaling nutzen, wo möglich.

  • Disaster Recovery-Strategien planen (Snapshots, Backups).


Dokumentation AWS Modul 6:


1. Einführung

Modul 6 behandelt, wie man Daten erfasst (ingests) und für Analysen aufbereitet (prepares).
Dies ist ein wesentlicher Schritt, weil Rohdaten oft unstrukturiert oder fehlerhaft sind und zunächst verarbeitet werden müssen, bevor sie wertvolle Erkenntnisse liefern können.

Die Hauptthemen in diesem Modul sind:

  • Datenerfassung (Ingestion)

  • Datenaufbereitung (Preparation)

  • AWS Services und Tools für diese Aufgaben


2. Datenerfassung (Ingesting Data)

2.1. Was bedeutet Datenerfassung?

Datenerfassung ist der Prozess, bei dem Daten aus unterschiedlichen Quellen aufgenommen und in eine Datenpipeline oder einen Speicher geladen werden.

Typische Datenquellen:

  • Sensoren (IoT-Geräte)

  • Logs (z. B. Anwendungslogs)

  • Datenbanken

  • Streaming-Daten (z. B. von Web-Apps)

  • Manuelle Eingaben


2.2. Arten von Datenerfassung

Art der Ingestion Beschreibung Beispiel
Batch Ingestion Große Datenmengen werden periodisch gesammelt und geladen. Einmal täglich Logs von Servern in S3 laden.
Real-Time / Streaming Ingestion Daten werden kontinuierlich erfasst und verarbeitet. Klickdaten von Webseiten in Echtzeit an Kinesis senden.

2.3. AWS Services für Datenerfassung

AWS Service Beschreibung
Amazon Kinesis Data Streams Echtzeit-Streaming von großen Datenmengen.
AWS IoT Core Erfassung von Daten von IoT-Geräten.
AWS DataSync Schnelle Übertragung großer Datenmengen zu S3, EFS oder FSx.
Amazon S3 Speicherung von Rohdaten als erste Station.
AWS Glue DataBrew Importieren und Vorbereiten von Daten per No-Code Oberfläche.
AWS Snowball Physisches Gerät zum Übertragen von sehr großen Datenmengen (Offline-Ingestion).

3. Datenaufbereitung (Preparing Data)

3.1. Was bedeutet Datenaufbereitung?

Bevor Daten analysiert werden können, müssen sie:

  • Bereinigt werden (z. B. fehlerhafte oder unvollständige Einträge entfernen)

  • Strukturiert werden (z. B. in Tabellenform gebracht)

  • Angereichert werden (z. B. mit zusätzlichen Daten kombiniert)


3.2. Typische Aufgaben der Datenaufbereitung

Aufgabe Erklärung
Bereinigung Entfernen fehlerhafter, duplizierter oder fehlender Daten.
Transformation Umwandeln von Formaten (z. B. JSON in CSV), Typanpassungen.
Normalisierung Vereinheitlichung von Daten (z. B. Datum-Zeit-Formate angleichen).
Anreicherung Hinzufügen zusätzlicher Felder oder Datenquellen.
Filtern Entfernen irrelevanter Daten vor der Analyse.

3.3. AWS Services für Datenaufbereitung

AWS Service Beschreibung
AWS Glue Serverloser ETL-Service (Extract, Transform, Load) für große Datenmengen.
AWS Glue DataBrew Visuelles Tool zur Aufbereitung und Transformation ohne Programmierung.
Amazon EMR Skalierbare Plattform für Big-Data-Verarbeitung (z. B. Spark, Hadoop).
AWS Lambda Kleine Transformationen oder Validierungen "on the fly" durchführen.

4. Typische Architektur für Ingestion und Preparation

Hier ein vereinfachter Ablauf:

  1. Datenerfassung:

  2. Sensoren, Anwendungen oder Datenbanken liefern Daten an Kinesis oder direkt an S3.

  3. Zwischenspeicherung:

  4. Rohdaten werden in einem S3-Bucket abgelegt (oft ein "Landing Zone"-Bucket).

  5. Datenaufbereitung:

  6. AWS Glue Crawlers erkennen die Struktur der Daten.

  7. Mit Glue ETL Jobs oder Glue DataBrew werden die Daten bereinigt, transformiert und für Analysen vorbereitet.

  8. Speicherung für Analyse:

  9. Die vorbereiteten Daten werden z. B. in Amazon Redshift oder einem anderen Analyse-Tool gespeichert.


5. Sicherheit und Best Practices bei Ingestion und Preparation

  • IAM-Policies: Strenge Zugriffskontrollen auf Ingestion- und Verarbeitungskomponenten.

  • Verschlüsselung: Daten während Übertragung (TLS) und Speicherung (z. B. S3 Server-side Encryption) verschlüsseln.

  • Fehlerbehandlung: Fehlerhafte Daten sollten isoliert und separat behandelt werden ("Dead Letter Queues" in Kinesis oder Lambda).

  • Monitoring:

  • CloudWatch Alarme auf Ingestion- und Transformation-Jobs setzen.

  • Logging aktivieren (AWS Glue Logging, Kinesis Logging).

  • Automatisierung: So viel wie möglich automatisieren (z. B. mit Event-getriggerter Verarbeitung per Lambda oder EventBridge).


6. Beispiele

Beispiel 1: Batch-Datenpipeline

  • Tägliche Uploads von CRM-Daten nach Amazon S3.

  • AWS Glue verarbeitet die Daten jede Nacht und speichert sie in Amazon Redshift für BI-Analysen.

Beispiel 2: Streaming-Datenpipeline

  • Nutzerinteraktionen (z. B. Klicks auf einer Webseite) werden in Echtzeit über Amazon Kinesis erfasst.

  • Lambda-Funktionen transformieren die Events und speichern sie direkt strukturiert in S3 oder DynamoDB.