AWS CloudFormation und hohe Verfügbarkeit mit ArcGIS for Server

Mithilfe einiger Funktionen von Amazon Web Services (AWS) CloudFormation können Sie bestimmte Vorteile durch hohe Verfügbarkeit erzielen, wenn Sie mit ArcGIS-Server unter AWS arbeiten.

Die Erfordernis dieser Methode setzt einige Hintergrundinformationen voraus. Zum Einstieg in ArcGIS for Server unter AWS verwenden Benutzer normalerweise ArcGIS Server Cloud Builder. Dies ist ein einfacher Assistent, mit dem Sie eine ArcGIS-Server-Site in der Amazon Elastic Compute Cloud (EC2) einrichten können. Die Ausgabe des Assistenten ist eine Site mit potenziell vielen Computern, die Aufträge auf alle Computer verteilen und die Peer-to-Peer-Architektur von ArcGIS Server 10.1 und 10.2 vollständig nutzen können. Neben Vorlagen, die zum Starten zusätzlicher Sites nach identischen Mustern verwendet werden können, bietet Cloud Builder ein Framework für die Erstellung von Sicherungen für die Site.

Die von Cloud Builder erstellte Architektur wird im folgenden Diagramm dargestellt.

Durch Cloud Builder gestartete ArcGIS-Server-Architektur

Neben vielen Vorteilen bringt die von Cloud Builder erstellte Site einige Nachteile mit sich, wenn es um hohe Verfügbarkeit geht. Wenn die GIS-Server-Instanz, die den Konfigurationsspeicher ausführt, verloren geht, kann die Site nicht verwendet werden. Zudem kann die Wiederherstellung einer Sicherung 30 Minuten oder länger dauern, was für einige Organisationen eine nicht akzeptable Ausfallzeit bedeuten kann.

Eine Alternative zur Vermeidung einiger dieser Probleme ist eine Silo-Architektur (unten dargestellt), bei der viele identische, aber unabhängige ArcGIS-Server-Sites unter einem Elastic Load Balancer (ELB) verbunden sind. Diese Architektur wurde ausschließlich mit ArcGIS for Server unter AWS vor Version 10.1 verwendet und kann weiterhin mit 10.1 und 10.2 verwendet werden, wenn Sie bereit sind, auf eine einfache Verwaltung und die Verteilung großer Aufträge (wie die Erstellung von Cache-Kacheln) auf mehrere Server, zu verzichten.

Einer der Hauptvorteile der Silo-Architektur besteht darin, dass sie ArcGIS-Server auch beim etwaigen Verlust von GIS-Server-Instanzen weiterhin ausführen können.

ArcGIS-Server-Silo-Architektur, die mit CloudFormation gestartet werden kann

Die Silo-Architektur kann nicht in Cloud Builder integriert werden: Sie müssen sie manuell mit der AWS Management Console oder APIs erstellen. Mit einigen Funktionen von Amazon CloudFormation kann die Silo-Architektur jedoch weitaus einfacher gestartet und aufrechterhalten werden als dies in der Vergangenheit der Fall war. CloudFormation stellt sicher, dass stets eine Mindestanzahl von Computern in der Site aufrechterhalten wird, sodass eine nahtlose Wiederherstellung möglich ist, wenn einer der Computer nicht mehr verfügbar ist.

In den restlichen Abschnitten dieses Themas wird die Einrichtung einer Silo-Architektur mit CloudFormation erläutert.

Verwenden von CloudFormation zum Erstellen der Silo-Architektur

Amazon CloudFormation ist ein Service zum Definieren von Architekturen für die von Ihnen verwendeten Amazon Web Services. Es ist ein Beispiel für "Infrastructure-as-Code", d. h. Sie schreiben Code, der als bestimmte Hardware-Infrastruktur in einer Cloud-Umgebung bereitgestellt werden kann. Im Fall von CloudFormation müssen Sie eine JSON (JavaScript Object Notation)-Vorlage verwenden, um einen Stack von Ressourcen zu definieren, die auf eine vorab definierte Weise miteinander arbeiten. In diesem Fall definiert die Vorlage die Silo-ArcGIS-Server-Sites und den Elastic Load Balancer, der sie zusammenfasst.

Kopieren und Überprüfen der Vorlagen

