© Excellent backgrounds/Shutterstock.com
Teil 3: Verwendung von Containern

Migration nach AWS


In diesem Artikel werfen wir einen genaueren Blick darauf, wie wir die Java-basierte Anwendung mit Hilfe von Containern und einigen Restrukturierungen in Richtung Microservices deutlich wartbarer und dynamischer gestalten können.

Artikelserie

Teil 1: Warum wechseln?

Teil 2: Verwendung von Managed Services

Teil 3: Verwendung von Containern

Teil 4: Serverless mit AWS Lambda

Teil 5: Optimierung der Architektur

Teil 6: Sicherheit und Verschlüsselung

Im zweiten Teil unserer Artikelserie haben wir gesehen, wie sich in der bestehenden Architektur mit Managed Services (Abb. 1) der Aufwand für die Bereitstellung und den Betrieb von Infrastruktur einer Java-basierten Webanwendung signifikant verringern lässt.

moellering_aws_3_1.tif_fmt1.jpgAbb. 1: Die Architektur unserer Anwendung aus dem zweiten Artikel

In Abbildung 1 sehen wir den aktuellen Stand unserer Architektur: Der Application Load Balancer empfängt alle Anfragen und verteilt sie auf die Apache-Webserver. Sie liefern statische Inhalte aus und leiten Anfragen nach dynamischen Inhalten an die Apache-Tomcat-Server weiter. Die Web- und Anwendungsserver laufen als EC2-Instanzen (Kasten: „AWS-Dienste für Containermanagement“). Die Anwendung nutzt Amazon Relational Database Service (RDS) MySQL als Datenbank. Häufige Datenbankabfragen speichert die Anwendung in Amazon ElastiCache für Redis.

AWS-Dienste für Containermanagement

Relevante AWS-Dienste für Containermanagement lassen sich in drei Kategorien unterteilen: Registry, Orchestrierung und Compute. Amazon Elastic Container Registry (ECR) [1] ist eine Docker-Container-Registry, um Docker-Container-Images sicher zu speichern, zu verwalten und bereitzustellen. Amazon Elastic Container Service (Amazon ECS) [2] ist ein Container-Orchestrierungsdienst, der Docker-Container unterstützt und es ermöglicht, containerisierte Anwendungen auf AWS auszuführen und zu skalieren. Der Amazon Elastic Kubernetes Service (Amazon EKS) [3] vereinfacht die Bereitstellung, Verwaltung und Skalierung von containerisierten Anwendungen mit Kubernetes auf AWS. Beide Orchestrierungsdienste werden von AWS Fargate [4] unterstützt, das die Verwaltung der Server und Cluster für die Container übernimmt. Somit ist der Kunde nicht für die Skalierung und das Patchmanagement der Clusterknoten verantwortlich. Amazon Elastic Compute Cloud (Amazon EC2) [5] ist ein Dienst, der sichere, skalierbare Rechenleistung in der Cloud bietet.

Container Best Practices

Die Größe von Docker Images hat einen großen Einfluss auf die Ausführbarkeit...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang