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 per RDS Proxy
Di seguito, sono disponibili idee per la risoluzione di alcuni problemi comuni relativi al proxy RDS e informazioni sui CloudWatch registri di RDS Proxy.
Nei log RDS Proxy, ogni voce è preceduta dal nome dell'endpoint proxy associato. Questo nome può essere quello specificato per un endpoint definito dall'utente. In alternativa, può essere il nome speciale dell'endpoint predefinito default
di un proxy che esegue richieste di lettura/scrittura. Per ulteriori informazioni sugli endpoint proxy, consulta Utilizzo degli endpoint Amazon RDS Proxy.
Verifica della connettività a un proxy
È possibile utilizzare i seguenti comandi per verificare che tutti i componenti, ad esempio il proxy, il database e le istanze di calcolo presenti nella connessione, possano comunicare tra loro.
Esamina il proxy stesso usando il describe-db-proxiescomando. Esamina anche il gruppo target associato utilizzando il comando describe-db-proxy-target-groups. Verifica che i dettagli delle destinazioni corrispondano all'istanza database RDS che intendi associare al proxy. Utilizzare comandi come i seguenti.
aws rds describe-db-proxies --db-proxy-name $DB_PROXY_NAME aws rds describe-db-proxy-target-groups --db-proxy-name $DB_PROXY_NAME
Per confermare che il proxy è in grado di connettersi al database sottostante, esamina le destinazioni specificate nei gruppi di destinazione utilizzando il describe-db-proxy-targetscomando. Utilizzare un comando come il seguente.
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME
L'output del describe-db-proxy-targetscomando include un TargetHealth
campo. È possibile esaminare i campi State
, Reason
e Description
all'interno di TargetHealth
per verificare se il proxy può comunicare con l'istanza database sottostante.
-
Un valore
State
diAVAILABLE
indica che il proxy può connettersi all'istanza database. -
Un valore
State
diUNAVAILABLE
indica un problema di connessione temporaneo o permanente. In questo caso, esaminare i campiReason
eDescription
. Ad esempio, seReason
ha un valore pari aPENDING_PROXY_CAPACITY
, provare a connettersi nuovamente dopo che il proxy ha terminato l'operazione di ridimensionamento. SeReason
ha un valore diUNREACHABLE
,CONNECTION_FAILED
oAUTH_FAILURE
, utilizzare la spiegazione del campoDescription
per facilitare la diagnosi del problema. -
Il valore del campo
State
potrebbe essereREGISTERING
per un breve periodo prima di passare aAVAILABLE
oUNAVAILABLE
.
Se il comando Netcat (nc
) seguente segnala l'esito positivo, puoi accedere all'endpoint del proxy dall'istanza EC2 o da un altro sistema in cui hai eseguito l'accesso. Questo comando segnala un errore se non ti trovi nello stesso VPC del proxy e del database associato. Potresti essere in grado di accedere direttamente al database senza essere nello stesso VPC. Tuttavia, non puoi accedere al proxy a meno che non ti trovi nello stesso VPC.
nc -zx
MySQL_proxy_endpoint
3306 nc -zxPostgreSQL_proxy_endpoint
5432
Puoi utilizzare i seguenti comandi per assicurarti che l'istanza EC2 abbia le proprietà richieste. In particolare, il VPC per l'istanza EC2 deve essere uguale al VPC per a cui il proxy si connette.
aws ec2 describe-instances --instance-ids
your_ec2_instance_id
Esamina i segreti Secrets Manager utilizzati per il proxy.
aws secretsmanager list-secrets aws secretsmanager get-secret-value --secret-id
your_secret_id
Assicurati che il SecretString
campo visualizzato da get-secret-value
sia codificato come una stringa JSON che include i campi username
andpassword
. Nell'esempio seguente viene illustrato il formato del campo SecretString
.
{
"ARN": "some_arn
",
"Name": "some_name
",
"VersionId": "some_version_id",
"SecretString": '{"username":"some_username","password":"some_password
"}',
"VersionStages": [ "some_stage
" ],
"CreatedDate": some_timestamp
}
Problemi e soluzioni comuni
Questa sezione descrive alcuni problemi comuni e potenziali soluzioni quando si utilizza RDS Proxy.
Dopo aver eseguito il comando aws rds describe-db-proxy-targets
CLI, se la TargetHealth
descrizione indicaProxy does not have any registered
credentials
, verifica quanto segue:
-
Per l'accesso la proxy, l'utente dispone di credenziali registrate.
-
Il ruolo IAM per accedere al segreto di Secrets Manager utilizzato dal proxy è valido.
È possibile che si verifichino i seguenti eventi RDS durante la creazione di o la connessione a un proxy DB.
Categoria | ID evento RDS | Descrizione |
---|---|---|
errore |
RDS-EVENT-0243 | RDS non è stato in grado di allocare la capacità per il proxy perché non ci sono sufficienti indirizzi IP disponibili nelle sottoreti. Per risolvere il problema, assicurati che le sottoreti abbiano il numero minimo di indirizzi IP non utilizzati. Per determinare il numero consigliato per la classe di istanza, consulta Pianificazione della capacità degli indirizzi IP. |
errore |
RDS-EVENT-0275 |
|
È possibile che si verifichino i seguenti problemi durante la creazione di un nuovo proxy o la connessione a un proxy.
Errore | Cause o soluzioni alternative |
---|---|
|
Seleziona un ruolo IAM esistente invece di crearne uno nuovo. |
È possibile che si verifichino i seguenti problemi durante la connessione a un proxy MySQL.
Errore | Cause o soluzioni alternative |
---|---|
ERROR 1040 (HY000): Connections rate limit exceeded (
|
La velocità di richieste di connessione dal client al proxy ha superato il limite. |
ERROR 1040 (HY000): IAM authentication rate limit exceeded
|
Il numero di richieste simultanee con autenticazione IAM dal client al proxy ha superato il limite. |
ERROR 1040 (HY000): Number simultaneous connections exceeded (
|
Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite. |
|
Il segreto Secrets Manager utilizzato dal proxy non corrisponde al nome utente e alla password di un utente di database esistente. Aggiorna le credenziali nel segreto Secrets Manager o assicurati che l'utente del database esista e disponga della stessa password del segreto. |
ERROR 1105 (HY000): Unknown error
|
Si è verificato un errore sconosciuto. |
ERROR 1231 (42000): Variable ''character_set_client'' can't be set to the value of
|
Il valore impostato per il parametro |
ERROR 3159 (HY000): This RDS Proxy requires TLS connections.
|
Hai abilitato l'impostazione Richiedi Transport Layer Security nel proxy ma la tua connessione includeva il parametro
|
ERROR 2026 (HY000): SSL connection error: Internal Server
|
L'handshake TLS con il proxy non è riuscito. Alcuni possibili motivi includono quanto segue:
|
ERROR 9501 (HY000): Timed-out waiting to acquire database connection
|
Il proxy è in attesa di acquisire una connessione al database. Alcuni possibili motivi includono quanto segue:
|
È possibile che si verifichino i seguenti problemi durante la connessione a un proxy PostgreSQL.
Errore | Causa | Soluzione |
---|---|---|
|
L'utente ha tentato di connettersi al database utilizzando l'autenticazione IAM con l'impostazione |
L'utente deve connettersi al database utilizzando l'impostazione minima di |
|
L'utente ha abilitato l'impostazione Richiedi Transport Layer Security ma ha tentato di connettersi con |
Per risolvere questo errore, effettuare una delle seguenti operazioni:
|
|
Questo errore potrebbe essere dovuto ai seguenti fattori:
|
Per correggere questo errore, effettuare le seguenti operazioni:
|
|
Non c'è un Secrets Manager segreto per questo ruolo. |
Aggiungere un Secrets Manager segreto per questo ruolo. Per ulteriori informazioni, consulta Configurazione dei criteri AWS Identity and Access Management (IAM) per RDS Proxy. |
|
Il client di database utilizzato per connettersi al proxy utilizza un meccanismo di autenticazione non attualmente supportato dal proxy. |
Se non utilizzi l'autenticazione IAM, usa l'autenticazione della password MD5 o SCRAM. |
|
Il client di database utilizzato per connettersi al proxy non invia un nome utente quando si tenta di stabilire una connessione. |
Assicurarsi di definire un nome utente quando si imposta una connessione al proxy utilizzando il client PostgreSQL di propria scelta. |
|
Il client PostgreSQL utilizzato per connettersi al proxy utilizza un protocollo precedente a 3.0. |
Utilizzare un client PostgreSQL più recente che supporti il protocollo di messaggistica 3.0. Se si utilizza la CLI |
|
Il client PostgreSQL utilizzato per connettersi al proxy sta tentando di utilizzare la modalità di replica in streaming, che non è attualmente supportata dal proxy RDS. |
Disattivare la modalità di replica in streaming nel client PostgreSQL utilizzato per la connessione. |
|
Tramite il messaggio di avvio, il client PostgreSQL utilizzato per connettersi al proxy richiede un'opzione che non è attualmente supportata dal proxy RDS. |
Disattivare l'opzione visualizzata come non supportata dal messaggio precedente nel client PostgreSQL utilizzato per connettersi. |
|
Il numero di richieste simultanee con autenticazione IAM dal client al proxy ha superato il limite. |
Ridurre la velocità con cui vengono stabilite le connessioni che utilizzano l'autenticazione IAM da un client PostgreSQL. |
|
Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite. |
Ridurre il numero di connessioni attive dai client PostgreSQL a questo proxy RDS. |
|
La velocità di richieste di connessione dal client al proxy ha superato il limite. |
Ridurre la velocità con cui vengono stabilite le connessioni da un client PostgreSQL. |
|
La password per questo ruolo non corrisponde al segreto Secrets Manager. |
Controlla il segreto per questo ruolo in Secrets Manager per vedere se la password è uguale a quella utilizzata nel client PostgreSQL. |
|
Si è verificato un problema con il token IAM utilizzato per l'autenticazione IAM. |
Generare un nuovo token di autenticazione e utilizzarlo in una nuova connessione. |
|
Un client ha tentato di connettersi utilizzando l'autenticazione IAM, ma SSL non è stato abilitato. |
Abilitare SSL nel client PostgreSQL. |
|
Si è verificato un errore sconosciuto. |
Contatta il supporto di AWS per indagare sul problema. |
|
Il proxy è in attesa di acquisire una connessione al database. Alcuni possibili motivi includono quanto segue:
|
Le possibili soluzioni sono le seguenti:
|
|
La connessione al database stabilita dal proxy ha restituito un errore. |
La soluzione dipende dall'errore specifico del database. Un esempio : |