Teilen Sie eine monolithische Anwendung mit AWS Copilot, Amazon ECS, Docker und AWS Fargate in Microservices auf
TUTORIAL
Einführung
Übersicht
In diesem Tutorial werden Sie eine monolithische Node.js-Anwendung für einen Docker-Container bereitstellen und die Anwendung anschließend ohne Unterbrechungen in Microservices zerlegen. Die Node.js-Anwendung hostet ein einfaches Internetforum, in dem Benutzer Threads erstellen und untereinander Nachrichten austauschen können.
Warum ist das von Bedeutung?
Traditionelle monolithische Architekturen sind schwer skalierbar. Wenn die Codebasis einer Anwendung wächst, wird es im Laufe der Zeit immer schwerer, diese Codebasis zu aktualisieren und zu warten. Dies erschwert nicht nur die Einführung neuer Funktionen, Sprachen, Frameworks und Technologien, sondern schränkt auch Innovation und die Umsetzung neuer Ideen ein.
Innerhalb einer Microservices-Architektur wird jede Anwendungskomponente als ihr eigener Service ausgeführt und kommuniziert mit anderen Services über eine klar definierte API. Microservices werden auf der Grundlage der Möglichkeiten eines Unternehmens entwickelt. Jeder Service führt eine bestimmte Funktion aus. Microservices können mithilfe von verschiedenen Frameworks und Programmiersprachen geschrieben werden. Sie können unabhängig, als einzelner Service oder als Gruppe von Services bereitgestellt werden.
Was Sie erreichen werden
In diesem Tutorial zeigen wir Ihnen, wie Sie eine einfache monolithische Anwendung in einem Docker-Container ausführen, die gleiche Anwendung als Microservices bereitstellen und den Datenverkehr ohne Unterbrechungen zu den Microservices umleiten. Wenn Sie fertig sind, können Sie dieses Tutorial und den darin enthaltenen Code als Vorlage verwenden, um in AWS Ihre eigenen containerisierten Microservices zu entwickeln und bereitzustellen.
Monolithische Architektur
Die gesamte Node.js-Anwendung wird als einzelner Service in einem Container ausgeführt. Alle Container verfügen über die gleichen Funktionen. Wenn in einer Anwendung eine Spitze auftritt, muss die gesamte Architektur skaliert werden.
Microservices-Architektur
Jede Funktion der Node.js-Anwendung wird innerhalb ihres eigenen Containers als separater Service ausgeführt. Die Services können unabhängig voneinander skaliert und aktualisiert werden.
Voraussetzungen
- Ein AWS-Konto: Wenn Sie noch keines haben, folgen Sie dem Tutorial Einrichten Ihrer AWS-Umgebung, um einen schnellen Überblick zu erhalten.
- Installieren und Konfigurieren der AWS-CLI
- Installieren und Konfigurieren der AWS-CLI
- Installieren und konfigurieren von Docker
- Ein Text-Editor. Für dieses Tutorial verwenden wir VS Code, aber Sie können Ihre bevorzugte IDE verwenden.
AWS-Erfahrung
Mittelstufenkurs
Minimale Bearbeitungszeit
110 Minuten
Kosten für die Fertigstellung
Für kostenloses Kontingent qualifiziert.
Erfordert
- Ein AWS-Konto: Wenn Sie noch keines haben, folgen Sie dem Tutorial Einrichten Ihrer AWS-Umgebung, um einen schnellen Überblick zu erhalten.
- Installieren und Konfigurieren der AWS-CLI.
- Installieren und Konfigurieren von AWS Copilot.
- Installieren und konfigurieren von Docker.
- Ein Text-Editor. Für dieses Tutorial verwenden wir VS Code, aber Sie können Ihre bevorzugte IDE verwenden.
Verwendete Services
Code
Letzte Aktualisierung
Module
Dieses Tutorial ist in die folgenden Module unterteilt. Sie müssen jedes Modul abschließen, bevor Sie mit dem nächsten fortfahren können.
- Einrichtung (20 Minuten): In diesem Modul installieren und konfigurieren Sie die AWS CLI, installieren AWS Copilot und installieren Docker.
- Den Monolith containerisieren und bereitstellen (30 Minuten): In diesem Modul containerisieren Sie die Anwendung, verwenden AWS Copilot, um einen verwalteten Cluster von EC2-Compute-Instances zu instanziieren, und stellen Ihr Image als Container bereit, der auf dem Cluster ausgeführt wird.
- Den Monolithen durchbrechen (20 Minuten): In diesem Modul werden Sie die Node.js-Anwendung in mehrere miteinander verbundene Services aufteilen und das Image jedes Service in ein Amazon Elastic Container Registry (Amazon ECR)-Repository verschieben.
- Microservices bereitstellen (30 Minuten): In diesem Modul stellen Sie die Node.js-Anwendung als Gruppe von miteinander verbundenen Services hinter einem Application Load Balancer (ALB) bereit. Anschließend verlagern Sie den Datenverkehr mit dem ALB nahtlos vom Monolithen auf die Microservices.
- Bereinigung (10 Minuten): In diesem Modul beenden Sie die Ressourcen, die Sie während dieses Tutorials erstellt haben. Sie stoppen die Services, die in Amazon ECS ausgeführt werden, löschen den ALB und löschen den AWS-CloudFormation-Stack, um den Amazon-ECS-Cluster zu beenden, einschließlich aller zugrunde liegenden EC2-Instances.