Stellen Sie sicher, dass die Amazon EMR-Protokollierung bei Amazon S3 beim Start aktiviert ist - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stellen Sie sicher, dass die Amazon EMR-Protokollierung bei Amazon S3 beim Start aktiviert ist

Erstellt von Priyanka Chaudhary (AWS)

Umwelt: Produktion

Technologien: Analytik; Sicherheit, Identität, Compliance; Serverlos

Arbeitslast: Open Source

AWS-Dienste: Amazon EMR; Amazon S3; Amazon SNS; Amazon CloudWatch

Übersicht

Dieses Muster bietet eine Sicherheitskontrolle, die die Protokollierungskonfiguration für Amazon EMR-Cluster überwacht, die auf Amazon Web Services (AWS) ausgeführt werden.

Amazon EMR ist ein AWS-Tool für die Verarbeitung und Analyse großer Datenmengen. Amazon EMR bietet den erweiterbaren Service mit niedriger Konfiguration als Alternative zum Betrieb interner Cluster-Datenverarbeitung. Amazon EMR bietet zwei Arten von EMR-Clustern.

  • Transiente Amazon EMR-Cluster: Transiente Amazon EMR-Cluster werden automatisch heruntergefahren und es fallen keine Kosten mehr an, wenn die Verarbeitung abgeschlossen ist.

  • Persistente Amazon EMR-Cluster: Persistente Amazon EMR-Cluster werden weiterhin ausgeführt, nachdem der Datenverarbeitungsauftrag abgeschlossen ist.

Sowohl Amazon EMR als auch Hadoop erstellen Protokolldateien, die Aufschluss über den jeweiligen Status des Clusters geben. Standardmäßig werden diese auf den Master-Knoten im Verzeichnis /mnt/var/log/ geschrieben. Je nachdem, wie Sie den Cluster beim Start konfigurieren, können Sie diese Protokolle auch in Amazon Simple Storage Service (Amazon S3) speichern und sie über das grafische Debugging-Tool anzeigen. Beachten Sie, dass die Amazon S3 S3-Protokollierung nur angegeben werden kann, wenn der Cluster gestartet wird. Bei dieser Konfiguration werden alle 5 Minuten Protokolle vom primären Knoten an den Amazon S3 S3-Standort gesendet. Für transiente Cluster ist die Amazon S3 S3-Protokollierung wichtig, da die Cluster nach Abschluss der Verarbeitung verschwinden und diese Protokolldateien zum Debuggen fehlgeschlagener Jobs verwendet werden können.

Das Muster verwendet eine CloudFormation AWS-Vorlage, um eine Sicherheitskontrolle bereitzustellen, die API-Aufrufe überwacht und Amazon CloudWatch Events auf "" startetRunJobFlow. Der Trigger ruft AWS Lambda auf, das ein Python-Skript ausführt. Die Lambda-Funktion ruft die EMR-Cluster-ID aus der JSON-Eingabe des Ereignisses ab und sucht auch nach einer Amazon S3 S3-Protokoll-URI. Wenn kein Amazon S3 S3-URI gefunden wird, sendet die Lambda-Funktion eine Amazon Simple Notification Service (Amazon SNS) -Benachrichtigung, in der der EMR-Clustername, die Verstoßdetails, die AWS-Region, das AWS-Konto und der Lambda Amazon Resource Name (ARN), von dem die Benachrichtigung stammt, detailliert beschrieben werden.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives AWS-Konto

  • Ein S3-Bucket für die Lambda-Code-.zip-Datei

  • Eine E-Mail-Adresse, an die Sie die Benachrichtigung über den Verstoß erhalten möchten

Einschränkungen

  • Diese Detective Control ist regional und muss in den AWS-Regionen eingesetzt werden, die Sie überwachen möchten.

Produktversionen

  • Amazon EMR Version 4.8.0 und höher

Architektur

Zieltechnologie-Stack

  • Veranstaltung Amazon CloudWatch Events

  • Amazon EMR

  • Lambda-Funktion

  • S3-Bucket

  • Amazon SNS

Zielarchitektur

Workflow, um sicherzustellen, dass die Amazon EMR-Protokollierung bei Amazon S3 beim Start aktiviert ist.

Automatisierung und Skalierung

  • Wenn Sie AWS Organizations verwenden, können Sie AWS verwenden, CloudFormation StackSets um diese Vorlage in mehreren Konten bereitzustellen, die Sie überwachen möchten.

