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.
Mithilfe von AWS Fargate können Sie nachrichtengesteuerte Workloads in großem Umfang ausführen
Erstellt von Stan Zubarev (AWS)
Umgebung: PoC oder Pilotprojekt | Technologien: Container und Mikroservices; Messaging und Kommunikation; Datenbanken | AWS-Dienste: AWS Fargate; Amazon SQS; Amazon DynamoDB |
Übersicht
Dieses Muster zeigt, wie nachrichtengesteuerte Workloads mithilfe von Containern und AWS Fargate in großem Umfang in der AWS-Cloud ausgeführt werden können.
Die Verwendung von Containern zur Verarbeitung von Daten kann hilfreich sein, wenn die Datenmenge, die eine Anwendung verarbeitet, die Beschränkungen funktionsbasierter serverloser Rechendienste überschreitet. Wenn eine Anwendung beispielsweise mehr Rechenkapazität oder Verarbeitungszeit benötigt als das, was AWS Lambda bietet, kann die Verwendung von Fargate die Leistung verbessern.
Das folgende Beispiel-Setup verwendet das AWS Cloud Development Kit (AWS CDK), TypeScript um die folgenden Ressourcen in der AWS-Cloud zu konfigurieren und bereitzustellen:
Ein Fargate-Service
Eine Amazon Simple Queue Service (Amazon SQS) -Warteschlange
Eine Amazon DynamoDB-Tabelle.
Ein CloudWatch Amazon-Dashboard
Der Fargate-Service empfängt und verarbeitet Nachrichten aus der Amazon SQS SQS-Warteschlange und speichert sie dann in der Amazon DynamoDB-Tabelle. Mithilfe des Dashboards können Sie überwachen, wie viele Amazon SQS SQS-Nachrichten verarbeitet und wie viele DynamoDB-Elemente von Fargate erstellt werden. CloudWatch
Hinweis: Sie können den Beispielcode dieses Musters auch verwenden, um komplexere Datenverarbeitungs-Workloads in ereignisgesteuerten serverlosen Architekturen zu erstellen. Weitere Informationen finden Sie unter Ausführen von ereignisgesteuerten und geplanten Workloads in großem Umfang mit AWS Fargate.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto
Die neueste Version der AWS-Befehlszeilenschnittstelle (AWS CLI), installiert und konfiguriert auf Ihrem lokalen Computer
Git
, auf Ihrem lokalen Computer installiert und konfiguriert Das AWS CDK, installiert und konfiguriert auf Ihrem lokalen Computer
Go
, auf Ihrem lokalen Computer installiert und konfiguriert Docker
, auf Ihrem lokalen Computer installiert und konfiguriert
Architektur
Zieltechnologie-Stack
Amazon SQS
AWS Fargate
Amazon-DynamoDB
Zielarchitektur
Das folgende Diagramm zeigt einen Beispiel-Workflow für die skalierbare Ausführung von nachrichtengesteuerten Workloads in der AWS-Cloud mithilfe von Fargate:
Das Diagramm zeigt den folgenden Workflow:
Der Fargate-Service verwendet Amazon SQS Long Polling, um Nachrichten aus einer Amazon SQS SQS-Warteschlange zu empfangen.
Der Fargate-Service verarbeitet dann die Amazon SQS SQS-Nachrichten und speichert sie in einer DynamoDB-Tabelle.
Automatisierung und Skalierung
Um die Skalierung Ihrer Fargate-Aufgabenanzahl zu automatisieren, können Sie Amazon Elastic Container Service (Amazon ECS) Service Auto Scaling konfigurieren. Es hat sich bewährt, die Skalierungsrichtlinie auf der Grundlage der Anzahl der sichtbaren Nachrichten in der Amazon SQS SQS-Warteschlange Ihrer Anwendung zu konfigurieren.
Weitere Informationen finden Sie unter Skalierung basierend auf Amazon SQS im Benutzerhandbuch für Amazon EC2 Auto Scaling.
Tools
AWS-Services
Mit AWS Fargate können Sie Container ausführen, ohne Server oder Amazon Elastic Compute Cloud (Amazon EC2) -Instances verwalten zu müssen. Es wird in Verbindung mit Amazon Elastic Container Service (Amazon ECS) verwendet.
Amazon Simple Queue Service (Amazon SQS) bietet eine sichere, dauerhafte und verfügbare gehostete Warteschlange, mit der Sie verteilte Softwaresysteme und -komponenten integrieren und entkoppeln können.
Amazon DynamoDB ist ein vollständig verwalteter NoSQL-Datenbank-Service, der schnelle und planbare Leistung mit nahtloser Skalierbarkeit bereitstellt.
Amazon CloudWatch hilft Ihnen dabei, die Metriken Ihrer AWS-Ressourcen und der Anwendungen, die Sie auf AWS ausführen, in Echtzeit zu überwachen.
Code
Der Code für dieses Muster ist im GitHub sqs-fargate-ddb-cdk-go-Repository
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das GitHub Repository. | Klonen Sie das GitHub sqs-fargate-ddb-cdk-go-Repository
| App-Developer |
Stellen Sie sicher, dass die AWS-CLI für das richtige AWS-Konto konfiguriert ist und dass das AWS-CDK über die erforderlichen Berechtigungen verfügt. | Um zu überprüfen, ob Ihre AWS-CLI-Konfigurationseinstellungen korrekt sind, können Sie den folgenden Amazon Simple Storage Service (Amazon S3) ls-Befehl ausführen:
Dieses Verfahren erfordert auch, dass das AWS-CDK über Berechtigungen zur Bereitstellung der Infrastruktur innerhalb Ihres AWS-Kontos verfügt. Um die erforderlichen Berechtigungen zu gewähren, müssen Sie ein benanntes AWS-Profil in der AWS-CLI erstellen und es als AWS_PROFILE-Umgebungsvariable exportieren. Hinweis: Wenn Sie das AWS-CDK noch nicht in Ihrem AWS-Konto verwendet haben, müssen Sie zunächst die erforderlichen AWS-CDK-Ressourcen bereitstellen. Weitere Informationen finden Sie unter Bootstrapping im AWS CDK v2 Developer Guide. | App-Developer |
Stellen Sie den AWS CDK-Stack auf Ihrem AWS-Konto bereit. |
| App-Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Senden Sie eine Testnachricht an die Amazon SQS SQS-Warteschlange. | Anweisungen finden Sie unter Senden von Nachrichten an eine Warteschlange (Konsole) im Amazon SQS Developer Guide. Beispiel für eine Amazon SQS SQS-Nachricht testen
| App-Developer |
Stellen Sie sicher, dass die Testnachricht in den CloudWatch Protokollen des Fargate-Dienstes erscheint. | Folgen Sie den Anweisungen unter CloudWatch Logs anzeigen im Amazon ECS Developer Guide. Stellen Sie sicher, dass Sie die Protokolle für die go-fargate-serviceProtokollgruppe im go-service-clusterECS-Cluster überprüfen. | App-Developer |
Stellen Sie sicher, dass die Testmeldung in der DynamoDB-Tabelle angezeigt wird. |
| App-Developer |
Stellen Sie sicher, dass der Fargate-Dienst Nachrichten an CloudWatch Logs sendet. |
Hinweis: Das AWS CDK erstellt das CloudWatch Dashboard in Ihrem AWS-Konto automatisch. | App-Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Löschen Sie den AWS-CDK-Stack. |
| App-Developer |
Stellen Sie sicher, dass der AWS-CDK-Stack gelöscht wurde. | Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der Stack gelöscht wurde:
Der in der Befehlsausgabe zurückgegebene Weitere Informationen finden Sie unter Beschreibung und Auflistung Ihrer Stacks im CloudFormation AWS-Benutzerhandbuch. | App-Developer |
Zugehörige Ressourcen
Konfiguration von AWS CLI (AWS CLI-Benutzerhandbuch für Version 2)
API-Referenz (AWS CDK API-Referenz)
AWS-SDK SDK for Go v2
(Go-Dokumentation)