Json- und CSV-Commandline Tools

Mal wieder neue Tools, die wir bisher auch noch nicht auf dem Schirm hatten … die kann man sehr gut brauchen, wenn man mit der neuen Amazon AWS Commandline arbeitet …

 

Beispiele und weitere Infos dazu auch hier:

http://jeroenjanssens.com/2013/09/19/seven-command-line-tools-for-data-science.html

Amazon S3 und Amazon Glacier im Zusammenspiel

Seit dem 14.11.2012 ist nun die angekündigte Verbindung zwischen Amazon S3 und Amazon Glacier verfügbar. Beide zusammen sind ein unschlagbares Team …

Amazon S3 ist ein Cloud-Speicher und hat aufgrund der Redundanz über mehrere Availability-Zonen eine sehr hohe Verfügbarkeit von 99,999999999%, kostest 0,125 US$ pro GByte / Monat  und hat einen schnellen Lese- und Schreibzugriff über HTTPS. Kunden nutzen Amazon S3 in der Regel für die Ablage von Videos, Bildern oder Datensicherungen. Allerdings summieren sich die Kosten bei sehr grossen Datenmengen entsprechend und nicht alle Daten müssen stets sofort wieder im Lesezugriff sein.

Aus diesem Grund hat Amazon mit dem Dienst Amazon Glacier einen Cloud-Speicher für langfrist-Archive seit Sommer 2012 im Angebot. Auch Amazon Glacier hat aufgrund der Redundanz über mehrere Availability-Zonen eine sehr hohe Verfügbarkeit von 99,999999999%, kostet aber nur 0,011 US$ pro GByte / Monat, also ungefähr ein 1/10 von Amazon S3. Der wesentliche Unterschied ist, das Daten nach Amazon Glacier über HTTPS schnell eingestellt werden können, der Abruf der Daten von Amazon Glacier aber angefordert werden muss, anschließend wird innerhalb von 3-4 Stunden ein Download-Link zur Verfügung gestellt, das reduziert das Einsatzszenario wirklich nur auf Archiv-Daten.

(mehr …)

Amazon Glacier: Archiv Speicher für einen Penny pro GB pro Monat

Mit einem kleinen Paukenschlag hat Amazon AWS einen komplett neuen Service bereitgestellt: Amazon Glacier ist ein sehr kostengünstiger Archiv-Speicher in der Cloud. Hier die zusammengefassten Leistungsmerkmale:

  • Pro Gigabyte gespeicherter Daten verlangt Amazon je nach AWS-Region zwischen 1 und 1,2 US-Cent im Monat
  • Die Daten werden wie bei S3 multiredundant gespeichert, Amazon spricht von einer Verfügbarkeit von 99.999999999%
  • Innerhalb von Glacier sind die Daten mit 256-AES verschlüsselt, wobei Amazon die Schlüssel selbst verwaltet
  • Der Upload von Daten erfolgt über ein eigenes API bzw. über Tools von Drittherstellen wie z.B. http://fastglacier.com/, wie bei Amazon AWS üblich, ist der Traffic für eingehende Daten kostenlos
  • Der Abruf der Daten ist allerdings nicht wie bei S3 sofort möglich, sondern es muss ein Request für den Download erfolgen, innerhalb von 3-4 Stunden wird dann ein Download-Link zu den Daten bereitgestellt. Der Download kostet, sofern er ein definiertes Limit überschreitet extra Geld. Somit reduziert sich das Einsatzszenario von Glacier auf Daten, die langfristig dauerhaft archiviert werden müssen und nur gelegentlich abgerufen werden müssen.

Es existieren bereits einige Tools, die wie hier aufgelistet haben:

S3 als Laufwerk für EC2-Windows oder Linux mappen

S3 ist der zentrale Speicherdienst von Amazon AWS. S3 hat für den Kunden eine unlimitierte Größe, verfügt über ein Rechtemanagement, kann Objekte versionieren bzw. mit Verfallsdaten versehen und ist über mehrere Availibility-Zonen verteilt, so dass die Daten sehr sicher gespeichert sind.