Tools

Tools

  • AWS CloudFormation — AWS CloudFormation unterstützt Sie bei der Modellierung und Einrichtung von AWS-Ressourcen mithilfe von Infrastructure as Code.

  • AWS Cloudwatch Events — AWS CloudWatch Events bietet einen Stream von Systemereignissen, die Änderungen an AWS-Ressourcen beschreiben, nahezu in Echtzeit.

  • Amazon EMR — Amazon EMR ist eine verwaltete Cluster-Plattform, die den Betrieb von Big-Data-Frameworks vereinfacht.

  • AWS Lambda — AWS Lambda unterstützt die Ausführung von Code ohne Bereitstellung oder Verwaltung von Servern. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde.

  • Amazon S3 — Amazon S3 ist eine Webservice-Schnittstelle, mit der Sie beliebige Datenmengen von überall im Internet speichern und abrufen können.

  • Amazon SNS — Amazon SNS ist ein Webservice, der die Zustellung oder den Versand von Nachrichten zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen, koordiniert und verwaltet.

Code

  • Eine ZIP-Datei des Projekts ist als Anhang verfügbar.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Definieren Sie den S3-Bucket.

Um die Lambda-Code-ZIP-Datei zu hosten, wählen oder erstellen Sie einen S3-Bucket mit einem eindeutigen Namen, der keine führenden Schrägstriche enthält. Ein S3-Bucket-Name ist weltweit eindeutig, und der Namespace wird von allen AWS-Konten gemeinsam genutzt. Ihr S3-Bucket muss sich in derselben AWS-Region befinden wie der Amazon EMR-Cluster, der bewertet wird.

Cloud-Architekt
AufgabeBeschreibungErforderliche Fähigkeiten

Laden Sie den Lambda-Code in den S3-Bucket hoch.

Laden Sie die Lambda-Code-ZIP-Datei, die im Abschnitt „Anlagen“ bereitgestellt wird, in den S3-Bucket hoch. Der S3-Bucket muss sich in derselben Region befinden wie der Amazon EMR-Cluster, der bewertet wird.

Cloud-Architekt
AufgabeBeschreibungErforderliche Fähigkeiten

Stellen Sie die CloudFormation AWS-Vorlage bereit.

Stellen Sie auf der CloudFormation AWS-Konsole, in derselben Region wie Ihr S3-Bucket, die CloudFormation AWS-Vorlage bereit, die als Anlage zu diesem Muster bereitgestellt wird. Geben Sie im nächsten Epic die Werte für die Parameter an. Weitere Informationen zur Bereitstellung von CloudFormation AWS-Vorlagen finden Sie im Abschnitt „Verwandte Ressourcen“.

Cloud-Architekt
AufgabeBeschreibungErforderliche Fähigkeiten

Nennen Sie den S3-Bucket.

Geben Sie den Namen des S3-Buckets ein, den Sie im ersten Epic erstellt haben.

Cloud-Architekt

Geben Sie den Amazon S3 S3-Schlüssel ein.

<file-name>Geben Sie den Speicherort der Lambda-Code-ZIP-Datei in Ihrem S3-Bucket ohne führende Schrägstriche an (z. B.<directory>/.zip).

Cloud-Architekt

Geben Sie eine E-Mail-Adresse an.

Geben Sie eine aktive E-Mail-Adresse an, um Amazon SNS SNS-Benachrichtigungen zu erhalten.

Cloud-Architekt

Definieren Sie die Protokollierungsebene.

Definieren Sie die Protokollierungsebene und die Häufigkeit für Ihre Lambda-Funktion. „Info“ bezeichnet detaillierte Informationsmeldungen über den Fortschritt der Anwendung. „Fehler“ bezeichnet Fehlerereignisse, die dazu führen könnten, dass die Anwendung weiterhin ausgeführt werden kann. „Warnung“ steht für potenziell schädliche Situationen.

Cloud-Architekt
AufgabeBeschreibungErforderliche Fähigkeiten

Bestätigen Sie das Abonnement.

Wenn die Vorlage erfolgreich bereitgestellt wurde, sendet sie eine Abonnement-E-Mail-Nachricht an die angegebene E-Mail-Adresse. Sie müssen dieses E-Mail-Abonnement bestätigen, um Benachrichtigungen über Verstöße zu erhalten.

Cloud-Architekt

Zugehörige Ressourcen

Anlagen

Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip