So wählen Sie AWS-Services zum Ausführen Ihrer App aus

Die Auswahl des AWS-Dienstes zum Ausführen Ihrer Anwendung kann für einige von uns etwas verwirrend sein. Selbst für erfahrene Personen kann es einige Zeit dauern, bis wir eine Entscheidung treffen. Es kann für Sie verwirrend sein, weil Sie neu bei AWS sind und immer noch das Was und Warum der verschiedenen AWS-Services verstehen müssen, oder Sie haben vielleicht Erfahrung damit, aber es dauert länger, weil Sie keinen Prozess haben, der es einfach macht Auswahl. Lassen Sie mich Ihnen zeigen, wie ich das mache und welchen Prozess ich befolge.

Während des Auswahlprozesses, welcher Dienst zum Ausführen einer Anwendung verwendet werden soll, versuche ich, die folgenden Fragen zu beantworten:

Frage 1: Wie viel Kontrolle benötige ich?

Bei der Beantwortung dieser Frage entscheide ich, worüber ich die Kontrolle haben möchte und welche ich der Verantwortung bei AWS überlassen möchte. Ich entscheide, ob ich steuern möchte, auf welchem ​​Betriebssystem (OS) es läuft, wie das Netzwerk konfiguriert ist, der Server, der Anwendungscode und seine Konfiguration. Aber mit mehr Kontrolle geht auch große Verantwortung einher. Wenn ich beispielsweise die Kontrolle über das Betriebssystem habe, bin ich dafür verantwortlich, es zu aktualisieren, zu sichern und zu konfigurieren, was dem öffentlichen Netzwerk zugänglich gemacht wird. Die verschiedenen Cloud-Computing-Optionen geben Ihnen unterschiedliche Kontrolle und Verantwortung. Schauen wir uns diese Optionen an und was wir steuern können:

Option 1: Infrastructure as a Service (IaaS):

Die IaaS-Computing-Option bietet Ihnen ein Höchstmaß an Flexibilität und Verwaltungskontrolle über Ihre IT-Ressourcen. Es bietet Zugriff auf Netzwerkfunktionen, Computer (virtuell oder auf dedizierter Hardware) und Datenspeicherplatz. Verwenden Sie diese Option, wenn Sie die Kontrolle über die Bare Metals behalten möchten, auf denen Ihre App ausgeführt wird, und die gesamte Verantwortung für Folgendes übernehmen möchten:

  1. Anwendungskonfiguration
  2. Anwendungscode
  3. Serverwartung und Konfiguration
  4. Betriebssystem
  5. Virenschutz
  6. Netzwerk

Als IaaS verfügbare Dienste sind:

  1. Elastic Compute Cloud (EC2)-Instanzen
  2. Amazon Lichtsegel
  3. EC2-Containerdienst (ECS)
  4. Elastic Container Service für Kubernetes (EKS)
  5. AWS-Batch

Option 2: Plattform als Service (PaaS)

PaaS-Computing macht es Ihnen überflüssig, die zugrunde liegende Infrastruktur (Hardware, Betriebssystem, Netzwerk) zu verwalten. Damit konzentrieren Sie sich auf das Erstellen und Ausführen von Anwendungen und nicht auf den Aufbau und die Wartung der zugrunde liegenden Infrastruktur und Dienste. Verwenden Sie diese Option, wenn Sie Folgendes steuern möchten:

  1. Anwendungskonfiguration
  2. Anwendungscode
  3. Serverkonfiguration

während andere Verantwortlichkeiten AWS überlassen werden. Als PaaS verfügbare Dienste sind:

  1. Elastische Bohnenranke
  2. Mobiler Hub

Option 3: Funktionen als Service (FaaS)

FaaS-Computing bietet Ihnen die Möglichkeit, einfach Code bereitzustellen, die zum Ausführen des Codes erforderliche Konfiguration festzulegen und es AWS zu überlassen, die zugrunde liegende Infrastruktur und das Netzwerk zu handhaben. Verwenden Sie diese Option, wenn Sie nur Ihre Anwendungslogik und -konfiguration steuern möchten. Ein weiterer wichtiger Grund für die Verwendung ist es, wenn die Anwendung gelegentlich ausgeführt wird. Das heißt, im Gegensatz zu den Anwendungen in den anderen Arten von Cloud-Service-Angeboten nicht immer aktiv und aktiv. In dieser Kategorie verfügbare Dienste sind:

  1. Lambda
  2. Schrittfunktionen

Frage 2: Wie wird die App genutzt?

Eine weitere zu berücksichtigende Frage ist, wie die Anwendung verwendet wird.

  1. Wird es immer eingeschaltet sein und ausgeführt werden und auf die Verarbeitung von Eingaben/Daten warten? Selbst wenn keine Eingaben/Daten/Anforderungen eingehen, bleibt es einfach im Leerlauf und verbraucht Serverressourcen und Infrastruktur.

  2. Läuft es nur bei Bedarf? In diesem Fall wird die Anwendung gestartet, wenn sie eine Anfrage oder Daten zu verarbeiten hat, und gestoppt, wenn sie abgeschlossen ist.

Ob mein Anwendungsnutzungsmodell die Frage erfüllt 1, dann muss ich das klassische Modell zum Ausführen von Anwendungen verwenden. Ich könnte EC2-Instances, ECS oder Elastic Beanstalk verwenden. Wenn es Frage erfüllt 2ich werde mit Lambda laufen.

Manchmal möchten wir Hintergrundaufgaben ausführen. Sie variieren je nachdem, wie lange sie laufen und wie viele Ressourcen sie benötigen, um gut zu laufen. Wenn ich mit diesem Problem konfrontiert werde, werde ich mich zwischen der Verwendung von Lambda und Batch entscheiden. Ich entscheide mich für Lambda, wenn eine Aufgabe innerhalb der maximal zulässigen Verarbeitungszeit für Lambda ausgeführt werden muss und nicht mehr Ressourcen erfordert, als Lambda bereitstellen kann. wenn es das Gegenteil davon ist, werde ich mit Batch gehen.

Diese beiden Fragen helfen mir bei der Auswahl eines Services in AWS. Die folgende Tabelle zeigt Ihnen, wie Sie den Zweck erreichen, indem Sie spezifischere Fragen beantworten und wissen, welche Dienste die Kriterien erfüllen.

Auswählen eines IaaS-Produkts

ZielsetzungEC2ECSEXCharge
Verschieben Sie Ihre App in die Cloud✔️
Apps ohne Orchestrator✔️✔️
Apps mit Orchestrator✔️
Kurz laufende Aufgabe✔️
Lang andauernde und intensive Aufgabe✔️
Setzen Sie einen Monolithen ein✔️
Stellen Sie einen Microservice bereit✔️✔️✔️✔️

Auswählen eines PaaS-Produkts

ZielsetzungElastische BohnenrankeMobiler HubLambdaSchrittfunktionen
Setzen Sie einen Monolithen ein✔️
Stellen Sie einen Microservice bereit✔️✔️
Web-App hosten✔️
Hosten Sie Ihre API✔️
Host-Backend für mobile Apps✔️

Auswählen eines FaaS-Produkts

ZielsetzungLambdaSchrittfunktionen
Kurz laufende Aufgabe✔️
Stellen Sie einen Microservice bereit✔️
Kann nur den für die Ausführung erforderlichen Code bereitstellen✔️
Automatisieren Sie einen Schritt eines Prozesses✔️
Automatisieren Sie einen kompletten Prozess✔️✔️

Die obigen Schritte sollen Sie dabei unterstützen, schneller Entscheidungen zu treffen, und ich hoffe, Sie finden sie hilfreich. Dies ist mein Prozess und wird sich wahrscheinlich in Zukunft ändern, aber ich werde versuchen, diesen Beitrag auf dem neuesten Stand zu halten. Ich habe einige Dienste in Bezug auf Daten/Speicherung ausgelassen, die ich in einem zukünftigen Beitrag vorstellen werde. Bitte hinterlassen Sie einen Kommentar, wenn Sie Ihre Gedanken teilen oder etwas korrigieren möchten, von dem Sie glauben, dass ich es falsch gemacht habe. Ich habe einige dieser Schritte von meinem Freund gelernt Barry Luijbregts

Gerne können Sie mich per E-Mail erreichen unter p.mbanugo@yahoo.com. Viel Spaß beim Programmieren 💃

Similar Posts

Leave a Reply

Your email address will not be published.