View a markdown version of this page

Risoluzione dei problemi - Test di carico distribuito su AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi

La risoluzione dei problemi noti fornisce istruzioni per mitigare gli errori noti. Se queste istruzioni non risolvono il problema, Contatta AWS Support fornisce istruzioni per aprire un caso AWS Support per questa soluzione.

Risoluzione di problemi noti

Problema: stai utilizzando un VPC esistente e i tuoi test hanno esito negativo con lo stato Fallito, che genera il seguente messaggio di errore:

Test might have failed to run.

  • Risoluzione:

Assicurati che le sottoreti esistano nel VPC specificato e che abbiano un percorso verso Internet con un gateway Internet o un gateway NAT. AWS Fargate necessita dell'accesso per estrarre l'immagine del contenitore dall'archivio pubblico per eseguire correttamente i test.

Problema: i test richiedono troppo tempo per essere eseguiti o sono bloccati a tempo indeterminato

  • Risoluzione:

Annulla il test e controlla AWS Fargate per assicurarti che tutte le attività siano state interrotte. Se non si sono interrotti, interrompi manualmente tutte le attività di Fargate. Controlla i limiti delle attività Fargate su richiesta sul tuo account per assicurarti di poter avviare il numero di attività desiderato. Puoi anche controllare CloudWatch i log della funzione Lambda task-runner per maggiori informazioni sugli errori durante l'avvio delle attività di Fargate. Controlla i log CloudWatch ECS per i dettagli su ciò che accade nei container Fargate in esecuzione.

Problema: i test vengono avviati ma non vengono completati o lo stato delle attività ECS è sconosciuto

  • Risoluzione:

Se hai selezionato l'opzione per fornire un VPC esistente nell'account in cui è stata distribuita la soluzione, assicurati che il VPC utilizzato da ECS Tasks disponga di indirizzi IP liberi sufficienti per avviare il numero di attività fornite nell'input del test. La definizione delle attività ECS utilizza l'immagine ECR che richiede un gateway Internet o un percorso verso Internet in modo che il servizio ECS possa fornire le attività scaricando l'immagine ECR della soluzione da aws- solutions/distributed -load-testing-on-aws-load-tester. Se non riesci a fornire un percorso verso Internet poiché tutte le sottoreti nel VPC sono private, puoi ospitare l'immagine ECR nel tuo account utilizzando la cache pull through ECR. Aggiorna la definizione dell'attività con il nuovo URI dell'immagine ECR e crea una nuova revisione. Una volta aggiornata la definizione del task, è necessario aggiornare la configurazione della soluzione nella tabella DynamoDB per utilizzare la nuova revisione. Il nome della tabella DynamoDB si trova nella scheda stack CloudFormation outputs sotto la chiave. ScenariosTable Aggiorna l'attributo taskDefinition per l'elemento con la chiave testID e il valore region- []. SOLUTION-DEPLOYED-REGION

Problema: i test devono utilizzare un endpoint privato o non disponibile tramite il gateway Internet

  • Risoluzione:

Quando testate endpoint API privati che non sono accessibili tramite il gateway Internet, prendete in considerazione i seguenti approcci:

  1. Configurazione di rete: assicurati che le tabelle di routing della sottorete utilizzate dalle attività ECS siano aggiornate con un percorso verso l'intervallo di indirizzi IP dell'endpoint privato oggetto del test. Ciò consente al traffico di test di raggiungere l'endpoint privato all'interno del tuo VPC.

  2. Risoluzione DNS: per i domini personalizzati, configura le impostazioni DNS nel tuo VPC per risolvere il nome di dominio dell'endpoint privato. Per istruzioni dettagliate, consulta la documentazione DNS di VPC.

  3. Endpoint VPC: se stai testando i servizi AWS, prendi in considerazione l'utilizzo di endpoint VPC ( PrivateLinkAWS) per stabilire una connettività privata. Ad esempio, per testare un gateway API privato, puoi creare un endpoint VPC per API Gateway. Consulta la documentazione di Private API Gateway.

  4. Peering VPC: se l'endpoint privato si trova in un VPC diverso, stabilisci il peering VPC tra il VPC in cui è implementata la soluzione e il VPC contenente l'endpoint privato. Configura le tabelle di routing appropriate in entrambi i VPC. Consulta la documentazione del peering VPC.

  5. Transit Gateway: per scenari di rete più complessi che coinvolgono più VPC, prendi in considerazione l'utilizzo di AWS Transit Gateway per instradare il traffico tra il VPC della soluzione e il VPC contenente l'endpoint privato. Consultate la documentazione di Transit Gateway.

  6. Gruppi di sicurezza: assicurati che i gruppi di sicurezza associati alle tue attività ECS consentano il traffico in uscita verso l'endpoint privato e che i gruppi di sicurezza dell'endpoint privato consentano il traffico in entrata dalle attività ECS.

Per testare gli Application Load Balancer interni o le istanze EC2, assicurati che gli intervalli CIDR VPC non si sovrappongano e che le rotte necessarie siano configurate nelle tabelle di routing.

Problema: i test sono in corso di completamento ma i risultati non sono disponibili nell'interfaccia utente

  • Risoluzione:

Se il test è stato completato ma i risultati non sono disponibili nell'interfaccia utente, i file dei risultati dovrebbero essere ancora disponibili nel bucket S3 delle attività ECS che hanno eseguito i test. Questa è una limitazione nota della soluzione. Nell'architettura attuale, la soluzione utilizza una funzione Lambda di analisi dei risultati per riepilogare i risultati di più attività ECS, che vengono quindi archiviate come elemento nella tabella DynamoDB. La tabella DynamoDB ha un limite di dimensione massima dell'elemento di 400 KB. Questa limitazione viene raggiunta in base alla complessità dello script di test, alla concorrenza e al numero di attività utilizzate. L'errore non significa che il test stia fallendo; indica che il processo di riepilogo dei risultati e di memorizzazione nella tabella DynamoDB per le operazioni CRUD non è riuscito. I risultati sono ancora disponibili nel bucket S3 per lo scenario di test.

Problemi di implementazione di ALB + ECS Fargate

Problema: la convalida del certificato ACM è bloccata nello stato «In attesa di convalida»

  • Risoluzione:

Se hai richiesto un certificato ACM pubblico utilizzando la convalida DNS, devi aggiungere il record CNAME fornito da ACM alla tua configurazione DNS. Accedi alla console ACM, espandi i dettagli del certificato e aggiungi il record di convalida DNS al provider DNS del tuo dominio. Se hai utilizzato la convalida e-mail, controlla l'indirizzo e-mail associato al dominio per l'e-mail di convalida di AWS. Per ulteriori informazioni, consulta la convalida DNS nella AWS Certificate Manager User Guide.

Problema: la console Web restituisce un errore «502 Bad Gateway» o «503 Service Temporaneamente non disponibile» dopo la distribuzione

  • Risoluzione:

Controlla i controlli sullo stato del gruppo target ALB nella console EC2. Se le attività di ECS Fargate risultano non integre, verifica che le attività siano in esecuzione nella console ECS e controlla che i log in delle attività non contengano errori. CloudWatch Assicurati che il gruppo di sicurezza collegato alle attività ECS consenta il traffico in entrata dal gruppo di sicurezza ALB.

Problema: il DNS è configurato ma il dominio personalizzato non si risolve nella console web

  • Risoluzione:

Verifica che il record CNAME sia configurato correttamente nel tuo provider DNS, mappando il dominio personalizzato (ad esempioconsole.example.com) al nome DNS ALB degli output. CloudFormation La propagazione DNS può richiedere fino a 48 ore a seconda del provider DNS e delle impostazioni TTL. È possibile verificare il record DNS utilizzando o. dig console.example.com CNAME nslookup console.example.com

Problema: la console Web restituisce un errore «403 Forbidden» dopo la distribuzione

  • Risoluzione:

L'ACL web AWS WAF distribuito davanti all'ALB potrebbe bloccare richieste legittime. Apri la console AWS WAF, seleziona l'ACL web associato all'ALB e controlla la scheda Richieste campionate per identificare quale regola blocca il traffico. Puoi modificare le regole WAF per consentire le richieste bloccate. Ad esempio, se un gruppo di regole gestito produce falsi positivi, è possibile impostare l'azione specifica della regola su Count anziché su Block per consentire il traffico mentre lo si sta ancora registrando. Per ulteriori informazioni, consulta Testare e ottimizzare le protezioni AWS WAF nella AWS WAF Developer Guide.

Problemi di distribuzione Headless (bring your own web server)

Problema: la console Web visualizza gli errori CORS durante la connessione all'API

  • Risoluzione:

Cross-Origin Gli errori di condivisione delle risorse (CORS) si verificano quando la console Web ospitata sul dominio tenta di chiamare gli endpoint API Gateway della soluzione. Assicurati che il tuo server web serva la console tramite HTTPS, poiché gli endpoint API Gateway richiedono HTTPS. Verifica che il dominio di origine del tuo server web corrisponda alle origini consentite configurate nelle impostazioni CORS del gateway API. Se si utilizza un dominio personalizzato, potrebbe essere necessario aggiornare la configurazione CORS dell'API Gateway per includere il dominio.

Problema: la console Web viene caricata ma l'autenticazione fallisce o reindirizza in modo errato

  • Risoluzione:

Le risorse della console Web includono un file di configurazione con le impostazioni del pool di utenti di Cognito e l'URL dell'endpoint dell'API. Verifica che questo file di configurazione non sia stato modificato durante l'estrazione. Assicurati che il tuo server web serva la console tramite HTTPS, poiché Cognito richiede HTTPS per gli URL di callback. Verifica che l'URL di callback del client dell'app Cognito includa il dominio del tuo server web.