Meine Firma verschiebt unser Hosting zu Amazon und ich arbeite mich durch alle Migrationsprobleme. Der Übergang von physischer Hardware zu temporären virtuellen Maschinen war eine ziemliche Herausforderung.
Eine der letzten Herausforderungen besteht darin, herauszufinden, wie wir unsere EBS und Snapshots verwalten. Da es derzeit keine Möglichkeit gibt, sie beschreibend zu benennen oder ihnen Bedeutung zu verleihen, frage ich mich, wie Administratoren ihre Ressourcen verwalten. Bei einem oder zwei Servern ist das kein allzu großes Problem, aber wie handhaben diejenigen, die mehrere Server betreiben, die Dinge? Verwenden alle Tools von Drittanbietern (wie RightScale/Scalr), wenn sie mehr als eine Handvoll Server haben? Oder pflegen Sie Wikis oder andere ergänzende Dokumentationen?
Antwort1
Ich verwende ec2-consistent-snapshot (http://alestic.com/2009/09/ec2-consistent-snapshot), um meine Snapshots zu erstellen (auf RHEL/CentOS-basiertem Amazon Linux) - es ist in Perl geschrieben und verwendet die API direkt. Sie geben die Volumes an, von denen Sie einen Snapshot erstellen möchten, und können eine Beschreibung hinzufügen.
(In der AWS-Konsole können Sie Tags hinzufügen, wenn Sie eine feinere Steuerung benötigen, für ein einfaches Backup ist dies jedoch möglicherweise nicht erforderlich und wird vom oben verwendeten Perl-Modul (Net::Amazon::EC2) noch nicht unterstützt.)
Das obige Skript löscht keine Snapshots (erstellt nur neue - konsistent (d. h. es kann die Festplatte/Datenbank vor dem Snapshot einfrieren). Da es recht häufig verwendet wird und ich kein kompatibles Perl-Skript zum Löschen alter Snapshots finden konnte, habe ich mein eigenes geschrieben (http://www.thatsgeeky.com/2011/06/rotating-ebs-snapshots-ec2-prune-snapshots/). Es erledigt die Aufgabe (Großvater-Vater-Sohn-Rotation) gut und verwendet dieselben Abhängigkeiten und Parameter wie das obige Skript.
Natürlich sind beide so eingestellt, dass sie über Cron ausgeführt werden.
(Theoretisch sollte es einfach genug sein, einige ähnliche Skripte (es gibt beispielsweise welche, die in PHP und Ruby geschrieben sind) an eine Datenbank anzuschließen und Ihr eigenes Protokoll der aufgenommenen Datenträger und Snapshots zu pflegen – jeder Snapshot hat eine eindeutige ID, und solange Sie diese aufzeichnen, sollte jede weitere interne Organisation problemlos möglich sein. [Für Sicherungszwecke reichen jedoch häufig die Datenträger-ID und das Datum aus])
Verwenden Sie nicht die CLI-Tools – sie sind in Java geschrieben und im Vergleich zu direkten API-Implementierungen lächerlich langsam.
Antwort2
Nach und nach fügt Amazon alle erforderlichen Funktionen hinzu, um eine effektive Verwaltung zu gewährleisten, die erforderlich ist, wenn Amazon für den Unternehmensmarkt attraktiv sein will. Es wurden Tags hinzugefügt und es werden Verbesserungen vorgenommen, die es Benutzern ermöglichen, nur auf bestimmte Funktionen zuzugreifen. In Zukunft werden sicherlich auch Skripting und Bereitstellung übernommen. Ich füge diese Funktionen meinem kostenlosen Tool ElastDream hinzu.
Antwort3
Wenn Sie kein eigenes Tool zum Indexieren von EBS- und Snapshot-IDs anhand von Textbeschriftungen schreiben möchten, habe ich festgestellt, dass die Verwendung eines kostenlosenRightScaleDas Konto und die Zuweisung von Spitznamen ist die beste Möglichkeit, unsere EBS-Volumes und Snapshots zu verwalten.
Ich persönlich denke, dass die Unfähigkeit, einer EC2-Instanz, einem AMI oder einem Volume eine leicht zu merkende Bezeichnung zuzuweisen, eine große Lücke im aktuellen Angebot von Amazon darstellt – für mich ist das einfach eine Selbstverständlichkeit.
Antwort4
ElasticFox ist sicherlich eines der bequemsten Tools zur (manuellen) Verwaltung von EC2. Aber der wichtigste Teil ist: Erstellen Sie regelmäßig ein Image Ihrer Instanzen. Richten Sie eine automatische Initialisierung ein, sobald eine neue Instanz gestartet wird: Partitionieren und mounten Sie die temporären Laufwerke. Mounten Sie das EBS-Volume, sobald es verfügbar ist. Stellen Sie Dateien und Datenbanken entweder von EBS, einem gemeinsam genutzten Speicher oder S3 wieder her. Starten Sie die Dienste (MySQL, Apache, Tomcat, was auch immer).