Über ein eigenes API kann man in S3 Daten speichern und entsprechend abrufen oder über HTTP wieder herunterladen …  manchmal aber braucht man für eine vielleicht existierende Software den Lese- und Schreibzugriff auf S3 über einen Laufwerkszugriff … gücklicherweise gibt es hier sowohl für Windows als auch für Linux entsprechende Software, die dann z.B. direkt auf einer entsprechenden EC2-Instanz installiert werden kann. Hier eine aktuelle Aufstellung:

EBS-Volumes mit einem Windows-Script als Snapshot sichern

Um dieses Skript auszuführen, müssen die Bitnami Cloud Tools installiert sein. (siehe diesen Artikel). Anschließend erstellt man im Root Verzeichnis der Bitnami Cloud Tools eine AWS-Backup.bat Datei und fügt dort das folgende Skript ein:

@echo off

CALL "D:\AWS-BI~1\scripts\setenv.bat"
CALL "D:\AWS-BI~1\aws-setenv.bat"

:: Path for your AWS home directory
set AWS_HOME=D:\AWS-BI~1\
:: Hier wird der Endpunkt für die Region EU gesetzt.
set EC2_URL=https://ec2.eu-west-1.amazonaws.com:443

cd "D:\AWS-BitNami"

:: Set today's day of week parameter, German Date with . otherwise /
for /F "tokens=1 delims=. " %%a in ('DATE/T') do set dateDayOfMonth=%%a

:: Create a file with all attached volumes
ec2-describe-volumes|find /i "attached">%AWS_HOME%\Volumes.txt

:: Create a file with old scheduled snapshots using same day of week parameter
ec2-describe-snapshots|find /i "%dateDOW%: Daily Backup for">%AWS_HOME%\SnapshotsDOM.txt

:: Create a file of instances filtering on the instance tag Name
ec2-describe-instances|find /i "TAG"|find /i "Name">%AWS_HOME%\InstanceNames.txt

:: Create snapshots of all attached volumes
for /F "tokens=2,3" %%d IN (%AWS_HOME%\Volumes.txt) do for /F "tokens=3,5" %%a IN (%AWS_HOME%\InstanceNames.txt) do if %%a EQU %%e ec2-create-snapshot %%d -d "%dateDayOfMonth%: Daily Backup for %%b (VolID:%%d InstID:%%e)"

::Delete old Snapshots listet in SnapshotsDOM.txt
for /F "tokens=2" %%i in (%AWS_HOME%\SnapshotsDOM.txt) do ec2-delete-snapshot %%i

pause

Das ganze Skript basiert auf einer Vorlage von Mark Sehmer, ich habe nur ein paar Änderungen durchgeführt, damit es bei mir auch funktioniert.

Richtige Nutzung der Amazon AWS Command Line unter Einsatz von IAM

Um die Amazon AWS Command Line Tools (am besten zu nutzen über die Bitnami Cloud Tools, siehe diesen Artikel) nutzen zu können, muss man allerdings für die AWS Command Line Tools entsprechende Zertifikate hinterlegen, da die Authentifizierung der AWS Command Line Tools am entsprechenden Amazon AWS Account automatisiert über Zertifikate erfolgt.

In der Regel machen das die meisten Kunden, in dem sie sich mit dem Master Account User anmelden (das ist der User, der das entsprechende AWS Konto erstellt hat) und in der AWS Console rechts oben im Menü auf Security Credentials klicken.

  

Anschließend kann man sich dort im Bereich X.509 ein neues Zertifikat erstellen lassen und das Zertifikat und den Private Key herunterladen und diese entsprechend in den AWS Command Line Tools einbinden.

Diese beiden Dateien werden dann i.d.R. an die Programmierer und Administratoren verteilt und alle fangen an zu arbeiten. Funktioniert technisch prima, ist aber suboptimal … denn was passiert, wenn einer das Unternehmen verlässt … dann muss man eigentlich ein neues Zertifikat mit Private Key erstellen und wieder neu verteilen …

(mehr …)

Amazon AWS Command Line Tools

AWS Command Line oder nicht AWS Command Line … eine oft von unseren Kunden gestellte Frage …

Generell gilt erst mal folgende Faustformel:

  • 100% der Amazon AWS Möglichkeiten über alle Module gibt es nur über das WebService API der jeweiligen Module
  • 95% der Amazon AWS Möglichkeiten über alle Module gibt es über die Command Line der jeweiligen Module
  • 90% der Amazon AWS Möglichkeiten über alle Module gibt es über die AWS Console