Stellen Sie Java-Microservices auf Amazon ECS mithilfe von Amazon ECR und Load Balancing bereit - AWS Prescriptive Guidance

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, der im AWS Compute-Blog veröffentlicht wurde.

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

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

AufgabeBeschreibungErforderliche 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
AufgabeBeschreibungErforderliche 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