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 default speciale dell'endpoint predefinito di un proxy che esegue le richieste. read/write Per ulteriori informazioni sugli endpoint proxy, consulta Utilizzo degli endpoint Amazon RDS Proxy.
Argomenti
Verifica della connettività a un proxy
Per verificare che tutti i componenti, come il proxy, il database e le istanze di calcolo nella connessione, possano comunicare tra loro, è possibile utilizzare i seguenti comandi.
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 al cluster Aurora 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
StatediAVAILABLEindica che il proxy può connettersi all'istanza database. -
Un valore
StatediUNAVAILABLEindica un problema di connessione temporaneo o permanente. In questo caso, esaminare i campiReasoneDescription. Ad esempio, seReasonha un valore pari aPENDING_PROXY_CAPACITY, provare a connettersi nuovamente dopo che il proxy ha terminato l'operazione di ridimensionamento. SeReasonha un valore diUNREACHABLE,CONNECTION_FAILEDoAUTH_FAILURE, utilizzare la spiegazione del campoDescriptionper facilitare la diagnosi del problema. -
Il valore del campo
Statepotrebbe essereREGISTERINGper un breve periodo prima di passare aAVAILABLEoUNAVAILABLE.
Se il seguente comando Netcat (nc) ha esito positivo, puoi accedere all'endpoint proxy dall' EC2 istanza o da un altro sistema a cui hai effettuato 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 -zxMySQL_proxy_endpoint3306 nc -zxPostgreSQL_proxy_endpoint5432
Puoi usare i seguenti comandi per assicurarti che l' EC2 istanza abbia le proprietà richieste. In particolare, il VPC dell' EC2 istanza deve essere lo stesso del VPC per il cluster Aurora dell'istanza DB RDS a cui si connette il proxy.
aws ec2 describe-instances --instance-idsyour_ec2_instance_id
Esamina i segreti Secrets Manager utilizzati per il proxy.
aws secretsmanager list-secrets aws secretsmanager get-secret-value --secret-idyour_secret_id
Assicurati che il campo SecretString visualizzato da get-secret-value sia codificato come stringa JSON che include i campi username e password. 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
}
Durante la risoluzione dei problemi di autenticazione IAM, verifica quanto segue:
-
Nel database è abilitata l'autenticazione IAM.
-
Il proxy è configurato con lo schema di autenticazione corretto.
-
Le politiche IAM nel ruolo IAM fornite al proxy concedono le
rds-db:connectautorizzazioni necessarie al database appropriato e al relativo nome utente. -
Per l'autenticazione end-to-end IAM, esistono utenti del database che corrispondono ai nomi degli utenti o dei ruoli IAM.
-
SSL/TLS è abilitato per la connessione.
Problemi e soluzioni comuni
Questa sezione descrive alcuni problemi comuni e potenziali soluzioni quando si utilizza Server proxy per RDS.
Dopo l’esecuzione del comando aws rds describe-db-proxy-targets della CLI, se la descrizione TargetHealth riporta Proxy does not have any registered
credentials, verifica quanto segue:
-
L’utente dispone di credenziali registrate per l’accesso al proxy.
-
Il ruolo IAM per l’accesso al segreto 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 | Description |
|---|---|---|
|
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 |
RDS ha limitato alcune connessioni al proxy DB. |
È 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. |
Risoluzione dei problemi di Server proxy per RDS con RDS per MySQL
È 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:
|
Risoluzione dei problemi di Server proxy per RDS con RDS per PostgreSQL
È 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 |
|
|
Non c'è un Secrets Manager segreto per questo ruolo. |
Aggiungere un Secrets Manager segreto per questo ruolo. Per ulteriori informazioni, consulta Configurazione dell’autenticazione IAM per Server proxy per RDS. |
|
|
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, utilizza l'autenticazione tramite 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. |
|
|
Un client ha tentato di connettersi utilizzando l'autenticazione IAM, ma SSL non è stato abilitato. |
Abilitare SSL nel client PostgreSQL. |
|
|
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:
|
|
|
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. |
|
|
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. |
|
|
Si è verificato un errore sconosciuto. |
Contatta l' AWS assistenza per esaminare il problema. |
|
|
Il proxy è entrato in timeout durante l’attesa di acquisire una connessione al database entro la durata specificata dall’impostazione
|
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 : |
|
|
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 proxy RDS non può connettersi al database perché l'autenticazione IAM non è abilitata per la connessione del client al proxy. Ciò si verifica quando il |
Abilita l'autenticazione IAM per la connessione del client al proxy e riprova. |
|
|
Il proxy RDS non può connettersi al database perché |
Imposta |
Risoluzione dei problemi relativi al database postgres eliminato
Se elimini erroneamente il database postgres dall’istanza, devi ripristinare il database per ristabilire la connettività all’istanza. Esegui i comandi seguenti all’interno dell’istanza database:
CREATE DATABASE postgres; GRANT CONNECT ON DATABASE postgres TO rdsproxyadmin;