Was ist AutoScaling in AWS? - Wie funktioniert es? Verschiedene Komponenten

Inhaltsverzeichnis:

Anonim

Überblick über die automatische Skalierung in AWS

Die automatische Skalierung, auch als automatische Skalierung oder manchmal auch automatische Skalierung bezeichnet, ist eine Technik im Cloud-Computing, bei der die Menge der Ressourcen, die für eine Serverfarm erforderlich sind, um effizient zu arbeiten, in der Regel gemessen wird, wenn die Anzahl der aktiven Server nach Bedarf vergrößert oder verkleinert wird auf der Last auf der gesamten Serverfarm. Wir können dies eng mit dem Lastenausgleich in Verbindung bringen. Typischerweise ist Autoscaling eine Art Automatisierung für einen manuellen Prozess. Nehmen wir ein Szenario, in dem Sie eine E-Commerce-Website haben, die Kunden effizient betreut und sich weder über Verzögerungen beschwert noch Benutzer aufgrund der Leistung der Website verliert. Als das Geschäft wuchs, haben Sie Marketing betrieben und die Leute wurden sich von Tag zu Tag mehr Ihrer Website bewusst. Auf der einen Seite haben Sie sich über die Zunahme des Geschäfts gefreut, aber Sie müssen auch sehen, dass die Website jedem Kunden dienen und nicht zurückbleiben soll. Angenommen, es können derzeit 100 Kunden gleichzeitig bedient werden. Wenn 100 Benutzer auf Ihrer Website angemeldet sind, können alle reibungslos navigieren und einkaufen. Dies alles wird über eine feste Konfiguration der angenommenen t2.micro-Instanz von AWS ausgeführt. Jetzt, da eine Website immer beliebter wird, erwarten Sie 250 bis 300 Benutzer gleichzeitig. Natürlich benötigen Sie zwei weitere Server, auf denen Sie den Datenverkehr aufteilen und dann alle ordnungsgemäß navigieren können.

Die manuelle Arbeit, bei der berechnet wird, wie viel Ressourcen Sie benötigen, um Ihre Kunden zu bedienen und das System basierend auf der Auslastung Ihrer Serverfarm und der Aufteilung des Datenverkehrs zu skalieren, wird für das oben beschriebene Szenario manuell ausgeführt. Wir können sagen, dass dies tatsächlich eine Skalierung ist, aber keine automatische Skalierung, da dies manuell erfolgt ist. Sie können jedoch den Service der automatischen Skalierung mit einem Load Balancer in AWS verwenden, der die oben genannte Aufgabe automatisiert rechnen.

Wie funktioniert die automatische Skalierung in AWS?

In AWS sind mehrere Entitäten am Prozess der automatischen Skalierung beteiligt: ​​- Load Balancer und AMIs sind zwei Hauptkomponenten dieses Prozesses. Zunächst müssen Sie eine AMI Ihres aktuellen Servers erstellen. Vereinfacht gesagt besteht eine Vorlage Ihrer aktuellen Konfiguration aus allen Systemeinstellungen und der aktuellen Website. Dies können Sie im Abschnitt AMI von AWS tun. Wenn wir unserem obigen Szenario folgen und Sie die automatische Skalierung so konfiguriert haben, dass Ihr System für den zukünftigen Datenverkehr vorbereitet ist.

Wenn der Datenverkehr zunimmt, leitet der AWS-Dienst für die automatische Skalierung mithilfe von AMI Ihres Servers automatisch den Start einer anderen Instanz mit derselben Konfiguration Ihres aktuellen Servers ein.

Dann folgt der nächste Teil, in dem wir unseren Datenverkehr gleichmäßig auf die neu gestarteten Instanzen verteilen oder routen müssen. Dies würde vom Load Balancer in AWS erledigt. Load Balancer verteilt den Datenverkehr basierend auf der Last auf ein bestimmtes System. Sie führen einige interne Prozesse durch, um zu entscheiden, wohin der Datenverkehr weitergeleitet werden soll.

