Greifen Sie mithilfe von AWS PrivateLink und einem Network Load Balancer privat auf Container-Anwendungen auf Amazon ECS zu - 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.

Greifen Sie mithilfe von AWS PrivateLink und einem Network Load Balancer privat auf Container-Anwendungen auf Amazon ECS zu

Erstellt von Kirankumar Chandrashekar (AWS)

Umwelt: Produktion

Technologien: Container und Mikroservices; Netzwerke; Sicherheit, Identität, Compliance; Web- und mobile Apps

Arbeitslast: Alle anderen Workloads

AWS-Services: Amazon EC2; Amazon EC2 Auto Scaling; Amazon EC2 Container Registry; Amazon EFS; Amazon RDS; Amazon VPC; Amazon ECS; Elastic Load Balancing (ELB); AWS Lambda

Dieses Muster beschreibt, wie Sie eine Docker-Container-Anwendung privat auf Amazon Elastic Container Service (Amazon ECS) hinter einem Network Load Balancer hosten und mithilfe von AWS auf die Anwendung zugreifen. PrivateLink Sie können dann ein privates Netzwerk verwenden, um sicher auf Dienste in der Amazon Web Services (AWS) Cloud zuzugreifen. Amazon Relational Database Service (Amazon RDS) hostet die relationale Datenbank für die Anwendung, die auf Amazon ECS mit hoher Verfügbarkeit (HA) ausgeführt wird. Amazon Elastic File System (Amazon EFS) wird verwendet, wenn die Anwendung persistenten Speicher benötigt.

Der Amazon ECS-Service, auf dem die Docker-Anwendungen ausgeführt werden, mit einem Network Load Balancer am Frontend kann mit einem Virtual Private Cloud (VPC) -Endpunkt für den Zugriff über AWS verknüpft werden. PrivateLink Dieser VPC-Endpunktdienst kann dann mit anderen VPCs gemeinsam genutzt werden, indem deren VPC-Endpunkte verwendet werden. 

Sie können auch AWS Fargate anstelle einer Amazon EC2 Auto Scaling Scaling-Gruppe verwenden. Weitere Informationen finden Sie unter Privaten Zugriff auf Containeranwendungen auf Amazon ECS mithilfe von AWS Fargate PrivateLink, AWS und einem Network Load Balancer.                          

Voraussetzungen

Technologie-Stack

  • Amazon CloudWatch

  • Amazon Elastic Compute Cloud (Amazon EC2)

  • Amazon EC2 Auto Scaling

  • Amazon Elastic Container Registry (Amazon ECR)

  • Amazon ECS

  • Amazon RDS

  • Amazon-Simple-Storage-Service (Amazon-S3)

  • AWS Lambda

  • AWS PrivateLink

  • AWS Secrets Manager

  • Application Load Balancer

  • Network Load Balancer

  • VPC

Automatisierung und Skalierung

  • Amazon EC2 — Amazon Elastic Compute Cloud (Amazon EC2) bietet skalierbare Rechenkapazität in der AWS-Cloud.

  • Amazon EC2 Auto Scaling — Amazon EC2 Auto Scaling hilft Ihnen sicherzustellen, dass Ihnen die richtige Anzahl von Amazon EC2 EC2-Instances zur Verfügung steht, um die Last für Ihre Anwendung zu bewältigen.

  • Amazon ECS — Amazon Elastic Container Service (Amazon ECS) ist ein hoch skalierbarer, schneller Container-Management-Service, der das Ausführen, Stoppen und Verwalten von Containern in einem Cluster vereinfacht.

  • Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) ist ein verwalteter AWS-Container-Image-Registry-Service, der sicher, skalierbar und zuverlässig ist.

  • Amazon EFS — Amazon Elastic File System (Amazon EFS) bietet ein einfaches, skalierbares, vollständig verwaltetes elastisches NFS-Dateisystem zur Verwendung mit AWS-Cloud-Services und lokalen Ressourcen.

  • AWS Lambda — Lambda ist ein Rechenservice zum Ausführen von Code ohne Bereitstellung oder Verwaltung von Servern.

  • Amazon RDS — Amazon Relational Database Service (Amazon RDS) ist ein Webservice, der die Einrichtung, den Betrieb und die Skalierung einer relationalen Datenbank in der AWS-Cloud erleichtert.

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) ist Speicher für das Internet. Der Service ist darauf ausgelegt, Cloud Computing für Entwickler zu erleichtern.

  • AWS Secrets Manager — Secrets Manager hilft Ihnen dabei, hartcodierte Anmeldeinformationen in Ihrem Code, einschließlich Kennwörtern, zu ersetzen, indem es einen API-Aufruf an Secrets Manager bereitstellt, um das Geheimnis programmgesteuert abzurufen.

  • Amazon VPC — Amazon Virtual Private Cloud (Amazon VPC) hilft Ihnen, AWS-Ressourcen in einem von Ihnen definierten virtuellen Netzwerk zu starten.

  • Elastic Load Balancing — Elastic Load Balancing verteilt eingehenden Anwendungs- oder Netzwerkverkehr auf mehrere Ziele, wie Amazon EC2 EC2-Instances, Container und IP-Adressen, in mehreren Availability Zones.

  • Docker — Docker hilft Entwicklern dabei, jede Anwendung als leichten, portablen und autarken Container zu packen, zu versenden und auszuführen.

AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie eine VPC.
  1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon VPC-Konsole. Wählen Sie Create VPC und dann VPC and more aus. 

  2. Geben Sie einen Namen für Ihre VPC ein und wählen Sie einen geeigneten CIDR-Blockbereich aus. 

  3. Geben Sie zwei Availability Zones, zwei öffentliche Subnetze und vier private Subnetze an. Zwei private Subnetze sind für Amazon ECS-Aufgaben und zwei private Subnetze für Amazon RDS-Datenbanken vorgesehen.

  4. Geben Sie ein NAT-Gateway für jede Availability Zone an. 

  5. Wählen Sie VPC erstellen aus.

Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie einen Network Load Balancer.
  1. Öffnen Sie die Amazon EC2 EC2-Konsole und wählen Sie die AWS-Region aus, die Ihre VPC enthält. 

  2. Wählen Sie unter Load Balancing die Option Load Balancers und dann Create Load Balancer aus. 

  3. Wählen Sie Network Load Balancer und dann Create aus. 

  4. Konfigurieren Sie auf der Seite Load Balancer konfigurieren Ihren Network Load Balancer und Listener. Wichtig: Stellen Sie sicher, dass Sie das Schema Ihres Network Load Balancers als Intern auswählen. 

  5. Wählen Sie die entsprechenden Sicherheitseinstellungen aus, konfigurieren Sie eine Sicherheitsgruppe und eine Zielgruppe. Wählen Sie im Abschnitt Routing konfigurieren Instance oder IP als Zieltyp aus. Stellen Sie sicher, dass Sie kein Ziel registrieren. 

  6. Wenn Sie alle Einstellungen konfiguriert haben, wählen Sie Weiter: Überprüfen und dann Erstellen.

Cloud-Administrator
Erstellen Sie einen Application Load Balancer.
  1. Wählen Sie auf der Amazon EC2 EC2-Konsole dieselbe Region aus, in der sich Ihre VPC befindet.

  2. Wählen Sie unter Load Balancing die Option Load Balancers und dann Create Load Balancer aus.

  3. Wählen Sie Application Load Balancer und dann Create

  4. Konfigurieren Sie Ihren Application Load Balancer und seinen Listener. Wichtig: Stellen Sie sicher, dass Sie das Schema Ihres Application Load Balancers als Intern auswählen. 

  5. Wählen Sie die entsprechenden Sicherheitseinstellungen aus, konfigurieren Sie eine Sicherheitsgruppe und eine Zielgruppe. Wählen Sie im Abschnitt Routing konfigurieren Instance oder IP als Zieltyp aus. Stellen Sie sicher, dass Sie kein Ziel registrieren. 

  6. Wenn Sie alle Einstellungen konfiguriert haben, wählen Sie Weiter: Überprüfen und dann Erstellen.

Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie ein Amazon EFS-Dateisystem.
  1. Öffnen Sie die Amazon EFS-Konsole und wählen Sie Create file system aus. 

  2. Geben Sie im Dialogfeld Dateisystem erstellen einen Namen für Ihr Dateisystem ein und wählen Sie Ihre VPC aus. 

  3. Wählen Sie Erstellen, um das Dateisystem zu erstellen. 

  4. Richten Sie Ihr Amazon EFS-Dateisystem ein und konfigurieren Sie es.

Cloud-Administrator
Mounten Sie Ziele für die Subnetze.
  1. Kehren Sie zur Amazon EFS-Konsole zurück und wählen Sie Dateisysteme. Auf der Seite Dateisysteme werden die Amazon EFS-Dateisysteme in Ihrem Konto angezeigt. 

  2. Wählen Sie das Dateisystem aus, das Sie erstellt haben, und wählen Sie Verwalten, um die Availability Zones anzuzeigen. Um ein Mount-Ziel hinzuzufügen, wählen Sie Mount-Ziel hinzufügen und fügen Sie die vier privaten Subnetze hinzu, die Sie erstellt haben.

