Come posso risolvere i problemi di connettività tra le attività Amazon ECS per un tipo di avvio di Amazon EC2 e un database Amazon RDS?
La mia applicazione viene eseguita come una serie di attività avviate da Amazon Elastic Container Service (Amazon ECS) su istanze Amazon Elastic Compute Cloud (Amazon EC2). La mia applicazione non è in grado di comunicare con il database Amazon Relational Database Service (Amazon RDS).
Risoluzione
Verifica le configurazioni di rete
Per verificare se un'istanza di container è in grado di stabilire una connessione al database, completa i seguenti passaggi (per istanze di container basate su Linux o Windows):
Per le istanze di container basate su Linux:
- Crea credenziali della coppia di chiavi per utilizzare SSH per connetterti all'istanza di container in cui è collocata l’attività.
- Per connetterti al database RDS, esegui il seguente comando:
Nota: Sostituisci test.ab12cde3fg4.us-east-1.rds.amazonaws.com con l'endpoint del database. Sostituisci 3306 con la porta del database.$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306
L'output è simile al seguente:
Importante: Telnet non è preinstallato sulle Amazon Machine Image (AMI) ottimizzate per Amazon ECS. Per installare Telnet, esegui il comando sudo yum install telnet -y.> Trying 172.31.122.28 > Connected to test.ab12cde3fg4.us-east-1.rds.amazonaws.com > Escape character is '^]'.
Per le istanze di container basate su Windows:
Importante: Telnet non è preinstallato sulle AMI Windows ottimizzate per Amazon ECS. Per installare Telnet, esegui il comando Install-WindowsFeature -Name Telnet-Client utilizzando PowerShell come amministratore.
- Usa il Remote Desktop Protocol (RDP) per connetterti all'istanza di container in cui è posizionata l'attività.
- Per connetterti al database RDS, esegui il comando seguente utilizzando il prompt dei comandi di Windows o Windows PowerShell:
Nota: Sostituisci test.ab12cde3fg4.us-east-1.rds.amazonaws.com con l'endpoint del database. Sostituisci 3306 con la porta del database.$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306
Se la connessione è stata stabilita, viene visualizzata una pagina vuota. Se la connessione non è stata stabilita e ricevi gli errori “Connection Timed Out” o “Connect failed”, completa i seguenti passaggi:
- Controlla se i gruppi di sicurezza collegati consentono l'accesso al database RDS. Puoi utilizzare la chiamata API DescribeInstances o la scheda Descrizione dell'ID dell'istanza selezionato nella console Amazon EC2.
Nota: Nella modalità di rete bridge e host, i gruppi di sicurezza collegati all'istanza di container regolano l'accesso al database. Nella modalità di rete awsvpc, l'accesso è regolato dai gruppi di sicurezza associati durante l'avvio del servizio o dell'attività. È consigliabile creare un gruppo di sicurezza che consenta il traffico in entrata dalla porta del database. Quindi, collega il gruppo di sicurezza al database e all'istanza di container oppure associa il gruppo di sicurezza alle attività basate su awsvpc. - Verifica che la lista di controllo degli accessi alla rete (ACL) e la tabella di routing associate alla sottorete consentano l'accesso al database. Per maggiori informazioni, consulta Perché non riesco a connettermi a un servizio quando il gruppo di sicurezza e l'ACL di rete consentono il traffico in entrata?
Verifica i parametri di connessione al database
Per verificare i parametri di connessione al database, completa i passaggi seguenti:
- Nella sezione ambiente della definizione di container, passa le variabili di ambiente in modo sicuro. Per passarle in modo sicuro, fai riferimento alle variabili di ambiente da AWS Systems Manager Parameter Store o AWS Secrets Manager. Per ulteriori informazioni, consulta Come posso trasmettere informazioni segrete o sensibili in modo sicuro ai container in un'attività Amazon ECS?
Nota: Un'applicazione utilizza parametri (come l'endpoint del database, la porta del database e le credenziali di accesso al database) per stabilire una connessione con il database. Questi parametri vengono in genere passati come variabili di ambiente all'attività. - Se il container dell'attività è in grado di stabilire una connessione con il database, ma non può autenticarsi a causa di parametri di connessione errati, reimposta la password del database.
- Rimuovi eventuali spazi tra i caratteri iniziali o finali nei parametri di connessione.
Nota: Gli errori di sintassi possono impedire la connessione tra il container e il database RDS.
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa