Ich arbeite an einem Webdienst, der auf EC2 gehostet wird und abhängig von der Auslastung eine unterschiedliche Anzahl von Instanzen ausführen muss. Wir haben den Basisdienst eingerichtet und laufen, aber eines der Probleme, mit denen wir zu kämpfen haben, ist die Zeit, die für die Bereitstellung und den Start einer Windows-Instanz erforderlich ist (wir verwenden einige Drittanbieter-Tools, die nur unter Windows ausgeführt werden). Ich habe gesehen, dass dies zwischen 10 Minuten und erstaunlichen 45 Minuten dauert.
Hat jemand Tipps, wie der Start einer EC2-Instanz beschleunigt werden kann? Da die AMIs für Windows-Server im Vergleich zu Linux-AMIs beispielsweise groß sind, frage ich mich, ob möglicherweise sichergestellt werden soll, dass sich der S3-Bucket mit dem AMI in derselben Zone befindet, in der die Instanz gestartet wird, was vermutlich der Fall ist Beschleunigen Sie die Bereitstellung der neuen Instanz.
quelle
Die Amazon Windows-Instanzen werden beim Start neu gestartet, da die Standardkonfiguration des Windows-Dienstes "EC2 Config" darin besteht, Ihren Host in den internen DNS-Namen der Instanz umzubenennen. Das Umbenennen von Hosts erfordert einen Neustart unter Windows. Wenn Sie den internen DNS-Namen Ihrer Instanz nicht verwenden müssen, können Sie die Funktion SetComputerName deaktivieren. Windows-Instanzen haben außerdem den Vorteil, dass Sie die Startlaufwerke, auf denen Sie möglicherweise Ihre Konfiguration bereits gebündelt haben, nicht erneut initialisieren müssen, um beim Starten der Instanz etwas mehr Zeit zu sparen. All dies ist über den EC2 Windows-Konfigurationsdienst möglich.
Windows-Konfigurationsdienst: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html
Bei kleinen Windows-Instanzen dauert der Start normalerweise 15 bis 18 Minuten (größere Instanzen sind schneller). Abhängig von Ihren Anforderungen können Sie möglicherweise Ihre gesamte Software im AMI bündeln und alles in diesem Zeitraum starten und ausführen lassen. Ich verstehe die Vorbehalte, nicht alles in einem AMI zu bündeln, aber es könnte die Verbesserung der Startzeit wert sein, Produktions-AMIs mit allem, was darin gebündelt ist, zu haben. Halten Sie die Erstellungsskripte getrennt, wenn Sie dies in Ihren Erstellungsumgebungen wünschen.
Außerdem hatte Amazon jetzt EBS-Root-Volumes im Gegensatz zu Instance-Store-Root-Volumes veröffentlicht. Kleine Windows-Images, die auf einem EBS-Volume ausgeführt werden, werden nach fast 20 Minuten in fast 5 Minuten hochgefahren. Außerdem müssen Sie nicht beenden - Sie können sie anhalten / starten -, je nach Einrichtung kann dies in einigen Startskripten einige Minuten länger dauern.
Das grundlegende Anpassen Ihres Windows EC2-Konfigurationsdienstes, Ihres AMI und möglicherweise die Verwendung eines EBS-Startvolumes sollte die Startzeiten auf fast 5 Minuten reduzieren. Sie können den Sysprep, der beim Start einer ec2-Instanz ausgeführt wird, abhängig von Ihrer App vermeiden, insbesondere für Entwicklungszwecke. Ein nicht syspreppiertes m1.large-Image, das eine Änderung des Hostnamens beim Start vermeidet, kann in ungefähr 2 Minuten gestartet werden, was überhaupt nicht schlecht ist.
Soweit ich weiß, ist dies derzeit das Beste, was Sie mit Windows unter Amazon EC2 tun können, aber das ist wirklich nicht schlecht. Wenn Sie in der Lage sind, basierend auf durchschnittlichen Nutzungsmustern in der Nähe von 10 Minuten in die Zukunft zu prognostizieren, sollten Sie in der Lage sein, zusätzliche Instanzen hochzufahren und die zusätzliche Last zu bewältigen.
quelle
Haben Sie ein minimales System, das Ihnen dabei helfen könnte, so viel wie möglich in EBS zu behalten? Oder vielleicht einen Apache-Ansatz wählen und einen oder zwei in Reserve laufen lassen?
quelle
Wir sind auf genau dieses Problem gestoßen, aber auf sehr ernste Weise - unser neues Startup erweitert Amazon EC2 in eine Virtual Lab-Umgebung (Mehrbenutzer, Richtlinien, Freigabe usw.) und musste daher die Startzeit von beschleunigen Windows-Maschinen. Unsere größte Entscheidung war, nur EBS-basierte Volumes in unserer Anwendung zu unterstützen, da dies die einzigen sind, die in 5-10 Minuten gestartet werden können. In unseren Tests haben wir festgestellt, dass die Startzeiten von Instancespeichern sehr unterschiedlich sind und manchmal sehr viel Zeit in Anspruch nehmen, was sie für uns unbrauchbar macht.
Simon @ LabSlice Virtual Lab Management auf EC2
quelle