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?

4 minuti di lettura
0

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:

1.    Usa SSH per connetterti all'istanza di container in cui è posizionata l'attività.

2.    Per connetterti al database RDS, esegui il seguente comando:

$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306

Nota: Sostituisci test.ab12cde3fg4.us-east-1.rds.amazonaws.com con l'endpoint del database. Sostituisci 3306 con la porta del database.

L'output è simile al seguente:

> Trying 172.31.122.28
 > Connected to test.ab12cde3fg4.us-east-1.rds.amazonaws.com
 > Escape character is '^]'.

Importante: Telnet non è preinstallato sulle Amazon Machine Image (AMI) ottimizzate per Amazon ECS. Per installare Telnet, esegui il comando sudo yum install telnet -y.

Per le istanze di container basate su Windows:

1.    Usa il Remote Desktop Protocol (RDP) per connetterti all'istanza di container in cui è posizionata l'attività.

2.    Per connetterti al database RDS, esegui il comando seguente utilizzando il prompt dei comandi di Windows o Windows PowerShell:

$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306

Nota: Sostituisci test.ab12cde3fg4.us-east-1.rds.amazonaws.com con l'endpoint del database. Sostituisci 3306 con la porta del database.

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.

Se la connessione è stata stabilita, viene visualizzata una pagina vuota.

Se la connessione non è stata stabilita e ricevi gli errori “Timeout della connessione” o “Connessione non riuscita”, completa i seguenti passaggi:

1.    Controlla se i gruppi di sicurezza collegati consentono l'accesso al database RDS. Puoi utilizzare la chiamata API DescribeInstances o la scheda Descrizione per l'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à.

Suggerimento: È consigliabile creare un gruppo di sicurezza che consenta il traffico in entrata dalla porta del database. Collega il gruppo di sicurezza al database e all'istanza di container oppure associa il gruppo di sicurezza alle attività basate su awsvpc.

2.    Verifica che la lista di controllo degli accessi alla rete (ACL) e la tabella di routing associate alla sottorete consentano l'accesso al database.

Verifica i parametri di connessione al database

1.    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 dall’archivio dei parametri AWS Systems Manager o da AWS Secrets Manager.

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à.

2.    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 (come il nome utente del database o la password del database), reimposta la password del database.

3.    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.


AWS UFFICIALE
AWS UFFICIALEAggiornata 4 anni fa