AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Come posso risolvere gli errori 504 che ricevo quando utilizzo un Application Load Balancer?
Desidero risolvere l'errore ELB_504 che ricevo nei miei log di accesso dell'Application Load Balancer o nelle metriche di Amazon CloudWatch. Oppure ricevo un errore HTTP 504 quando mi connetto al mio servizio tramite un Application Load Balancer.
Breve descrizione
Un errore HTTP 504 si verifica quando un gateway o un proxy scade. Gli errori HTTP 504 dell'Application Load Balancer possono verificarsi per i seguenti motivi:
- Il bilanciatore del carico non è riuscito a stabilire una connessione con il target entro il termine del timeout per la connessione di 10 secondi.
- Il bilanciatore del carico ha riscontrato un timeout dell'handshake SSL durante la connessione a un target.
Nota: non puoi modificare il timeout dell'handshake SSL di 10 secondi. - Il bilanciatore del carico ha stabilito una connessione con il target, ma il target non ha risposto entro il termine del timeout di inattività.
- Il target ha restituito un valore di intestazione Content-Length maggiore del corpo dell'entità e il bilanciatore del carico è scaduto.
- L'elevato traffico ha fatto sì che i target rispondessero più lentamente.
- Il target è una funzione AWS Lambda e il servizio non ha risposto prima del termine del timeout per la connessione.
Risoluzione
Verifica che il tuo bilanciatore del carico consenta il traffico con target registrati
Controlla la metrica TargetConnectionErrorCount di CloudWatch con la statistica Sum. Se vedi punti dati positivi anziché 0, sono presenti problemi di connessione tra il bilanciatore del carico e il target.
Per risolverli, controlla i gruppi di sicurezza di rete associati al bilanciatore del carico e ai target del backend. Assicurati che i gruppi di sicurezza di rete consentano il traffico tra il bilanciatore del carico e i target in entrambe le direzioni sulle porte del traffico e del controllo dell'integrità. Verifica che la lista di controllo degli accessi alla rete (ACL) della sottorete consenta il traffico dai target ai nodi del bilanciatore del carico sulle porte effimere (1024-65535).
Nota: è consigliabile utilizzare regole del gruppo di sicurezza specifiche per l'Application Load Balancer.
Controlla le metriche del bilanciatore del carico
Per determinare il motivo per cui i target sono contrassegnati come Non integro, controlla le metriche di CloudWatch per l'Application Load Balancer. Se non sono presenti dati delle metriche HTTPCode_ELB_504_Count, gli errori 504 vengono restituiti dai server delle applicazioni, non dal bilanciatore del carico. Controlla se il valore massimo per la metrica TargetResponseTime supera spesso il valore di timeout, perché questa configurazione può causare errori 504.
Inoltre, controlla nei target le seguenti metriche di utilizzo della CPU e della memoria in base al tipo di risorsa:
- Per Amazon Elastic Compute Cloud (Amazon EC2), controlla la metrica CPUUtilization. Per impostazione predefinita, le istanze EC2 non inviano metriche di memoria a CloudWatch, ma puoi inviare una metrica di memoria personalizzata.
- Per le attività di Amazon ECS, controlla le metriche CPUUtilization e MemoryUtilization. Se il valore per una delle due è 1 (100%), l'attività non risponde.
- Per le funzioni Lambda, controlla la metrica Duration. Se Duration dura più a lungo del valore del timeout di inattività del bilanciatore del carico, viene visualizzato un errore Gateway timeout (Timeout del gateway).
Aumenta la disponibilità delle risorse
Se i tuoi target hanno un utilizzo elevato della CPU, potrebbero non rispondere.
Per risolvere il problema, aumenta le seguenti risorse per raggiungere i tuoi target:
- Per Amazon EC2, aumenta la dimensione dell'istanza per consentire al target di utilizzare più risorse di calcolo.
- Per le attività Amazon ECS, aumenta le quote di CPU e memoria nella definizione delle attività Amazon ECS.
- Per le funzioni Lambda, aumentane la memoria per modificare la capacità delle risorse.
Nota: le quantità di CPU e memoria assegnate alla funzione sono proporzionali.
Aggiorna il codice dell'applicazione per renderla più efficiente quando risponde alle richieste HTTP. Assicurati che l'applicazione non impieghi più tempo per rispondere rispetto al timeout di inattività configurato. Per impostazione predefinita, il timeout di inattività per un Application Load Balancer è di 60 secondi. Se necessario, aumenta il timeout di inattività del bilanciatore del carico.
Nota: è consigliabile aumentare il valore del timeout di inattività solo quando il target ha un numero elevato di operazioni di calcolo da completare. Altrimenti, è consigliabile ottimizzare l'utilizzo delle risorse nei target.
Scala i target in base alla domanda
Per scalare i target in base alla domanda, esegui queste azioni per la tua configurazione:
- Per Amazon EC2, utilizza i gruppi EC2 Auto Scaling con una policy di dimensionamento per i picchi di traffico.
- Per Amazon ECS, utilizza il dimensionamento automatico del cluster.
Nota: quando invochi una funzione Lambda, si verifica il dimensionamento automatico della funzione.
Controlla le tue dipendenze esterne
Quando un'applicazione utilizza un'architettura di microservizi, le dipendenze esterne, come database o API, influiscono sul tempo di risposta del target.
Verifica se sono presenti problemi derivanti dalle seguenti dipendenze esterne comuni:
- Per i database Amazon Relational Database Service (Amazon RDS), controlla le metriche ReadLatency, WriteLatency e DatabaseConnections di CloudWatch.
- Per le code di Amazon Simple Queue Service (Amazon SQS), controlla le metriche ApproximateAgeOfOldestMessage e NumberOfMessagesDelayed di CloudWatch.
- Per i bucket Amazon Simple Storage Service (Amazon S3), controlla le metriche FirstByteLatency, TotalRequestLatency, 4xxErrors e 5xxErrors di CloudWatch.
- Per i servizi di autenticazione Amazon Cognito, controlla la metrica TokenRefreshSuccesses di CloudWatch e verifica la presenza di errori ThrottlingException.
Per determinare l'origine di un collo di bottiglia nelle prestazioni, esegui queste azioni:
- Aggiungi un'intestazione Server-Timing alle richieste HTTP per misurare la latenza con CloudWatch.
- Utilizza un servizio, come ad esempio AWS X-Ray, per implementare una soluzione di osservabilità nell'applicazione.
- Riduci la distanza fisica tra le risorse per ridurre la latenza.
Utilizza il Sistema di ottimizzazione del calcolo per evitare problemi futuri
Utilizza il Sistema di ottimizzazione del calcolo AWS per ottenere informazioni dettagliate sull'utilizzo delle risorse di Amazon EC2, Amazon ECS e Lambda. Il Sistema di ottimizzazione del calcolo rileva quando l'utilizzo delle risorse è troppo elevato per aiutarti a evitare i timeout. Suggerisce inoltre le best practice sull'ottimizzazione dei carichi di lavoro.
Informazioni correlate
Come posso risolvere i problemi di autenticazione nel mio Application Load Balancer?
Come posso risolvere gli errori 504 restituiti durante l'utilizzo di un Classic Load Balancer?
- Argomenti
- Networking & Content Delivery
- Lingua
- Italiano
Video correlati


Contenuto pertinente
AWS UFFICIALEAggiornata 3 anni fa