Lösung 1:
Das Stoppen und Starten einer EBS-Boot-Instance ist dem einfachen Neustart der Instance sehr ähnlich, mit einigen Ausnahmen, die bemerkenswertesten sind:
-
Der Instanz wird eine neue interne IP-Adresse zugewiesen.
-
Der Instanz wird eine neue öffentliche IP-Adresse zugewiesen.
-
Wenn sich die Instanz nicht in einer VPC befindet, wird jede Elastic IP-Adresse von der Instanz getrennt.
-
Alle Daten auf flüchtigem Speicher (häufig unter /mnt) gehen verloren
Es gibt auch einige Auswirkungen auf die Abrechnung und Verfügbarkeit, die ich in diesem Artikel beschrieben habe:
Neustart vs. Stopp/Start der Amazon EC2-Instance
http://alestic.com/2011/09/ec2-reboot-stop-start
VPC-Instanzen haben ein etwas anderes Verhalten, einschließlich der Beibehaltung von Elastic IP-Adressen bis zum Stoppen/Starten.
Wenn Sie eine Instanz als Datenbankserver verwenden und sich mit der internen IP-Adresse (günstiger, schneller) mit ihr verbinden möchten und die Datenbankclients nach einem Stopp/Start nicht neu konfigurieren müssen, können Sie zuweisen eine Elastic IP-Adresse an die Instance und verwenden Sie den externen Elastic IP-DNS-Namen. Dies wird in die aktuelle interne IP-Adresse aufgelöst, nachdem Sie die Elastic IP-Adresse erneut mit der neu gestarteten Instance verknüpft haben, und Ihre Clients machen dort weiter, wo sie aufgehört haben.
Auf diesen Ansatz gehe ich in diesem Artikel näher ein:
Verwenden von Elastic IP zum Identifizieren interner Instances auf Amazon EC2
http://alestic.com/2009/06/ec2-elastic-ip-internal
Wie Sie erwartet haben, ist Stop/Start eine einfache Möglichkeit, die Hardware zu ändern, die Ihre Instanz antreibt. Ich habe darüber zusammen mit einigen Anweisungen und Warnungen in diesem Artikel geschrieben:
Verschieben einer EC2-Instance zu einem größeren (oder kleineren) Instance-Typ
http://alestic.com/2011/02/ec2-change-type
Für Ihre spezielle Situation würde ich empfehlen, der Instance eine Elastic IP-Adresse zuzuweisen und Ihr DNS so zu ändern, dass es auf die Elastic IP-Adresse verweist, indem Sie einen CNAME zum externen DNS-Namen verwenden. Sie können dies direkt nach dem Stopp/Start tun, oder Sie können es im Voraus tun, um sicherzustellen, dass alles vor dem Stopp/Start funktioniert.
Lösung 2:
Sieht also so aus, als ob Sie Elastic IP nicht verwenden, wie ich Ihren Informationen entnehmen kann.
Ich glaube, Sie müssen CNAME im DNS verwenden, um auf diese Instanz zu verweisen. Wenn Sie Ihre Maschine neu starten, dann dieser ec2-54-1-1-1.us-west-1.compute.amazonaws.com
Der DNS-Name ändert sich und Ihre Website funktioniert nicht mehr.
Viele interne IP-Adressen werden sich ebenfalls ändern, es sei denn, Sie verwenden VPC, was nicht der Fall ist.
Also, wenn ich Sie wäre, werde ich beim Neustart dieser Maschine sehr vorsichtig sein.
Was die Zeit betrifft, dauert es nicht länger als ein paar Minuten.
Auch wenn auf der DB-Instance irgendwelche iptables ausgeführt werden, die nur dieser internen IP erlauben, sich mit der DB zu verbinden, dann wird es auch nicht funktionieren, da sich Ihre interne IP ändert.
Seien Sie also vorsichtig, wenn Sie diese Instanz neu starten möchten, und denken Sie gründlich darüber nach.
Lösung 3:
Ihre interne IP/Ihrer interner Hostname ändert sich und Ihre Elastic IP wird getrennt (es sei denn, Sie befinden sich in einer VPC).
Ordnen Sie die Elastic IP nach dem Neustart der Instance erneut zu. Ich tue dies regelmäßig, um die Instanzgröße zu ändern, und Sie müssen nur mit ein paar Minuten Ausfallzeit rechnen.
Vergewissern Sie sich, dass Apache und alle anderen Dienste zum Starten eingestellt sind (chkconfig
wenn Sie Amazon Linux Ami verwenden).