Cloud-Administrator
Stellen Sie sicher, dass die Subnetze als Ziele bereitgestellt sind.
  1. Wählen Sie in der Amazon EFS-Konsole Dateisysteme aus. 

  2. Wählen Sie Netzwerk aus, um die Liste der vorhandenen Mount-Ziele anzuzeigen. Stellen Sie sicher, dass diese die vier Subnetze enthalten, die Sie erstellt haben.

Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie einen S3-Bucket.

Öffnen Sie die Amazon S3 S3-Konsole und erstellen Sie bei Bedarf einen S3-Bucket, um die statischen Ressourcen Ihrer Anwendung zu speichern.

Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie einen AWS-KMS-Schlüssel, um das Secrets Manager Manager-Geheimnis zu verschlüsseln.

Öffnen Sie die AWS Key Management Service (AWS KMS) -Konsole und erstellen Sie einen KMS-Schlüssel.

Cloud-Administrator
Erstellen Sie ein Secrets Manager Manager-Geheimnis, um das Amazon RDS-Passwort zu speichern.
  1. Öffnen Sie die AWS Secrets Manager Manager-Konsole und erstellen Sie ein neues Geheimnis, indem Sie Neues Geheimnis speichern wählen. 

  2. Wählen Sie den KMS-Schlüssel aus, den Sie erstellt haben, und speichern Sie Ihr neues Geheimnis.

Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie eine DB-Subnetzgruppe.
  1. Öffnen Sie die Amazon RDS-Konsole und wählen Sie Subnetzgruppen

  2. Wählen Sie Create DB Subnet Group und geben Sie einen Namen und eine Beschreibung für Ihre DB-Subnetzgruppe ein. 

  3. Wählen Sie die VPC aus, die Sie zuvor erstellt haben, und wählen Sie die Availability Zones und Subnetze aus. Wählen Sie die Option Erstellen aus.

Cloud-Administrator
Erstellen Sie eine Amazon RDS-Instance.

Erstellen und konfigurieren Sie eine Amazon RDS-Instance in den privaten Subnetzen. Stellen Sie sicher, dass Multi-AZ für HA aktiviert ist.

Cloud-Administrator
Laden Sie Daten in die Amazon RDS-Instance.

Laden Sie die für Ihre Anwendung erforderlichen relationalen Daten in Ihre Amazon RDS-Instance. Dieser Prozess hängt von den Anforderungen Ihrer Anwendung sowie davon ab, wie Ihr Datenbankschema definiert und entworfen ist.

Cloud-Administrator, DBA
AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie einen ECS-Cluster.
  1. Öffnen Sie die Amazon ECS-Konsole und wählen Sie Clusters.

  2. Wählen Sie Cluster erstellen und richten Sie einen ECS-Cluster gemäß Ihren erforderlichen Spezifikationen ein.

Cloud-Administrator
Erstellen Sie die Docker-Images.

Erstellen Sie die Docker-Images, indem Sie den Anweisungen im Abschnitt Verwandte Ressourcen folgen.

Cloud-Administrator
Erstellen Sie Amazon ECR-Repositorys.
  1. Wählen Sie auf der Amazon ECR-Konsole Repositories aus. 

  2. Wählen Sie Create Repository und geben Sie einen eindeutigen Namen für Ihr Repository ein. 

  3. Konfigurieren Sie das Repository gemäß Ihren Spezifikationen, einschließlich AWS-KMS-Verschlüsselung, falls erforderlich.

Cloud-Administrator, DevOps Ingenieur
Authentifizieren Sie Ihren Docker-Client für das Amazon ECR-Repository.

Um Ihren Docker-Client für das Amazon ECR-Repository zu authentifizieren, führen Sie den aws ecr get-login-password Befehl „in der AWS-CLI aus.

Cloud-Administrator
Übertragen Sie die Docker-Images in das Amazon ECR-Repository.
  1. Identifizieren Sie das Docker-Image, das Sie pushen möchten, und führen Sie den docker images Befehl in der AWS-CLI aus. 

  2. Kennzeichnen Sie Ihr Bild mit der Amazon ECR-Registrierung, dem Repository und der optionalen Kombination aus Image-Tagnamen. 

  3. Übertragen Sie das Docker-Image, indem Sie den docker push Befehl ausführen. 

  4. Wiederholen Sie diese Schritte für alle erforderlichen Bilder.