Das Erstellen einer neuen Instanz hängt ausschließlich von einer Reihe von Regeln ab, die vom Benutzer definiert werden, der die automatische Skalierung konfiguriert. Die Regeln können so einfach wie die CPU-Auslastung sein. Sie können beispielsweise die automatische Skalierung konfigurieren, wenn Ihre CPU-Auslastung 70 bis 80% erreicht. Anschließend möchten Sie eine neue Instanz starten, um den Datenverkehr zu verarbeiten. Es kann auch Regeln geben, die verkleinert werden müssen.

Komponenten in AWS automatisch skalieren

Es gibt viele Komponenten, die an der automatischen Skalierung beteiligt sind, von denen einige bereits zuvor genannt wurden, z. B. AMI, Load Balancer und andere.

Komponenten, die an der automatischen Skalierung beteiligt sind: -

  • AMI (Amazon Machine Image)
  • Lastenausgleicher
  • Schnappschuss
  • EC2-Instanz
  • Autoscaling-Gruppen

Es kann mehr Komponenten geben, aber Sie können sagen, dass die meisten der skalierbaren Komponenten Teil der automatischen Skalierung sein können.

1. AMI

Ein AMI ist ein ausführbares Image Ihrer EC2-Instanz, mit dem Sie neue Instanzen erstellen können. Zum Skalieren Ihrer Ressourcen benötigen Sie einen neuen Server, der die gesamte Konfiguration Ihrer Websites enthält und startbereit ist. In AWS können Sie dies durch AMIs erreichen, die nichts anderes als ein identisches ausführbares Image eines Systems sind, mit dem Sie neue Images erstellen können, und dasselbe würde von AWS im Falle der automatischen Skalierung zum Starten neuer Instanzen verwendet.

2. Load Balancer

Das Erstellen einer Instanz ist nur ein Teil der automatischen Skalierung. Außerdem müssen Sie den Datenverkehr auf die neuen Instanzen aufteilen, und diese Aufgabe wird vom Load Balancer übernommen. Ein Load Balancer kann den Datenverkehr über die Systeme, mit denen er verbunden ist, automatisch identifizieren und die Anforderungen auf der Grundlage von Regeln oder auf klassische Weise an die Instanz mit weniger Last umleiten. Der Prozess der Aufteilung des Datenverkehrs auf die Instanzen, den wir als Lastausgleich bezeichnen. Load Balancer werden verwendet, um die Zuverlässigkeit einer Anwendung und die Effizienz bei gleichzeitigen Benutzern zu erhöhen.

Ein Load Balancer spielt beim automatischen Skalieren eine sehr wichtige Rolle. Normalerweise gibt es zwei Arten von Load Balancern:

  • Klassischer Load Balancer.
  • Anwendungslastenausgleich.

Klassischer Load Balancer: - Der klassische Load Balancer verfolgt einen sehr einfachen Ansatz und verteilt den Datenverkehr gleichmäßig auf alle Instanzen. Es ist sehr einfach und heutzutage verwendet niemand einen klassischen Load Balancer. Es könnte eine gute Wahl für eine einfache Website mit statischen HTML-Seiten sein, aber in aktuellen Szenarien gibt es Hybrid-Apps oder Anwendungen mit mehreren Komponenten und hoher Rechenleistung, die zahlreiche Komponenten für eine bestimmte Arbeit enthalten.

Anwendungslastenausgleich

  • Der am häufigsten verwendete Typ von Load Balancer, bei dem der Datenverkehr auf der Grundlage bestimmter einfacher oder komplexer Regeln umgeleitet wird, die auf "Pfad" oder "Host" oder benutzerdefiniert basieren können.
  • Es wäre besser, wenn wir ein Szenario für eine Dokumentverarbeitungsanwendung annehmen würden.
  • Angenommen, Sie haben eine Anwendung, die auf einer Microservice-Architektur oder einer monolithischen Architektur basiert, und der Pfad „/ document“ ist spezifisch für einen Dokumentverarbeitungsdienst und andere Pfade „/ reports“, in denen nur die Berichte der Dokumente angezeigt werden, die verarbeitet werden, sowie Statistiken zu verarbeiteten Daten. Wir können eine Autoscaling-Gruppe für einen Server einrichten, der für die Verarbeitung der Dokumente verantwortlich ist, und für einen anderen, der nur die Berichte anzeigt.
  • In Application Load Balancer können Sie Regeln anhand eines Pfads konfigurieren und festlegen, der dann, wenn der Pfad mit "/ document" übereinstimmt, zu einer Autoscale-Gruppe für Server 1 umleitet oder, wenn er mit dem Pfad "/ reports" übereinstimmt, zu einer Autoscale-Gruppe für Server 2. Intern kann eine Gruppe mehrere Instanzen haben und die Last wird in klassischer Form also gleichmäßig auf die Instanzen verteilt.

