AlexOakenman - Fotolia
Wie man Athena für das AWS-Troubleshooting verwendet
Athena analysiert die in Amazon S3 gespeicherten Daten. AWS-Administratoren finden hier eine Vielzahl von Einsatzdaten für Fehlersuche und Optimierung.
Die Überwachung des reibungslosen Betriebs ist entscheidend für die erfolgreiche Ausführung von AWS-Anwendungen. Cloud-Benutzer müssen Probleme verhindern oder schnell erkennen und beheben können. AWS CloudWatch stellt zum Beispiel für die Überwachung Funktionen wie Metriken, Alarme, Dashboards und Logs Insights für Protokolldaten zur Verfügung.
AWS-Benutzer sollten jedoch auch Amazon Athena in Betracht ziehen. Athena analysiert Daten, wie zum Beispiel Protokolle, und hilft dabei, potenzielle Probleme in Anwendungen und den Systemen, die sie unterstützen, zu identifizieren und zu beheben sowie auf Verbesserungsmöglichkeiten hinzuweisen.
Amazon Athena ist ein serverloser Abfragedienst, der Analysen der in Amazon S3 gespeicherten Daten unter Verwendung der SQL-Syntax bereitstellt. Viele AWS-Dienste speichern Protokollinformationen in S3 oder erstellen Protokolldaten, die Administratoren nach S3 exportieren.
Die folgenden Beispiele geben Ihnen eine Vorstellung davon, wie Sie mit Athena den AWS-Betrieb optimieren.
Athena-Anwendungsfälle im AWS-Betrieb
Um sich mit der Fehlersuche und Optimierung von Anwendungen zu befassen, lassen Sie uns einige spezifische Arten von Protokolldaten aufschlüsseln, die sich mit Athena analysieren lassen.
Die Bereitstellung von Webanwendungen mit CloudFront analysieren. CloudFront ist ein AWS Content Delivery Network Service. Die Bereitstellung von CloudFront zwischen Endanwendern und Webservern kann die Leistung von Webanwendungen steigern, da Inhalte an rund 200 Edge-Positionen zwischengespeichert werden, um die Nähe zu den Endbenutzern zu gewährleisten und die Latenzzeiten zu reduzieren.
Für jeden Request in CloudFront speichern Protokolle Informationen wie Datum, Uhrzeit, übertragene Bytes, URL, Client-IP, Antwortcode, Cache-Hit und -Miss und benötigte Zeit ab. CloudFront speichert optional Zugriffsprotokolle in S3.
Man kann die SQL-Abfragen von Athena verwenden, um CloudFront-Fehler in einem bestimmten Zeitraum zu analysieren oder die gesamten Bytes an die Endanwender zurückzugeben. Der Service kann auch die Quell-IPs für Anfragen an die Anwendung analysieren, die wichtigsten URLs für einen bestimmten Zeitraum abrufen und eine Zusammenfassung des eingehenden Datenverkehrs und der Antworten erstellen.
Während Athena all diese Daten sammelt, liegt es am AWS-Team, Optimierungsmaßnahmen umzusetzen oder ein Problem mit der Webanwendung zu lösen.
Mit AWS Elastic Load Balancer für reibungslose Abläufe sorgen. AWS-Anwender können Protokolle für jeden Load Balancer aktivieren: Application, Network oder Classic. Anfragen an den Load Balancer werden in Dateien aufgezeichnet, die in S3 gespeichert sind. Elastic Load Balancer protokolliert Felder wie Zeitstempel, Zielverarbeitungszeit, Response Status, empfangene und gesendete Bytes und Domäne.
Über die Athena-Datenanalyse lassen sich Load-Balancer-Fehler in einem bestimmten Zeitraum identifizieren. Zum Beispiel lässt sich zeigen, welche Transaktionen die höchste Latenzzeit haben.
Aktivieren Sie außerdem die Überwachung durch CloudTrail-Protokolle. CloudTrail verfolgt die Aktivitäten in einem AWS-Konto mit der Aufzeichnung der API-Aufrufe, wer sie wann gemacht hat und woher sie kommen. Konfigurieren Sie CloudTrail, um Zugriffsprotokolle in S3 zu speichern und mit Athena zu analysieren.
Mit Athena-Abfragen lässt sich herausfinden, wer einen bestimmten API-Aufruf zu einem bestimmten Zeitpunkt ausgeführt hat, oder es lässt sich die vollständige Liste der API-Aufrufe eines bestimmten Identity and Access Management (IAM) -Benutzers aufrufen. Das Gleiche gilt, wenn Sie alle AWS IAM-Entitäten kennen müssen, die eine bestimmte AWS API aufgerufen haben.
Mit diesen CloudTrail-Daten unterstützt Athena bei der Überwachung von Sicherheits- und Compliance-Aktivitäten.
Private-Cloud-Operationen mit VPC Flow Logs verbessern. Amazon Virtual Private Cloud (VPC) ist ein isoliertes Netzwerk, in dem Sie AWS-Ressourcen starten können. VPC Flow Logs können den gesamten Datenverkehr in und aus einem VPC aufzeichnen.
Analysieren Sie diese Protokolle, um Traffic-Muster zu verstehen oder bestimmte Probleme zu beheben. Versuchen Sie, VPC Flow Logs nach der IP-Adresse eines Servers abzufragen, der zum Beispiel Daten von einer bestimmten EC2-Instanz erhalten hat. Für ein breiteres Verständnis der Traffic-Muster kann man mit Athena ein- und ausgehenden Traffic innerhalb eines Zeitraums untersuchen.
Mit Pinpoint Analytics die Leistung mobiler Apps verfolgen. AWS Pinpoint Analytics zeichnet Ereignisse in mobilen Anwendungen auf. Pinpoint Analytics lässt sich mit Kinesis Firehose integrieren und kann Ereignisdaten in S3 veröffentlichen.
Mit Athena lassen sich Pinpoint-Analytics-Daten analysieren, die zeigen, wann eine bestimmte mobile Session begonnen und beendet wurde, oder bestimmte Ereignistypen zählen, zum Beispiel Klicks in ein GUI-Element.
Filter verwenden, um CloudWatch Logs für Serverinformationen einzubinden. Wenn Sie bereits Serverprotokolle in CloudWatch Logs exportieren, können Sie diese auch in S3 mit Athena speichern und analysieren. Konfigurieren Sie einen CloudWatch Logs Subscription Filter, der eingehende Protokolldaten an Kinesis Firehose sendet, oder verwenden Sie die AWS Management Console, API oder Befehlszeilenschnittstelle, um einen Export an S3 auszulösen.
Diese Konfiguration stellt sicher, dass Protokolle von Webservern wie Apache und Nginx für die Datenanalyse zur Verfügung stehen, um eine direkte Fehlersuche und Optimierung zu ermöglichen.
Bestimmen Sie von Fall zu Fall, ob Athena die beste Option für die Analyse der AWS-Protokolle ist. Wenn zum Beispiel Protokolldaten bereits in CloudWatch Logs verfügbar sind, könnte CloudWatch Logs Insights eine bessere Alternative sein.
Wie man Athena verwendet
Um mit Athena zu arbeiten, verbinden Sie sich mit dem Dienst über die Management Console, eine API oder einen Java-Database-Connectivity-Treiber. Definieren Sie dann das Schema, wählen Sie die relevanten S3-Daten aus und führen Sie die entsprechende Suche durch.
Im Gegensatz zu einer herkömmlichen Datenbanktabelle erstellt Athena keinen neuen Datenspeicher. Sie verweist nur auf einen Speicherort in S3 und definiert ein Tabellenschema, das beim Ausführen von Abfragen verwendet werden soll. Man kann eine Athena-Tabelle löschen, ohne die zugrunde liegenden Daten in S3 zu löschen.
Es gibt drei Möglichkeiten, eine Athena-Tabelle zu erstellen:
- Führen Sie die Anweisung CREATE EXTERNAL TABLE aus, in der Sie alle Felder, deren Typen und die Position der Daten in S3 angeben. Diese Option bietet die größte Kontrolle – mit Unterstützung für Codeversionierung und Automatisierungsschritten.
- Wählen Sie die Option Create table from S3 bucket in der Athena-Konsole, bei der Sie den Speicherort in S3 für die Daten und alle relevanten Felder und deren Typ über eine GUI angeben. Sie müssen die Feldstruktur, die Typen und die Position der Dateien in S3 kennen. Diese Option eignet sich für Benutzer, die mit der Anweisung CREATE EXTERNAL TABLE nicht vertraut sind. Die Option setzt eine Reihe manueller Schritte voraus.
- Erstellen Sie einen Athena-Tabelle mit einem AWS Glue Crawler. Ein Crawler ist ein automatisierter Prozess, der von Glue verwaltet wird. Es scannt die in S3 gespeicherten Daten und extrahiert Metadaten wie Feldstruktur und Dateitypen. Ein Crawler kann auf die Log-Dateidaten in S3 zugreifen und automatisch die Feldstruktur erkennen, um eine Athena-Tabelle zu erstellen. Berücksichtigen Sie diese Option, wenn Sie mit der Feldstruktur in den Datendateien nicht vertraut sind und die Erstellung der Athena-Tabelle an einen externen Prozess übertragen möchten.
Optimale Athena-Ergebnisse erzielen
Um die Leistung zu verbessern, verwenden Sie Partitionen in Athena-Tabellen. Verwenden Sie die Anweisung PARTITIONED BY, wenn Sie eine Tabelle erstellen, oder erstellen Sie eine Tabelle, die auf einen Ordner in S3 verweist, der einer Teilmenge von Daten entspricht, wie zum Beispiel einem bestimmten Monat oder Tag. Dies hält die Kosten von Athena niedrig – diese betragen fünf Dollar pro 1 TB gescannter Daten.
Führen Sie SQL-Anweisungen aus, um die virtuellen Tabellen abzufragen. Sie können Athena-Tabellen auch als Datenquellen für Amazon QuickSight-Dashboards verwenden und AWS-Protokolldaten für weitere Analysen visualisieren.
Um die besten Ergebnisse zu erzielen, stellen Sie sicher, dass die Protokolldaten in S3 ein einheitliches Format über alle Zeilen hinweg haben, da Athena sonst Fehler bei der Abfrage von Datendateien anzeigt. Dies ist vor allem ein Problem beim Export von benutzerdefinierten Anwendungsprotokollen in S3 und kein Problem für native AWS-Protokolle für Dienste wie CloudFront, Elastic Load Balancer, CloudTrail, VPC und Pinpoint.