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
Erstellt von Durga Prasad Cheepuri () AWS
Übersicht
Dieses Muster beschreibt die Schritte zur Bereitstellung einer containerisierten Java-Microservices-Architektur auf Amazon Elastic Container Service (AmazonECS), 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 (AmazonECR) zum Speichern und Verwalten der Docker-basierten Container sowie eine AWS CloudFormation 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 Diensten besteht, die über klar definierte Anwendungsprogrammierschnittstellen kommunizieren (). APIs Kleine, in sich geschlossene Teams sind Eigentümer dieser Dienste.
Amazon ECS ist ein hoch skalierbarer, leistungsstarker Container-Orchestrierungsservice. Er unterstützt Docker-Container und ermöglicht es Ihnen, containerisierte Anwendungen schnell auszuführen und zu skalieren. AWS 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 wie AWS Identity and Access Management (IAM) -Rollen, Sicherheitsgruppen, Load Balancer, Amazon CloudWatch Events, AWS CloudFormation Vorlagen und Protokolle zugreifen. AWS CloudTrail
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives Konto AWS
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
AWSBefehlszeilenschnittstelle (AWSCLI)
Java, AWS Software Development Kit (SDK) für Python (Boto3) und Docker-Software
Vertrautheit mit der Verwendung der vorherigen Technologien
Vertrautheit mit AWS Services wie Amazon ECS und Elastic Load Balancing AWS CloudFormation
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 bereitzustellen, auf die über den Pfad zugegriffen wird. Beispielsweise würde https:///owner/ * dem Owner-Microservice zugeordnet und zu diesem weitergeleitet.
Ein ECS Amazon-Cluster, der die Container für jeden Microservice hostet.
Ein Amazon Virtual Private Cloud (AmazonVPC) -Netzwerk zum Hosten des ECS Amazon-Clusters und der zugehörigen Sicherheitsgruppen.
Ein Amazon Elastic Container Registry (AmazonECR) -Repository für jeden Microservice.
Eine Service- oder Aufgabendefinition für jeden Microservice, der Container auf den Instances des ECS Amazon-Clusters hochfährt.
Zielarchitektur

Tools
Amazon ECS — ECS Mit Amazon 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 (AmazonEC2).
Amazon ECR — Amazon Elastic Container Registry (AmazonECR) ist eine vollständig verwaltete Registry, die es Entwicklern erleichtert, Docker-Container-Images zu speichern, zu verwalten und bereitzustellen. Amazon ECR ist in Amazon integriertECS, 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 Linux-Instance bereit, installieren Sie Docker und erstellen Sie eine Docker-Datei für jeden Microservice. | Ops | |
Richten Sie Docker-Images bei Amazon ECR ein. | Verwenden Sie das Dockerfile für das Image, um es 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 AWS CloudFormation Vorlage. | Erstellen Sie eine AWS CloudFormation Vorlage für die Bereitstellung der Virtual Private Cloud (VPC), des ECS Amazon-Clusters und des Amazon Relational Database Service (AmazonRDS). | Ops |
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 zuvor erstellte AWS CloudFormation Vorlage aufzurufen. Diese Vorlage erstellt die AWS Infrastruktur, die Sie für die Zielumgebung benötigen. | Ops |
Erstellen Sie ECR Amazon-Repositorys, Aufgaben, Services, den Application Load Balancer und Zielgruppen. | Das Python-Skript liest die Ausgaben der AWS CloudFormation Vorlage und verwendet BOTO3 API Aufrufe, um ECR Amazon-Repositorys, Aufgaben, Services, den Application Load Balancer und Zielgruppen zu erstellen. | Ops |