Cloud-Administrator
Erstellen Sie eine Amazon ECS-Aufgabendefinition.

Eine Aufgabendefinition ist erforderlich, um Docker-Container in Amazon ECS auszuführen. 

  1. Kehren Sie zur Amazon ECS-Konsole zurück, wählen Sie Aufgabendefinitionen und dann Neue Aufgabendefinition erstellen

  2. Wählen Sie auf der Seite „Kompatibilitäten auswählen“ den Starttyp aus, den Ihre Aufgabe verwenden soll, und klicken Sie auf Nächster Schritt.

Hilfe beim Einrichten Ihrer Aufgabendefinition finden Sie unter „Eine Aufgabendefinition erstellen“ im Abschnitt Verwandte Ressourcen. Wichtig: Stellen Sie sicher, dass Sie die Docker-Images bereitstellen, die Sie an Amazon ECR übertragen haben.

Cloud-Administrator
Erstellen Sie einen Amazon-ECS-Service.

Erstellen Sie einen Amazon ECS-Service mithilfe des ECS-Clusters, den Sie zuvor erstellt haben. Stellen Sie sicher, dass Sie Amazon EC2 als Starttyp und die im vorherigen Schritt erstellte Aufgabendefinition sowie die Zielgruppe des Application Load Balancer auswählen.

Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen einer Startkonfiguration

Öffnen Sie die Amazon EC2 EC2-Konsole und erstellen Sie eine Startkonfiguration. Stellen Sie sicher, dass die Benutzerdaten den Code enthalten, der es den EC2-Instances ermöglicht, dem gewünschten ECS-Cluster beizutreten. Ein Beispiel für den erforderlichen Code finden Sie im Abschnitt Verwandte Ressourcen.

Cloud-Administrator
Erstellen Sie eine Amazon EC2 Auto Scaling Scaling-Gruppe.

Kehren Sie zur Amazon EC2 EC2-Konsole zurück und wählen Sie unter Auto Scaling die Option Auto Scaling Scaling-Gruppen aus. Richten Sie eine Amazon EC2 Auto Scaling Scaling-Gruppe ein. Stellen Sie sicher, dass Sie die privaten Subnetze auswählen und die Konfiguration starten, die Sie zuvor erstellt haben.

Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten
Richten Sie den PrivateLink AWS-Endpunkt ein.
  1. Erstellen Sie auf der Amazon VPC-Konsole einen PrivateLink AWS-Endpunkt. 

  2. Ordnen Sie diesen Endpunkt dem Network Load Balancer zu, der die auf Amazon ECS gehostete Anwendung privat für Kunden verfügbar macht. 

Weitere Informationen finden Sie im Abschnitt Verwandte Ressourcen.

Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten
Erstellen Sie einen VPC-Endpunkt.

Erstellen Sie einen VPC-Endpunkt für den PrivateLink AWS-Endpunkt, den Sie zuvor erstellt haben. Der vollqualifizierte Domainname (FQDN) des VPC-Endpunkts zeigt auf den PrivateLink AWS-Endpunkt-FQDN. Dadurch wird eine elastic network interface zum VPC-Endpunktdienst erstellt, auf die die DNS-Endpunkte zugreifen können.

Cloud-Administrator
AufgabeBeschreibungErforderliche Fähigkeiten
So erstellen Sie die Lambda-Funktion:

Erstellen Sie auf der AWS Lambda Lambda-Konsole eine Lambda-Funktion, um die IP-Adressen des Application Load Balancer als Ziele für den Network Load Balancer zu aktualisieren. Weitere Informationen dazu finden Sie im Blogbeitrag „Statische IP-Adressen für Application Load Balancers verwenden“ im Abschnitt Verwandte Ressourcen.

App-Developer

Erstellen Sie die Load Balancer:

Erstellen Sie ein Amazon EFS-Dateisystem:

Erstellen Sie einen S3-Bucket:

Erstellen Sie ein Secrets Manager Manager-Geheimnis:

Erstellen Sie eine Amazon RDS-Instance:

Erstellen Sie die Amazon ECS-Komponenten:

Erstellen Sie eine Amazon EC2 Auto Scaling Scaling-Gruppe:

AWS einrichten PrivateLink:

Erstellen Sie einen VPC-Endpunkt:

Erstellen Sie die Lambda-Funktion:

Andere Ressourcen: