© Excellent backgrounds/Shutterstock.com
Java Magazin
Automatisches Skalieren in der Amazon Cloud

Automatisches Skalieren in der Amazon Cloud

Wer sich mit dem Thema Skalierbarkeit befasst, sieht sich meist mit zahlreichen Fragen konfrontiert: Wie muss ich meine Java-Anwendung entwickeln, damit diese skaliert? Welche Teile der Anwendung sollte ich auf einzelne Knoten verteilen, welche sollten dupliziert werden, welche aus Konsistenzgründen nur einmal instanziiert? Zunächst muss man aber wissen, wie man Knoten bzw. Ressourcen überhaupt dynamisch je nach Anforderungen bereitstellen und wieder herunterfahren kann. Häufig betrachtet ein Entwickler lediglich den Anwendungsaspekt. Die Infrastruktur ist aber keineswegs zu vernachlässigen, denn sie bildet die Basis für eine Anwendungsskalierung. Erfahren Sie, wie sich mithilfe von Amazon EC2 automatisiert Infrastrukturressourcen, d. h. Knoten anhand von Kriterien wie CPU-Last hinzu- bzw. abschalten lassen.

Steffen Heinzl, Niko Eder, Benjamin Schmeling


Schluss mit dem Cloud-Hype

Einer der interessantesten Aspekte von Cloud Comput­ing ist die Elastizität (rapid elasticity). Sie beschreibt die Fähigkeit, abhängig von der Last oder anderen Faktoren dynamisch Instanzen virtueller Maschinen hinzuzufügen bzw. wieder herunterzufahren. Amazon bietet in diesem Bereich verschiedene Dienste an, die eine Anwendung der elastischen Infrastruktur zulassen. Der grundlegende Dienst in diesem Bereich ist die Amazon Elastic Compute Cloud (EC2). EC2 ist ein Dienst, der es erlaubt, über eine Web-Service-Schnittstelle Instanzen von virtuellen Maschinen, so genannte Amazon Machine Images (AMI), zu starten und zu stoppen. Die AMIs können dabei entweder vorkonfiguriert, z. B. mit einem gängigen Betriebssystem (Abb. 1) und Webserver verwendet oder auch komplett selbst erstellt werden [1]. Weitere Vorteile von EC2 sind, dass man nur für die Ressourcen und Dienstleistungen bezahlen muss, die man tatsächlich gebraucht hat (Netzwerkverkehr, Instanzstunden etc.) und Anwendungen und Daten in verschiedene Rechenzentren auf der ganzen Welt verteilen und somit hochverfügbar anbieten kann. Geringere Latenzzeiten sind ein weiterer Vorteil, da das nahegelegenste Rechenzentrum die Anfragen eines Clients entgegennehmen kann und die Last auf die Rechenzentren aufgeteilt wird.

Abb. 1: Auswahl der verschiedenen AMI-Typen im Konfigurationsprozess einer Instanz

Um eine elastische Infrastruktur richtig nutzen zu können, muss die zu deployende Anwendung horizontal skalierbar sein, d. h. wenn man mehrere Instanzen der Anwendung verwendet, muss sich daraus eine schnellere Abarbeitung des Gesamtarbeitsvolumens ergeben. In der Regel ist das durch die Verteilung von Anfragen mittels eines Load Balancers möglich. Auch hierfür bietet Amazon EC2 bereits einen Dienst an: Elastic Load Balancing. Dadurch wird der eingehende Netzwerkverkehr auf die EC2-Instanzen verteilt.

Dieser Artikel dreht sich um einen weiteren Baustein, der für die Konfiguration einer skalierbaren Anwendung benötigt wird: automatisches Hoch- und Herunterskalieren. Diese Art der Skalierung wird über einen regelbasierten Ansatz konfiguriert und heißt bei Amazon Auto Scaling.

Ob nun mit oder ohne Load Balancer – mittels hinterlegter Regeln können zusätzliche Instanzen zur Bewältigung von Lastspitzen hinzugeschaltet werden. Für den Endnutzer ist das Zuschalten von Instanzen dabei völlig verborgen. Wird die zusätzliche Rechenleistung nicht mehr benötigt, so lassen sich die hinzugefügten Re...

Java Magazin
Automatisches Skalieren in der Amazon Cloud

Automatisches Skalieren in der Amazon Cloud

Wer sich mit dem Thema Skalierbarkeit befasst, sieht sich meist mit zahlreichen Fragen konfrontiert: Wie muss ich meine Java-Anwendung entwickeln, damit diese skaliert? Welche Teile der Anwendung sollte ich auf einzelne Knoten verteilen, welche sollten dupliziert werden, welche aus Konsistenzgründen nur einmal instanziiert? Zunächst muss man aber wissen, wie man Knoten bzw. Ressourcen überhaupt dynamisch je nach Anforderungen bereitstellen und wieder herunterfahren kann. Häufig betrachtet ein Entwickler lediglich den Anwendungsaspekt. Die Infrastruktur ist aber keineswegs zu vernachlässigen, denn sie bildet die Basis für eine Anwendungsskalierung. Erfahren Sie, wie sich mithilfe von Amazon EC2 automatisiert Infrastrukturressourcen, d. h. Knoten anhand von Kriterien wie CPU-Last hinzu- bzw. abschalten lassen.

Steffen Heinzl, Niko Eder, Benjamin Schmeling


Schluss mit dem Cloud-Hype

Einer der interessantesten Aspekte von Cloud Comput­ing ist die Elastizität (rapid elasticity). Sie beschreibt die Fähigkeit, abhängig von der Last oder anderen Faktoren dynamisch Instanzen virtueller Maschinen hinzuzufügen bzw. wieder herunterzufahren. Amazon bietet in diesem Bereich verschiedene Dienste an, die eine Anwendung der elastischen Infrastruktur zulassen. Der grundlegende Dienst in diesem Bereich ist die Amazon Elastic Compute Cloud (EC2). EC2 ist ein Dienst, der es erlaubt, über eine Web-Service-Schnittstelle Instanzen von virtuellen Maschinen, so genannte Amazon Machine Images (AMI), zu starten und zu stoppen. Die AMIs können dabei entweder vorkonfiguriert, z. B. mit einem gängigen Betriebssystem (Abb. 1) und Webserver verwendet oder auch komplett selbst erstellt werden [1]. Weitere Vorteile von EC2 sind, dass man nur für die Ressourcen und Dienstleistungen bezahlen muss, die man tatsächlich gebraucht hat (Netzwerkverkehr, Instanzstunden etc.) und Anwendungen und Daten in verschiedene Rechenzentren auf der ganzen Welt verteilen und somit hochverfügbar anbieten kann. Geringere Latenzzeiten sind ein weiterer Vorteil, da das nahegelegenste Rechenzentrum die Anfragen eines Clients entgegennehmen kann und die Last auf die Rechenzentren aufgeteilt wird.

Abb. 1: Auswahl der verschiedenen AMI-Typen im Konfigurationsprozess einer Instanz

Um eine elastische Infrastruktur richtig nutzen zu können, muss die zu deployende Anwendung horizontal skalierbar sein, d. h. wenn man mehrere Instanzen der Anwendung verwendet, muss sich daraus eine schnellere Abarbeitung des Gesamtarbeitsvolumens ergeben. In der Regel ist das durch die Verteilung von Anfragen mittels eines Load Balancers möglich. Auch hierfür bietet Amazon EC2 bereits einen Dienst an: Elastic Load Balancing. Dadurch wird der eingehende Netzwerkverkehr auf die EC2-Instanzen verteilt.

Dieser Artikel dreht sich um einen weiteren Baustein, der für die Konfiguration einer skalierbaren Anwendung benötigt wird: automatisches Hoch- und Herunterskalieren. Diese Art der Skalierung wird über einen regelbasierten Ansatz konfiguriert und heißt bei Amazon Auto Scaling.

Ob nun mit oder ohne Load Balancer – mittels hinterlegter Regeln können zusätzliche Instanzen zur Bewältigung von Lastspitzen hinzugeschaltet werden. Für den Endnutzer ist das Zuschalten von Instanzen dabei völlig verborgen. Wird die zusätzliche Rechenleistung nicht mehr benötigt, so lassen sich die hinzugefügten Re...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang