Einfachste Möglichkeit, die Wartungsseite während der Ausfallzeit der EC2-Instanz anzuzeigen

7

Ich muss einige Wartungsarbeiten durchführen, die Ausfallzeiten meines EC2-Produktionsservers beinhalten. Ich möchte in der Zwischenzeit eine benutzerfreundliche Wartungsseite bereitstellen.

Die einfachste Lösung, die ich finden konnte, besteht darin, eine minimalistische AMI für Mikroinstanzen zu verwenden, die statische Seite dort einzurichten und unsere öffentliche elastische IP-Adresse dieser Instanz während der Wartung zuzuordnen.

Die Fragen sind:

(1) Gibt es einen einfacheren Weg (dh eine statische Seite von s3 bereitzustellen, ohne dass eine EC2-Instanz erforderlich ist)? [Bitte beachten Sie, dass ich keine Verzögerungen beim Zwischenspeichern von DNS möchte. Ich bevorzuge einen sofortigen Wechsel wie bei der ec2-Associate-Adresse.]

(2) Wenn es keinen einfacheren Weg gibt, mit welchem ​​AMI zu beginnen (damit es auf einer Mikroinstanz ausgeführt werden kann und vorzugsweise von EBS bootet, so dass dies leicht beibehalten werden kann)?


Aktualisieren:

Für die Aufzeichnung ist hier die Lösung, die ich verwendet habe:

  1. Erstellen Sie eine Mikroinstanz aus einem beliebigen Ami auf http://alestic.com/.
  2. Installieren Sie nginx: sudo aptitude install nginx
  3. Jetzt können Sie es mit starten / stoppen / neu starten sudo /etc/init.d/nginx start/stop/restart
  4. Bearbeiten Sie die Nginx-Konfigurationsdatei sudo pico /etc/nginx/nginx.conf
  5. Fügen Sie anstelle der include /etc/...Zeile Folgendes ein:
server {   root        /var/www/nginx-default;

  location / {
       if (-f $document_root/error503.html) {
            return 503;
       }   }

 # error 503 redirect to error503.html
    error_page 503 @maintenance;
    location @maintenance {
          rewrite ^(.*)$ /error503.html break;
    }
  1. Erstellen Sie die Seite (der Ordner sollte bereits vorhanden sein) /var/www/nginx-default/error503.htmlund entfernen Sie die /var/www/nginx-default/index.html.
  2. Nginx starten / neu starten sudo /etc/init.d/nginx start
  3. Jetzt sind Sie fertig und können ec2-associate-address YOUR-IP -i YOUR-INSTANCE-IDIhre öffentliche IP-Adresse zwischen dem Produktionsserver und dieser Wartungsinstanz-Serving-Instanz zuordnen.
Michal
quelle

Antworten:

9

Der einzig schnellste Weg ist der, den Sie bereits erwähnt haben, der einen kleinen Ami macht und eine statische Wartungsseite darauf hostet, indem Sie ihm eine elastische IP hinzufügen. Es gibt keine feste Regel, welche AMI in diesem Szenario verwendet werden soll. Jede Mikroinstanz von Debian / RHEL / Ubuntu würde gut funktionieren.

Farhan
quelle
1

Ich denke, wenn Sie bereits eine zweite Amazon EC2-Instanz haben, müssen Sie nur die an die Zielinstanz angehängte Elastic IP umleiten und sie nur für die Ausfallzeit an die zweite VM anhängen. Ein neuer vhost mit einer Umleitungsregel, die alle Anforderungen an diese Wartungsseite abfängt, sollte den Trick ausführen.

cyril.hazotte
quelle
Der Punkt war, dass ich nur eine Instanz hatte und nach einer schnellen Möglichkeit suchte, die zweite zu erstellen (die der Wartungsseite dient). Da keine einfachere Lösung bereitgestellt wurde, habe ich meine Schritte zum Einrichten des zweiten Computers im Update eingefügt. Das elastische IP-Mapping ist der allerletzte Schritt des gesamten Verfahrens.
Michal