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.
Designüberlegungen
In diesem Abschnitt werden wichtige Designentscheidungen und Konfigurationsoptionen für die Distributed Load Testing on AWS-Lösung beschrieben, einschließlich unterstützter Anwendungen, Testtypen, Planungsoptionen und Überlegungen zur Bereitstellung.
Unterstützte Anwendungen
Diese Lösung unterstützt das Testen von cloudbasierten Anwendungen und lokalen Anwendungen, sofern Sie über eine Netzwerkverbindung zwischen Ihrem AWS-Konto und Ihrer Anwendung verfügen. Die Lösung unterstützt APIs, die HTTP- oder HTTPS-Protokolle verwenden.
Testtypen
Distributed Load Testing auf AWS unterstützt mehrere Testtypen: einfache HTTP-Endpunkttests, JMeter, K6 und Locust.
Anmerkung
Die Lösung verteilt JMeter, K6 und Locust als Komponenten von Drittanbietern ohne Änderungen. Sicherheitsüberlegungen, Patching-Optionen und Lizenzinformationen finden Sie unter Test-Frameworks. Third-party
Einfache HTTP-Endpunkttests
Die Webkonsole bietet eine Schnittstelle zur Konfiguration von HTTP-Endpunkten, mit der Sie jeden HTTP- oder HTTPS-Endpunkt testen können, ohne benutzerdefinierte Skripts schreiben zu müssen. Sie definieren die Endpunkt-URL, wählen die HTTP-Methode (GET, POST, PUT, DELETE usw.) aus einem Dropdownmenü aus und fügen optional benutzerdefinierte Anforderungsheader und Body-Payloads hinzu. Diese Konfiguration ermöglicht es Ihnen, APIs mit benutzerdefinierten Autorisierungstoken, Inhaltstypen oder anderen HTTP-Headern und Anforderungstexten zu testen, die für Ihre Anwendung erforderlich sind.
Wenn Sie einen HTTP-Endpunkt konfigurieren, konvertiert die Lösung Ihre Konfiguration in einen Testplan, der von der mitgelieferten Apache JMeter-Binärdatei über das Taurus-Framework ausgeführt wird. Einfache HTTP-Endpunkttests akzeptieren kein Testarchiv, sodass sie die mitgelieferte JMeter-Binärdatei oder -Plugins nicht überschreiben können. Wenn Sie HTTP-Endpunkttests mit einem gepatchten JMeter ausführen müssen, verwenden Sie stattdessen den JMeter-Testtyp. Informationen zu Sicherheitsaspekten finden Sie unter Apache JMeter.
JMeter-Tests
Wenn Sie ein Testszenario mit der Webkonsole erstellen, können Sie ein JMeter-Testskript hochladen. Die Lösung lädt das Skript in den S3-Bucket des Szenarios hoch. Wenn Amazon ECS-Aufgaben ausgeführt werden, laden sie das JMeter-Skript von S3 herunter und führen den Test aus.
Wichtig
Ihr JMeter-Skript kann zwar Parallelität (virtuelle Benutzer), Transaktionsraten (TPS), Anlaufzeiten und andere Ladeparameter definieren, aber die Lösung überschreibt diese Konfigurationen mit den Werten, die Sie während der Testerstellung im Traffic Shape-Bildschirm angeben. Die Traffic Shape-Konfiguration steuert die Anzahl der Aufgaben, die Parallelität (virtuelle Benutzer pro Aufgabe), die Dauer des Hochlaufs und die Haltedauer für die Testausführung.
Wenn Sie über JMeter-Eingabedateien verfügen, können Sie die Eingabedateien zusammen mit dem JMeter-Skript komprimieren. Sie können die Zip-Datei auswählen, wenn Sie ein Testszenario erstellen.
Wenn Sie Plugins einbeziehen möchten, werden alle .jar-Dateien, die in einem /plugins-Unterverzeichnis der mitgelieferten ZIP-Datei enthalten sind, in das JMeter-Erweiterungsverzeichnis kopiert und stehen dort für Auslastungstests zur Verfügung.
Anmerkung
Wenn Sie JMeter-Eingabedateien in Ihre JMeter-Skriptdatei aufnehmen, müssen Sie den relativen Pfad der Eingabedateien in Ihre JMeter-Skriptdatei aufnehmen. Außerdem müssen sich die Eingabedateien im relativen Pfad befinden. Wenn sich Ihre JMeter-Eingabedateien und die Skriptdatei beispielsweise im home/user Verzeichnis/befinden und Sie auf die Eingabedateien in der JMeter-Skriptdatei verweisen, muss der Pfad der Eingabedateien lauten. /INPUT_FILES. Wenn Sie stattdessen/home/user/INPUT_FILES verwenden, schlägt der Test fehl, da er die Eingabedateien nicht finden kann.
Wenn Sie JMeter-Plugins einbeziehen, müssen die .jar-Dateien in einem Unterverzeichnis namens /plugins im Stammverzeichnis der ZIP-Datei gebündelt werden. Relativ zum Stammverzeichnis der Zip-Datei muss der Pfad zu den JAR-Dateien sein. /plugins/BUNDLED_PLUGIN.jar.
Weitere Informationen zur Verwendung von JMeter-Skripten finden Sie im JMeter-Benutzerhandbuch
K6-Tests
Die Lösung unterstützt Tests auf Basis des K6-Frameworks. Sie können die K6-Testdatei zusammen mit allen erforderlichen Eingabedateien in eine Archivdatei hochladen. Die Webkonsole zeigt eine Lizenzbestätigungsmeldung an, wenn Sie einen neuen K6-Test erstellen. Lizenz- und Sicherheitsdetails finden Sie unter Grafana K6.
Wichtig
Ihr K6-Skript kann zwar Parallelität (virtuelle Benutzer), Stufen, Schwellenwerte und andere Lastparameter definieren, aber die Lösung überschreibt diese Konfigurationen mit den Werten, die Sie bei der Testerstellung im Traffic Shape-Bildschirm angeben. Die Traffic Shape-Konfiguration steuert die Anzahl der Aufgaben, die Parallelität (virtuelle Benutzer pro Aufgabe), die Dauer des Hochlaufs und die Haltedauer für die Testausführung.
Locust testet
Die Lösung unterstützt Tests auf Basis des Locust Frameworks. Sie können die Locust-Testdatei zusammen mit allen erforderlichen Eingabedateien in eine Archivdatei hochladen.
Wichtig
Ihr Locust-Skript kann zwar Parallelität (Benutzeranzahl), Spawn-Rate und andere Ladeparameter definieren, aber die Lösung überschreibt diese Konfigurationen mit den Werten, die Sie während der Testerstellung im Traffic Shape-Bildschirm angeben. Die Traffic Shape-Konfiguration steuert die Anzahl der Aufgaben, die Parallelität (virtuelle Benutzer pro Aufgabe), die Dauer des Hochlaufs und die Haltedauer für die Testausführung.
Planung von Tests
Die Lösung bietet drei Optionen zur Ausführungszeit für die Ausführung von Lasttests:
-
Jetzt ausführen — Führt den Belastungstest unmittelbar nach der Erstellung aus
-
Einmal ausführen — Führen Sie den Test an einem bestimmten Datum und zu einer bestimmten Uhrzeit in der future aus
-
Nach einem Zeitplan ausführen — Erstellen Sie wiederkehrende Tests mithilfe von Cron-Ausdrücken, um den Zeitplan zu definieren
Wenn Sie Einmal ausführen auswählen, geben Sie die Laufzeit im 24-Stunden-Format und das Ausführungsdatum an, an dem der Belastungstest ausgeführt werden soll.
Wenn Sie Nach Zeitplan ausführen auswählen, können Sie entweder manuell einen Cron-Ausdruck eingeben oder aus gängigen Cron-Mustern wählen (z. B. stündlich, täglich zu einer bestimmten Zeit, wochentags oder monatlich). Der Cron-Ausdruck verwendet ein detailliertes Zeitplanformat mit Feldern für Minuten, Stunden, Monatstag, Monat, Wochentag und Jahr. Sie müssen auch ein Ablaufdatum angeben, das festlegt, wann der geplante Test nicht mehr ausgeführt werden soll. Weitere Informationen zur Funktionsweise der Planung finden Sie im Abschnitt zum Ablauf der Testplanung in diesem Handbuch.
Anmerkung
-
Testdauer: Berücksichtigen Sie bei der Planung die Gesamtdauer der Tests. Ein Test mit einer Anlaufzeit von 10 Minuten und einer Haltezeit von 40 Minuten dauert beispielsweise etwa 80 Minuten.
-
Mindestintervall: Stellen Sie sicher, dass das Intervall zwischen den geplanten Tests länger ist als die geschätzte Testdauer. Wenn der Test beispielsweise etwa 80 Minuten dauert, sollten Sie ihn so planen, dass er nicht häufiger als alle 3 Stunden ausgeführt wird.
-
Stündliche Begrenzung: Das System erlaubt es nicht, Tests mit einem Unterschied von nur einer Stunde zu planen, selbst wenn die geschätzte Testdauer weniger als eine Stunde beträgt.
Gleichzeitige Tests
Diese Lösung erstellt für jeden Test ein CloudWatch Amazon-Dashboard, das die kombinierte Ausgabe aller im Amazon ECS-Cluster ausgeführten Aufgaben in Echtzeit anzeigt. Das CloudWatch Dashboard zeigt die durchschnittliche Antwortzeit, die Anzahl der gleichzeitigen Benutzer, die Anzahl der erfolgreichen Anfragen und die Anzahl der fehlgeschlagenen Anfragen. Die Lösung aggregiert jede Metrik sekundengenau und aktualisiert das Dashboard jede Minute.
Benutzerverwaltung
Bei der Erstkonfiguration geben Sie einen Benutzernamen und eine E-Mail-Adresse an, die Amazon Cognito verwendet, um Ihnen Zugriff auf die Webkonsole der Lösung zu gewähren. Die Konsole bietet keine Benutzerverwaltung. Um weitere Benutzer hinzuzufügen, müssen Sie die Amazon Cognito Cognito-Konsole verwenden. Weitere Informationen finden Sie unter Managing Users in User Pools im Amazon Cognito Developer Guide.
Informationen zur Migration vorhandener Benutzer zu Amazon Cognito-Benutzerpools finden Sie im AWS-Blog Approaches for migration users to Amazon Cognito
Identitätsanbieterverbund
Der Amazon Cognito Cognito-Benutzerpool der Lösung unterstützt den Verbund mit externen Identitätsanbietern (IdPs), die die Protokolle SAML 2.0 oder OpenID Connect (OIDC) verwenden. Federation ermöglicht es Benutzern, sich mit ihren vorhandenen Unternehmens- oder Organisationsanmeldedaten anstelle von Anmeldeinformationen an der Webkonsole anzumelden. Cognito-native Verbundbenutzer erhalten dieselben Zugriffsberechtigungen wie Benutzer, die direkt im Cognito-Benutzerpool erstellt wurden.
Die Lösung stellt bereits den Cognito-Benutzerpool, die Domäne, den App-Client und die gehostete Benutzeroberfläche bereit. Um den Verbund zu aktivieren, müssen Sie nur Ihren Identitätsanbieter registrieren und ihn auf dem vorhandenen App-Client aktivieren.
Wenn Sie die optionale MCP-Serverintegration bereitstellen, können Verbundbenutzer auch mit denselben Cognito-Benutzerpool-Anmeldeinformationen auf den MCP-Server zugreifen.
Voraussetzungen
Bevor Sie den Verbund konfigurieren, benötigen Sie Folgendes:
-
Ein externer Identitätsanbieter, der SAML 2.0 oder OIDC unterstützt
-
Administratorzugriff zur Konfiguration des externen IdP (um Weiterleitungs-URIs oder ACS-URLs festzulegen)
-
Die Cognito-Benutzerpool-ID der Lösung (verfügbar in den CloudFormation Stack-Ressourcen oder der Amazon Cognito Cognito-Konsole)
-
Das Cognito-Domainpräfix der Lösung (verfügbar in den CloudFormation Stack-Ausgaben oder in der Cognito-Konsole unter App-Integration > Domain)
Schritt 1: Konfigurieren Sie Ihren Identitätsanbieter
Konfigurieren Sie Ihren externen Identitätsanbieter mit den folgenden Werten, sodass er mit dem Cognito-Benutzerpool der Lösung kommunizieren kann.
Für SAML-Identitätsanbieter:
-
SP-Entitäts-ID:
urn:amazon:cognito:sp:_<UserPoolId>_ -
ACS-URL:
\https://<cognito-domain>.auth.<region>.amazoncognito.com/saml2/idpresponse
Für OIDC-Identitätsanbieter:
-
URI umleiten:
\https://<cognito-domain>.auth.<region>.amazoncognito.com/oauth2/idpresponse
Einzelheiten zu den Anforderungen Ihres IdP finden Sie unter Hinzufügen von SAML-Identitätsanbietern zu einem Benutzerpool oder Hinzufügen von OIDC-Identitätsanbietern zu einem Benutzerpool im Amazon Cognito Developer Guide.
Schritt 2: Registrieren Sie den Identitätsanbieter in Cognito
Fügen Sie mithilfe der Amazon Cognito-Konsole Ihren externen Identitätsanbieter zum bestehenden Cognito-Benutzerpool der Lösung hinzu.
Eine schrittweise Anleitung finden Sie unter Hinzufügen einer Benutzerpool-Anmeldung über einen Drittanbieter im Amazon Cognito Developer Guide.
Schritt 3: Attributzuordnungen konfigurieren
Konfigurieren Sie Attributzuordnungen zwischen den Ansprüchen Ihres Identitätsanbieters und den Attributen des Cognito-Benutzerpools. Ordnen Sie mindestens den E-Mail-Anspruch des Benutzers vom externen Anbieter dem email Cognito-Attribut zu. Erwägen Sie auch die Zuordnung name oder nickname ob Ihr Identitätsanbieter sie bereitstellt.
Anweisungen finden Sie unter Spezifizieren von Identitätsanbieter-Attributzuordnungen für Ihren Benutzerpool im Amazon Cognito Developer Guide.
Schritt 4: Aktivieren Sie den Identitätsanbieter auf dem App-Client
Suchen Sie in der Amazon Cognito Cognito-Konsole den App-Client, der von der Lösung erstellt wurde, und aktivieren Sie Ihren neuen Identitätsanbieter unter den Einstellungen für die gehostete Benutzeroberfläche.
Anweisungen finden Sie unter Konfiguration eines Benutzerpool-App-Clients im Amazon Cognito Developer Guide.
Anmerkung
Die Lösung konfiguriert bereits die Callback- und Abmelde-URLs, die OAuth-Bereiche und die gehostete UI-Domain des App-Clients. Sie müssen diese Einstellungen nicht ändern — aktivieren Sie lediglich Ihren Identitätsanbieter auf dem vorhandenen App-Client.
Wichtig
Die Lösung lässt die SupportedIdentityProviders Eigenschaft absichtlich in der CloudFormation App-Client-Konfiguration aus. Auf diese Weise können Sie nach der Bereitstellung Identitätsanbieter hinzufügen, ohne dass eine Drift-Erkennung ausgelöst wird CloudFormation . Wenn diese Eigenschaft in der Vorlage festgelegt wäre, würden alle manuellen IdP-Änderungen über die Konsole oder CLI beim nächsten Stack-Update überschrieben, sodass der App-Client nur auf die in der Vorlage aufgeführten Anbieter zurückgesetzt würde.
Da diese Eigenschaft weggelassen wird, wird CloudFormation nicht nachverfolgt oder verwaltet, welche Identitätsanbieter auf dem App-Client aktiviert sind. Nachdem Sie den Verbund konfiguriert haben, sind Sie für die Verwaltung der Inhalte von SupportedIdentityProviders auf dem App-Client verantwortlich. Um unbefugte Änderungen zu überwachen, aktivieren Sie die CloudTrailAWS-Protokollierung und erstellen Sie EventBridge Amazon-Regeln für Warnmeldungen CreateIdentityProvider und UpdateUserPoolClient API-Aufrufe, die auf den Cognito-Benutzerpool der Lösung abzielen.
Anmerkung
-
Durch das Hinzufügen eines externen Identitätsanbieters wird bestehenden Cognito-native Benutzern nicht die Möglichkeit genommen, sich mit ihren aktuellen Anmeldeinformationen anzumelden.
-
Verbundbenutzer unterliegen denselben regionalen Verfügbarkeitsbeschränkungen wie der Cognito-Benutzerpool. Weitere Informationen finden Sie unter Regionaler Einsatz.
-
Testen Sie die Verbundanmeldung mit einer kleinen Benutzergruppe, bevor Sie sie in Ihrer Organisation einführen.
Den Standard-Cognito-Benutzer deaktivieren oder löschen
Nach der Konfiguration des Verbunds möchten Sie möglicherweise den Standardbenutzer, der während der Stack-Bereitstellung erstellt wurde, deaktivieren oder löschen. Dies ist optional — der Standardbenutzer funktioniert weiterhin zusammen mit der Verbundanmeldung.
Um einen Benutzer zu deaktivieren, navigieren Sie in der Amazon Cognito-Konsole
Weitere Informationen finden Sie unter Benutzerkonten verwalten und suchen im Amazon Cognito Developer Guide.
Regionale Bereitstellung
Diese Lösung verwendet Amazon Cognito, das nur in bestimmten AWS-Regionen verfügbar ist. Daher müssen Sie diese Lösung in einer Region bereitstellen, in der Amazon Cognito verfügbar ist. Die aktuelle Serviceverfügbarkeit nach Regionen finden Sie in der regionalen AWS-Serviceliste