Backend - Verteilte Lasttests auf AWS

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.

Backend

Das Backend besteht aus einer Container-Image-Pipeline und einer Load-Test-Engine, mit der Sie die Last für die Tests generieren. Sie interagieren mit dem Backend über das Frontend. Darüber hinaus werden die für jeden Test gestarteten Aufgaben von Amazon ECS auf AWS Fargate mit einer eindeutigen Test-ID (ID) gekennzeichnet. Diese Test-ID-Tags können Ihnen helfen, die Kosten für diese Lösung zu überwachen. Weitere Informationen finden Sie unter Benutzerdefinierte Cost Allocation Tags im AWS Billing and Cost Management-Benutzerhandbuch.

Pipeline für Container-Images

Diese Lösung verwendet ein mit Amazon Linux 2023 erstelltes Container-Image als Basis-Image, auf dem das Taurus Load Testing Framework installiert ist. Taurus ist ein Open-Source-Framework zur Testautomatisierung, das K6 JMeter, Locust und andere Testtools unterstützt. AWS hostet dieses Image in einem öffentlichen Repository von Amazon Elastic Container Registry (Amazon ECR). Die Lösung verwendet dieses Image, um Aufgaben im Amazon ECS on AWS Fargate-Cluster auszuführen.

Weitere Informationen finden Sie im Abschnitt zur Anpassung von Container-Images in diesem Handbuch.

Infrastruktur testen

Zusätzlich zur CloudFormation Hauptvorlage bietet die Lösung eine regionale Vorlage, mit der die erforderlichen Ressourcen für die Durchführung von Tests in mehreren Regionen bereitgestellt werden können. Die Lösung speichert diese Vorlage in Amazon S3 und stellt in der Webkonsole einen Link dazu bereit. Jeder regionale Stack umfasst eine VPC, einen AWS Fargate-Cluster und eine Lambda-Funktion für die Verarbeitung von Live-Daten.

Weitere Informationen zur Bereitstellung der Testinfrastruktur in weiteren Regionen finden Sie im Abschnitt Bereitstellung in mehreren Regionen dieses Handbuchs.

Test-Engine auslasten

Die Distributed Load Testing-Lösung verwendet Amazon Elastic Container Service (Amazon ECS) und AWS Fargate, um Tausende von gleichzeitigen Benutzern in mehreren Regionen zu simulieren und HTTP-Anfragen mit kontinuierlicher Geschwindigkeit zu generieren.

Sie definieren die Testparameter mithilfe der mitgelieferten Webkonsole. Die Lösung verwendet diese Parameter, um ein JSON-Testszenario zu generieren und es in Amazon S3 zu speichern. Weitere Informationen zu Testskripten und Testparametern finden Sie unter Testtypen in diesem Abschnitt.

Eine AWS Step Functions Functions-Zustandsmaschine führt Amazon ECS-Aufgaben in einem AWS Fargate-Cluster aus und überwacht sie. Die AWS Step Functions Functions-Zustandsmaschine umfasst eine AWS-Lambda-Funktion mit ecr-checker, eine AWS-Lambda-Funktion, eine task-status-checker AWS-Lambda-Funktion für Task-Runner, eine AWS-Lambda-Funktion zum Abbrechen von Aufgaben und eine AWS-Lambda-Funktion zum Analysieren von Ergebnissen. Weitere Informationen zum Workflow finden Sie im Abschnitt „Workflow testen“ dieses Handbuchs. Weitere Informationen zu Testergebnissen finden Sie im Abschnitt Testergebnisse dieses Handbuchs. Weitere Informationen zum Ablauf der Teststornierung finden Sie im Abschnitt zum Ablauf der Teststornierung in diesem Handbuch.

Wenn Sie Live-Daten auswählen, initiiert die Lösung in jeder Region eine real-time-data-publisher Lambda-Funktion anhand der CloudWatch Protokolle, die den Fargate-Aufgaben in dieser Region entsprechen. Die Lösung verarbeitet und veröffentlicht dann die Daten zu einem Thema in AWS IoT Core in der Region, in der Sie den Haupt-Stack gestartet haben. Weitere Informationen finden Sie im Abschnitt Live-Daten dieses Handbuchs.