Schritte:
  1. Überprüfen Sie zunächst eine der folgenden Beispielvorlagen:
  2. Kopieren Sie den Vorlagencode in eine Textdatei, und speichern Sie sie.
  3. Überprüfen Sie die festgelegten JSON-Eigenschaften, und ändern Sie sie bei Bedarf.

    Es gibt eine Reihe von Eigenschaften im Parameterobjekt, die Sie beim Starten des Stacks festlegen können, beispielsweise die Anzahl und Typen von Instanzen, die zu der Site gehören, sowie die verwendete Amazon Machine Image (AMI). Andere Ressourcen wie die ELB (Elastic Load Balancer)-Einstellungen werden in die Vorlage geschrieben und können nur vom Autor der Vorlage geändert werden.

    Beachten Sie die Alarmeinstellungen für Skalierung und CloudWatch, die Trigger zum Hinzufügen und Entfernen von Computern aus der Site basierend auf Faktoren wie die Auslastung der CPU definieren. Sie können auch festlegen, wie viele Computer gleichzeitig aktualisiert werden sollen, wenn Sie Änderungen an der AMI vornehmen, wobei Sie immer eine verfügbare Instanz aufrechterhalten können.

  4. Neben den Elementen in dieser Vorlage können Sie eine LBCookieStickinessPolicy für den ELB integrieren, anhand derer festgelegt wird, ob Sticky-Sitzungen aktiviert werden sollen. Diese stellen sicher, dass die Anforderungen eines Benutzers für die Dauer der Sitzung an den gleichen GIS-Servercomputer weitergeleitet werden. Dies kann sich günstig auf das Arbeiten mit Features mit langer Laufzeit wie asynchrone Geoverarbeitungsaufgaben auswirken.
  5. Sie können auch definieren, welches SSL-Zertifikat auf den Stack angewendet werden soll. Laden Sie dazu die Zertifikate in AWS Identity and Access Management (IAM) hoch, und fügen Sie Code in die Vorlage ein, um die Einstellung SSLCertificateId für den ELB festzulegen.

Erstellen des Stacks

Nachdem Sie eine Vorlage ausgewählt haben, führen Sie die folgenden Schritte aus, um mithilfe der Silo-Architektur eine ArcGIS-Server-Site mit mehreren Computern zu starten.

Schritte:
  1. Starten Sie eine Instanz mit der AWS Management Console, indem Sie eine der von Esri bereitgestellten ArcGIS-Server-AMIs verwenden.
  2. Lizenzieren Sie ArcGIS-Server, und erstellen Sie eine Site auf der Instanz.
  3. Konfigurieren Sie die Instanz mit Ihren Services, Daten und Drittanbieteranwendungen, die Sie installieren möchten.
    AchtungAchtung:

    Wenn Sie über Karten-Services verfügen, die Sie nicht als Cache verwenden möchten, legen Sie die Eigenschaft supportedImageReturnType des Karten-Service auf MIME statt auf URL fest (damit der Benutzer beim Abrufen von Kartenbildern nicht zurück zum Stack oder möglicherweise zur falschen Instanz zurückgeleitet wird). Sie müssen die Service-Eigenschaften im ArcGIS Server Administrator Directory bearbeiten, um diese Einstellung anzupassen; sie ist in Manager nicht verfügbar.

  4. Speichern Sie eine AMI aus der Instanz. Alle aus dieser AMI erstellten Instanzen sind gleich. Jede stellt eine eigene ArcGIS-Server-Site mit eigenem Konfigurationsspeicher, eigenen Serververzeichnissen und Daten dar.
  5. Notieren Sie die AMI-ID, nachdem das AMI erstellt wurde. Diese wird benötigt, um den Stack zu erstellen.
  6. Klicken Sie in der AWS Management Console auf Services > CloudFormation, um die Seite CloudFormation Stacks zu öffnen.
  7. Klicken Sie auf Stack erstellen.
  8. Geben Sie einen Stack-Namen an.
  9. Wählen Sie +++Vorlagendatei hochladen aus, navigieren Sie zu einer der oben gespeicherten und geänderten Vorlagendateien, und klicken Sie auf Fortfahren.
  10. Legen Sie die folgenden Eigenschaften für den Stack fest:
    1. Ändern Sie die Eigenschaft AMI in die ID der AMI, die Sie in Schritt 3 erstellt haben.
    2. Ändern Sie MaxSize in die maximale Anzahl von Instanzen, die gleichzeitig in einem Stack enthalten sein sollen.
    3. Wenn Sie die VPC-Vorlage verwenden, legen Sie die Optionen für VPCId, Subnets und AZs (Verfügbarkeitszonen) entsprechend den gewünschten VPC-Umgebungseinstellungen fest.
    4. Passen Sie den InstanceType an, um die gewünschte Größe der Instanz anzugeben.
    5. Ändern Sie den KeyName in den Namen einer Ihrer Schlüsselpaare von Amazon. Fügen Sie nicht die Erweiterung ".pem" ein.
    6. Ändern Sie MinSize in die minimale Anzahl von Instanzen, die gleichzeitig in einem Stack enthalten sein sollen. Durch die Festlegung dieses Werts auf 2 oder höher wird der Verlust der Site verhindert, wenn ein Computer nicht mehr verfügbar ist. CloudFormation erstellt umgehend eine zweite Instanz, wenn nur eine gefunden wird.
  11. Klicken Sie auf Fortfahren.
  12. Fügen Sie Tags hinzu, um die Instanz einfach zu identifizieren, beispielsweise Schlüssel = Name und Wert = MyCloudFormation, und klicken Sie auf Fortfahren.
  13. Überprüfen Sie alle Parameter, und klicken Sie auf Fortfahren, wenn Sie den Stack erstellen möchten.

Der Stack wird gestartet. Nach einem kurzen Zeitraum kann über das folgende URL-Format auf ArcGIS-Server zugegriffen werden: http://<Elastic Load Balancer address>/arcgis/rest.

5/16/2014