Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Stellen Sie Java-Microservices auf Amazon ECS mithilfe von Amazon ECR und Load Balancing bereit
R-Typ: N/A | Quelle: Java | Ziel: Amazon ECS |
Erstellt von: AWS | Umgebung: PoC oder Pilot | Technologien: Web- und mobile Apps; Container und Microservices |
AWS-Dienste: Amazon ECS |
Übersicht
Dieses Muster beschreibt die Schritte zur Bereitstellung einer containerisierten Java-Microservices-Architektur auf Amazon Elastic Container Service (Amazon ECS), um die Skalierung zu vereinfachen und die Entwicklung Ihrer Anwendungen zu beschleunigen. Dies trägt dazu bei, Innovationen zu ermöglichen und die Einführung neuer Funktionen time-to-market zu beschleunigen.
Das Muster verwendet außerdem Amazon Elastic Container Registry (Amazon ECR) zum Speichern und Verwalten der Docker-basierten Container sowie eine CloudFormation AWS-Vorlage mit einem Python-Skript, um die Einrichtung Ihrer Infrastruktur zu automatisieren. Das Muster basiert auf dem Beitrag Deploying Java Microservices on Amazon Elastic Container Service
Microservices bieten einen architektonischen und organisatorischen Ansatz für die Softwareentwicklung, bei dem Software aus kleinen, unabhängigen Services besteht, die über klar definierte Anwendungsprogrammierschnittstellen (APIs) kommunizieren. Kleine, in sich geschlossene Teams sind Eigentümer dieser Dienste.
Amazon ECS ist ein hoch skalierbarer, leistungsstarker Container-Orchestrierungsservice. Es unterstützt Docker-Container und ermöglicht es Ihnen, containerisierte Anwendungen auf AWS schnell auszuführen und zu skalieren. Mit Amazon ECS müssen Sie Ihre Container-Orchestrierungssoftware nicht mehr installieren und betreiben, einen Cluster von virtuellen Maschinen (VMs) verwalten und skalieren oder Container auf diesen VMs planen.
Mit einfachen API-Aufrufen können Sie Docker-fähige Anwendungen starten und beenden, den vollständigen Status Ihrer Anfrage abfragen und auf viele natürliche Funktionen zugreifen, wie z. B. AWS Identity and Access Management (IAM) -Rollen, Sicherheitsgruppen, Load Balancer, Amazon CloudWatch Events, CloudFormation AWS-Vorlagen und AWS-Protokolle. CloudTrail
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto
Java-Microservices-Quellcode mit Java Development Kit Version 1.7 oder höher
Ein Zugriffsschlüssel und ein geheimer Zugriffsschlüssel für einen Benutzer im Konto
AWS-Befehlszeilenschnittstelle (AWS Command Line Interface, AWS CLI)
Java, AWS-Softwareentwicklungskit (SDK) für Python (Boto3) und Docker-Software
Vertrautheit mit der Verwendung der vorherigen Technologien
Vertrautheit mit AWS-Services wie Amazon ECS CloudFormation, AWS und Elastic Load Balancing
Architektur
Quelltechnologie-Stack
Microservices, die in Java implementiert und auf Apache Tomcat in einer lokalen Umgebung bereitgestellt werden
Zieltechnologie-Stack
Der Application Load Balancer, der die Client-Anfrage überprüft. Basierend auf Routing-Regeln leitet der Load Balancer die Anfrage an eine Instanz und einen Port der Zielgruppe weiter, die dem Status entsprechen.
Eine Zielgruppe für jeden Microservice. Die Zielgruppen werden von den entsprechenden Diensten verwendet, um verfügbare Container-Instances zu registrieren. Jede Zielgruppe hat einen Pfad. Wenn Sie also den Weg für einen bestimmten Microservice aufrufen, wird er der richtigen Zielgruppe zugeordnet. Auf diese Weise können Sie einen Application Load Balancer verwenden, um alle Microservices zu bedienen, auf die über den Pfad zugegriffen wird. Beispielsweise würde https:///owner/ * dem Owner-Microservice zugeordnet und zu diesem weitergeleitet.
Ein Amazon ECS-Cluster, der die Container für jeden Microservice hostet.
Ein Amazon Virtual Private Cloud (Amazon VPC) -Netzwerk zum Hosten des Amazon ECS-Clusters und der zugehörigen Sicherheitsgruppen.
Ein Amazon Elastic Container Registry (Amazon ECR) -Repository für jeden Microservice.
Eine Service- oder Aufgabendefinition für jeden Microservice, der Container auf den Instances des Amazon ECS-Clusters hochfährt.
Zielarchitektur
![](images/pattern-img/d4517247-c9f4-45d4-8392-645e4f82f7cf/images/3202b33c-e6dc-472b-ba17-11eb882279f2.png)
Tools
Amazon ECS — Mit Amazon ECS können Sie containerbasierte Anwendungen mit einfachen API-Aufrufen starten und beenden, den Status Ihres Clusters über einen zentralen Service abrufen und erhalten Zugriff auf viele vertraute Funktionen von Amazon Elastic Compute Cloud (Amazon EC2).
Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) ist eine vollständig verwaltete Registry, die Entwicklern das Speichern, Verwalten und Bereitstellen von Docker-Container-Images erleichtert. Amazon ECR ist in Amazon ECS integriert, um Ihren development-to-production Arbeitsablauf zu vereinfachen. Amazon ECR hostet Ihre Images in einer hochverfügbaren und skalierbaren Architektur, sodass Sie Container für Ihre Anwendungen zuverlässig bereitstellen können. Die Integration mit AWS Identity and Access Management (IAM) ermöglicht die Kontrolle jedes Repositorys auf Ressourcenebene.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Stellen Sie eine Amazon EC2 EC2-Linux-Instance bereit, installieren Sie Docker und erstellen Sie eine Docker-Datei für jeden Microservice. | Ops | |
Richten Sie Docker-Images auf Amazon ECR ein. | Verwenden Sie das Dockerfile für das Image, um das Image zu pushen, zu erstellen und es für Ihr neues Repository zu taggen. Machen Sie dasselbe für jeden Microservice. Schieben Sie die neu markierten Bilder in das Repository. | Ops |
Erstellen Sie eine CloudFormation AWS-Vorlage. | Erstellen Sie eine CloudFormation AWS-Vorlage zur Bereitstellung der Virtual Private Cloud (VPC), des Amazon ECS-Clusters und des Amazon Relational Database Service (Amazon RDS). | Operationen |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie die AWS-Infrastruktur mithilfe der CloudFormation Vorlage, die Sie zuvor erstellt haben. | Verwenden Sie das Python-Skript unter https://github.com/awslabs/amazon-ecs-java-microservices/blob/master/2_ECS_Java_Spring_ PetClinic _Microservices/setup.py, um die CloudFormation AWS-Vorlage aufzurufen, die Sie zuvor erstellt haben. Diese Vorlage erstellt die AWS-Infrastruktur, die Sie für die Zielumgebung benötigen. | Ops |
Erstellen Sie Amazon ECR-Repositorys, Aufgaben, Services, den Application Load Balancer und Zielgruppen. | Das Python-Skript liest die Ausgaben der CloudFormation AWS-Vorlage und verwendet BOTO3-API-Aufrufe, um Amazon ECR-Repositorys, Aufgaben, Services, den Application Load Balancer und Zielgruppen zu erstellen. | Ops |