3. Schnappschuss

Die Kopie der Daten auf Ihrer Festplatte ist in der Regel ein Abbild Ihres Speichers. Der typische Unterschied zwischen Snapshot und AMI ist ein ausführbares Image, mit dem eine neue Instanz erstellt werden kann. Snapshot ist jedoch nur eine Kopie der Daten, über die Sie in Ihrer Instanz verfügen. Wenn Sie über einen inkrementellen Snapshot Ihrer EC2-Instanz verfügen, ist der Snapshot eine Kopie der Blöcke, die seit dem vorherigen Snapshot geändert wurden.

4. EC2-Instanz (Elastic Compute Cloud)

Eine EC2-Instanz ist ein virtueller Server in der Elastic Compute Cloud (EC2) von Amazon, mit dem Ihre Anwendungen in der Amazon Web Services-Infrastruktur (AWS) bereitgestellt werden. Mit dem EC2-Dienst können Sie über eine SSH-Verbindung eine Verbindung zu einem virtuellen Server mit einem Authentifizierungsschlüssel herstellen und verschiedene Komponenten Ihrer Anwendung zusammen mit Ihrer Anwendung installieren.

5. Autoscaling-Gruppe

Es ist eine Gruppe von EC2-Instanzen und der Kern von Amazon EC2 AutoScaling. Wenn Sie eine AutoScaling-Gruppe erstellen, müssen Sie Informationen zu den Subnetzen und eine anfängliche Anzahl von Instanzen angeben, mit denen Sie beginnen möchten.

Fazit

Aus den obigen Inhalten haben wir eine gute Vorstellung davon, was Autoscaling ist und wie wichtig es in der heutigen Welt ist.

  • Wenn wir sehen, steigen die Anforderungen an Technologie und Benutzer von Tag zu Tag und auch die Erwartungen an die schnelle und effiziente Anwendung.
  • Eine großartige Anwendung ist schnell, bietet eine gute Benutzererfahrung und erledigt die Dinge, für die sie erstellt wurde. Um dies zu erreichen, benötigen Sie ein sehr robustes Backend und einen Technologie-Stack.
  • Nachdem Sie im Geschäft sind und es ein Erfolg ist, wird Ihre Benutzerbasis sehr wahrscheinlich zunehmen und es wird Situationen geben, in denen gleichzeitige Benutzer behandelt werden müssen, wenn Sie eine automatische Skalierung benötigen, um die Skalierung entsprechend den Situationen vorzunehmen, um Ihren Benutzern eine nahtlose Erfahrung zu ermöglichen.

Aus meiner Sicht ist die Skalierung ein sehr wichtiger Aspekt in der heutigen Welt, und heute oder morgen müssen wir dies tun. Entscheiden Sie sich für die automatische AWS-Skalierung und skalieren Sie Ihre Produkte.

Empfohlene Artikel

Dies ist eine Anleitung zu Was ist AutoScaling in AWS? Hier werden Definition, Funktionsweise und verschiedene Komponenten der automatischen Skalierung in AWS erläutert. Sie können auch den folgenden Artikel lesen, um mehr zu erfahren -

  1. Was ist AWS RedShift?
  2. Was ist StringBuilder in C #
  3. Komplette Anleitung zur Funktionsprüfung
  4. Was ist Backend-Entwickler?
  5. AWS Storage Services