2013-06-30 5 views
13

Ich muss eine Protokolldatei in AWS S3 (oder einem anderen AWS-Dienst, der hier helfen kann) erstellen. AFAIU Es gibt keine Möglichkeit, eine Zeile an eine vorhandene Protokolldatei in S3 anzuhängen. Das bedeutet, dass ich jedes Mal, wenn eine neue Nachricht kommt, das gesamte Protokoll abrufen und erneut senden muss oder dass ich pro Nachricht ein neues Objekt erstellen muss. Die letztere Option ist beim Abrufen von Daten kompliziert.An eine Protokolldatei in S3 (oder einem anderen AWS-Dienst) anhängen

Ich habe viele Log-Nachrichten und es ist wichtig, sie nicht zu verlieren, so dass es keine Option ist, sie in meinem Serverspeicher zu puffern und ab und zu an S3 zu senden.

Welcher AWS-Dienst wäre meine beste Option (auch hinsichtlich der Kosteneinsparung).

Antwort

17

Was Sie suchen, heißt EBS (Elastic Block Store).

Sie können ein EBS-Laufwerk an einen beliebigen Server anhängen und sich dort anmelden. Wenn Ihr Server stirbt, ist die EBS-Festplatte noch vorhanden und Sie können später auf die Daten zugreifen.

Noch besser, erstellen Sie einfach einen zentralen Syslog-Server (mit einem EBS-Laufwerk) und lassen Sie alle Ihre (zustandslosen) App-Server ihre Protokolle dorthin senden.

Wenn Ihr EBS-Laufwerk voll ist, archivieren Sie den Tag/die Woche/etc in S3-Logs. Dadurch können Sie ziemlich große Dateien in S3 speichern (und sogar komprimieren, wenn Sie möchten).

0

Der einfachste Weg, dies zu tun ist auf der Festplatte zu loggen und dann rotieren und versenden die Protokolle in einem Intervall, das für Sie arbeitet.

Dies kann etwas komplexer werden, wenn Sie Spot-Instanzen oder instanzbasierte Instanzen sind.

5

AWS SimpleDB tun würde, was Sie wollen:

http://aws.amazon.com/simpledb/usecases_logging/

Da Amazon SimpleDB Sie die Arbeit vollständig auszulagern ermöglicht erforderlich, um eine Produktionsdatenbank laufen, viele Entwickler finden es ein ideal, niedrig -touch Datenspeicher für die Protokollierung von Informationen über Bedingungen oder Ereignisse, Statusaktualisierungen, wiederkehrende Aktivitäten, Workflow-Prozesse, oder Geräte- und Anwendungsstatus. Amazon SimpleDB können Sie kosteneffektiv „gesetzt und vergessen“, um diese Datenprotokolle und nutzen sie für diverse Zwecke, wie zum Beispiel:

Überwachung oder Verfolgung Metering Trend der Business-Analyse Revision Archiv oder der Einhaltung von Vorschriften Anwendungsbeispiele sind:

Speichern von Server-Logs zentral den Raum, den sie für eine spätere Analyse Prüfungszugriffseinträge oder Konfigurationsänderungen für Anwendungen oder Netzwerkgeräte auf jedem laufenden Server Logging operativen Kennzahlen oder die Ergebnisse der laufenden Leistungstests verbrauchen zu reduzieren Erfassung und Überwachung Umgebungsbedingungen (Temperatur, Druckpegel, Feuchtigkeit, etc.) an verschiedenen Standorten und Programmierung Warnungen für besondere Bedingungen Protokollierung und Verfolgung von Geolocation-Informationen über Objekte oder Prozessstatus für Aktivitäten in einem Workflow Mehrere Attribute von Amazon SimpleDB machen es zu einem attraktive Datenspeicher für Datenprotokolle:

Central, mit hohen Verfügbarkeit - Wenn Ihre Datenprotokolle waren zuvor in mehreren Geräten/Objekte, Anwendungen lokal gefangen zu sein, oder Prozess Silos, werden Sie den Vorteil der Lage, genießen, Zugriff auf Ihre Daten zentral an einem Ort in der Cloud. Darüber hinaus repliziert Amazon SimpleDB automatisch und geo-redundant Ihre Daten, um eine hohe Verfügbarkeit von zu gewährleisten. Dies bedeutet, dass Sie im Gegensatz zu einer zentralen On-Premise-Lösung keine einzige Fehlerquelle mit Amazon SimpleDB erstellen und Ihre Daten bei Bedarf zur Verfügung stehen. Alle Daten können über Web-Service-Anfragen mit einer Lösung gespeichert werden und dann von jedem Gerät zugegriffen werden.Zero Administration - Sie speichern Ihre Daten Elemente mit einfachen Web-Service-Anforderungen und Amazon Web Services dauert Pflege des Rests. Setzen Sie es und vergessen Sie es Art des Dienstes bedeutet Sie verbringen keine Zeit für die Datenbankverwaltung, um zu speichern und Datenprotokolle zu verwalten.

Kostengünstig - Amazon SimpleDB berechnet günstige Preise, um zu speichern und Ihre Datenprotokolle abzufragen. Da Sie nur für die Ressourcen bezahlen, die Sie verbrauchen, müssen Sie keine eigene Kapazitätsplanung durchführen oder sich um die Datenbankbelastung kümmern. Der Service antwortet einfach auf Anfrage Volumen, wie es kommt und geht, Sie nur für die tatsächlichen Ressourcen verbraucht. Um mehr zu erfahren über Amazon Si

1

AWS keine gute Lösung im Moment für die Protokollierung, aber es gibt ein paar anderen Cloud-Dienste auf dem Markt, die zu sammeln und organisieren, Protokolle, einschließlich papertrailapp.com und loggly.com.

1

Was Sie suchen, ist mit S3 möglich. S3 muss nicht über die vollständige Datei verfügen, um mit dem Speichern von Daten zu beginnen. Sie können den mehrteiligen Upload verwenden, um Blöcke (5-MB-Blöcke) gleichzeitig zu speichern. Sobald Sie fertig sind, sagen Sie einen Tageslauf, können Sie den letzten Block senden und den mehrteiligen Upload schließen. und fange am nächsten Tag an zu loggen.

S3 ermöglicht bis zu 10.000 Teile. Wenn Sie also eine Teilgröße von 5MiB wählen, können Sie dynamische Dateien mit bis zu 50GiB hochladen. Sollte für die meisten Anwendungsfälle ausreichen.

Initiieren S3 Multipart Upload. Sammeln Sie Daten in einen Puffer, bis dieser Puffer die untere Chunk-Größenbeschränkung (5 MB) von S3 erreicht. Generieren Sie MD5-Prüfsumme, während Sie den Puffer aufbauen. Laden Sie diesen Puffer als Part hoch, speichern Sie den ETag. Sobald Sie EOF Ihrer Daten erreicht haben, laden Sie den letzten Chunk hoch (der kleiner als 5MiB sein kann). Schließen Sie den Multipart-Upload ab.

Dies ist eine bessere Lösung, da es Sie und EC2 Instance oder EBS Speicherkosten nicht kostet.

Verwandte Themen