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 relativi al RDS proxy
Di seguito, sono disponibili idee per la risoluzione di alcuni problemi comuni relativi al RDS proxy e informazioni sui CloudWatch log di Proxy. RDS
Nei registri del 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 default
per l'endpoint predefinito 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 al dell'istanza RDS DB 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 seguente comando Netcat (nc
) ha esito positivo, puoi accedere all'endpoint proxy dall'EC2istanza o da un altro sistema a cui hai effettuato l'accesso. Questo comando segnala un errore se non siete nello stesso VPC ambiente del proxy e del database associato. Potresti essere in grado di accedere direttamente al database senza essere nello stessoVPC. Tuttavia, non puoi accedere al proxy a meno che tu non sia nello stessoVPC.
nc -zx
MySQL_proxy_endpoint
3306 nc -zxPostgreSQL_proxy_endpoint
5432
Puoi utilizzare i seguenti comandi per assicurarti che l'EC2istanza abbia le proprietà richieste. In particolare, il valore VPC per l'EC2istanza deve essere lo stesso del VPC dell' a cui si connette il proxy.
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 JSON stringa che include i campi username
epassword
. 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 aws rds describe-db-proxy-targets
CLI comando, 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 IAM ruolo per accedere al segreto di Secrets Manager utilizzato dal proxy è valido.
È possibile che si verifichino i seguenti RDS eventi durante la creazione o la connessione a un proxy DB.
Categoria | ID evento RDS | Descrizione |
---|---|---|
errore |
RDS- EVENT -0243 | RDSnon è stato possibile fornire capacità per il proxy perché non ci sono abbastanza 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- -0275 EVENT |
RDSha 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 IAM ruolo esistente invece di scegliere di crearne uno nuovo. |
Potresti riscontrare i seguenti problemi durante la connessione a un My SQL proxy.
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 IAM autenticazione 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 Require Transport Layer Security nel proxy ma la tua connessione includeva il parametro
|
ERROR 2026 (HY000): SSL connection error: Internal Server
|
La TLS stretta di mano al proxy non è riuscita. 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:
|
Potresti riscontrare i seguenti problemi durante la connessione a un proxy Postgre. SQL
Errore | Causa | Soluzione |
---|---|---|
|
L'utente ha provato a connettersi al database utilizzando l'IAMautenticazione con l'impostazione |
L'utente deve connettersi al database utilizzando l'impostazione minima del client |
|
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 stai usando IAM l'autenticazione, usa l'autenticazione MD5 o SCRAM tramite password. |
|
Il client di database utilizzato per connettersi al proxy non invia un nome utente quando si tenta di stabilire una connessione. |
Assicurati di definire un nome utente quando configuri una connessione al proxy utilizzando il SQL client Postgre di tua scelta. |
|
Un client ha provato a connettersi tramite IAM l'autenticazione, ma non SSL è stato abilitato. |
Abilita SSL nel client Postgre. SQL |
|
L'utente ha abilitato l'opzione Require Transport Layer Security ma ha provato a connettersi con il |
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 è la stessa utilizzata nel tuo client Postgre. SQL |
|
C'è un problema con il IAM token usato per IAM l'autenticazione. |
Generare un nuovo token di autenticazione e utilizzarlo in una nuova connessione. |
|
Il SQL client Postgre utilizzato per connettersi al proxy utilizza un protocollo precedente al 3.0. |
Usa un SQL client Postgre più recente che supporti il protocollo di messaggistica 3.0. Se usi Postgre SQL |
|
Il SQL client Postgre utilizzato per connettersi al proxy sta tentando di utilizzare la modalità di replica in streaming, che attualmente non è supportata da Proxy. RDS |
Disattiva la modalità di replica in streaming nel client Postgre SQL utilizzato per la connessione. |
|
Tramite il messaggio di avvio, il SQL client Postgre utilizzato per connettersi al proxy richiede un'opzione che attualmente non è supportata da Proxy. RDS |
Disattiva l'opzione mostrata come non supportata nel messaggio precedente nel SQL client Postgre utilizzato per la connessione. |
|
Il numero di richieste simultanee con IAM autenticazione dal client al proxy ha superato il limite. |
Riduci la velocità con cui vengono stabilite le connessioni che utilizzano IAM l'autenticazione da un client Postgre. SQL |
|
Il numero di richieste di connessione simultanee dal client al proxy ha superato il limite. |
Riduci il numero di connessioni attive dai SQL client Postgre a questo proxy. RDS |
|
La velocità di richieste di connessione dal client al proxy ha superato il limite. |
Riduci la velocità con cui vengono stabilite le connessioni da un client Postgre. SQL |
|
Si è verificato un errore sconosciuto. |
Contatta l' AWS assistenza per esaminare il 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 : |