Los puntos de conexión de RDS Proxy proporcionan formas flexibles y eficientes de administrar las conexiones de bases de datos, lo que mejora la escalabilidad, la disponibilidad y la seguridad. Con los puntos de conexión del proxy, puede:
-
Simplificar la supervisión y la resolución de problemas: use varios puntos de conexión para realizar un seguimiento y administrar conexiones de diferentes aplicaciones de forma independiente.
-
Mejorar la escalabilidad de lectura: aproveche los puntos de conexión de lector con los clústeres de bases de datos de Aurora para distribuir el tráfico de lectura de manera eficiente, lo que optimiza el rendimiento para las cargas de trabajo con muchas consultas.
-
Habilitar el acceso entre VPC: conecte bases de datos entre VPC mediante puntos de conexión entre VPC, lo que permite que recursos como las instancias de Amazon EC2 de una VPC accedan a las bases de datos de otra.
Información general de los puntos de enlace de proxy
Trabajar con puntos de conexión de RDS Proxy implica los mismos tipos de procedimientos que con los puntos de conexión del lector y clústeres de base de datos de Aurora. Si no está familiarizado con los puntos de enlace de Aurora, puede encontrar más información en Conexiones de puntos de conexión de Amazon Aurora.
Cuando utiliza RDS Proxy con un clúster de Aurora, el punto de conexión predeterminado admite operaciones de lectura y escritura. Esto significa que enruta todas las solicitudes a la instancia de escritura del clúster, lo que contribuye a su límite de max_connections
. Para distribuir mejor el tráfico, puede crear puntos de conexión adicionales de lectura/escritura o de solo lectura para el proxy, lo que permite una administración de carga de trabajo más eficiente y una mejor escalabilidad.
Utilice un punto de conexión de solo lectura con el proxy para gestionar consultas de lectura, de igual manera que lo haría con un punto de conexión de lector para un clúster aprovisionado de Aurora. Este enfoque maximiza la escalabilidad de lectura de Aurora mediante la distribución de consultas entre una o más instancias de base de datos de lector. Al utilizar un punto de conexión de solo lectura y agregar más instancias de lector según sea necesario, puede aumentar el número de consultas y conexiones simultáneas que el clúster puede gestionar.
sugerencia
Cuando crea un proxy para un clúster de Aurora mediante la AWS Management Console, puede tener el proxy de RDS para crear un punto de conexión del lector automáticamente. Para obtener información acerca de los beneficios de un punto de enlace del lector, consulte Usar puntos de enlace del lector con los clústeres de Aurora.
Cuando cree un punto de conexión del proxy, puede asociarlo con una nube privada virtual (VPC) diferente de la que utiliza la VPC del proxy. Esto le permite conectarse al proxy desde otra VPC, como una utilizada por una aplicación diferente dentro de la organización.
Para obtener información acerca de los límites asociados a los puntos de enlace de proxy, consulte Limitaciones para los puntos de conexión de proxy.
RDS Proxy registra el prefijo de cada entrada con el nombre del punto de conexión del proxy asociado. Este puede ser el nombre especificado para un punto de conexión definido por el usuario o el nombre default
especial para el punto de conexión de lectura o escritura predeterminado de un proxy.
Cada punto de conexión de proxy tiene su propio conjunto de métricas de CloudWatch. Supervise las métricas de todos los puntos de conexión de proxy, un punto de conexión específico o de todos los puntos de conexión de lectura o escritura o de solo lectura de un proxy. Para obtener más información, consulte Supervisión de las métricas de RDS Proxy con Amazon CloudWatch.
Un punto de enlace del proxy utiliza el mismo mecanismo de autenticación que su proxy asociado. El proxy de RDS configura automáticamente permisos y autorizaciones para el punto de enlace definido por el usuario, de acuerdo con las propiedades del proxy asociado.
Para obtener información sobre cómo funcionan los puntos de conexión proxy para los clústeres de bases de datos de una base de datos global de Aurora, consulte Cómo funcionan los puntos de conexión de RDS Proxy con las bases de datos globales.
Limitaciones para los puntos de conexión de proxy
Los puntos de conexión de RDS Proxy tienen las siguientes limitaciones:
-
Cada proxy tiene un punto de enlace predeterminado que puede modificar, pero no crear o eliminar.
-
El número máximo de puntos de enlace definidos por el usuario para un proxy es 20. Por lo tanto, un proxy puede tener hasta 21 puntos de enlace: el punto de enlace predeterminado, más 20 que cree.
-
Cuando asocia puntos de enlace adicionales con un proxy, RDS Proxy determina automáticamente qué instancias de base de datos del clúster se utilizarán para cada punto de enlace. No puede elegir instancias específicas tal y como lo hace con los puntos de conexión personalizados de Aurora.
Usar puntos de enlace del lector con los clústeres de Aurora
Puede crear y conectarse a puntos de enlace de solo lectura denominados puntos de enlace del lector cuando usa RDS Proxy con los clústeres de Aurora. Estos puntos de enlace del lector ayudan a mejorar la escalabilidad de lectura de sus aplicaciones que requieren un uso intensivo de consultas. Los puntos de enlace del lector también ayudan a mejorar la disponibilidad de las conexiones si una instancia de base de datos de lector del clúster deja de estar disponible.
nota
Cuando especifica que un punto de enlace nuevo es de solo lectura, RDS Proxy requiere que el clúster de Aurora tenga una o más instancias de base de datos de lector. En algunos casos, puede cambiar el destino del proxy a un clúster de Aurora que contenga a un solo escritor. Si lo hace, se producirá un error en cualquier solicitud al punto de conexión del lector. Las solicitudes también fallan si el destino del proxy es una instancia de RDS en lugar de un clúster de Aurora.
Si un clúster de Aurora tiene instancias de lector, pero esas instancias no están disponibles, RDS Proxy espera para enviar la solicitud en lugar de devolver un error inmediatamente. Si no hay instancias de lector disponibles dentro del periodo de tiempo de espera de préstamo de conexión, la solicitud fallará.
Cómo los puntos de enlace del lector ayudan a la disponibilidad de las aplicaciones
En algunos casos, es posible que una o más instancias de lector del clúster no estén disponibles. Si es así, las conexiones que utilizan un punto de enlace del lector de un proxy de base de datos se pueden recuperar más rápidamente que las que utilizan el punto de enlace del lector de Aurora. El proxy de RDS enruta las conexiones solo a las instancias de lector disponibles en el clúster. No hay retraso debido al almacenamiento en caché de DNS cuando una instancia deja de estar disponible.
Si la conexión es multiplexada, RDS Proxy dirige las consultas posteriores a una instancia de base de datos de lector diferente sin interrupciones en su aplicación. Durante el cambio automático a una instancia de lector nueva, el proxy de RDS verifica el retraso de reproducción de las instancias de lector antiguas y nuevas. El proxy de RDS se asegura de que la instancia de lector nueva esté actualizada con los mismos cambios que la instancia de lector anterior. De esta manera, su aplicación nunca ve datos obsoletos cuando RDS Proxy cambia de una instancia de base de datos de lector a otra.
Si la conexión está anclada, la siguiente consulta en la conexión devuelve un error. Sin embargo, la aplicación puede volver a conectarse inmediatamente al mismo punto de enlace. El proxy de RDS enruta la conexión a una instancia de base de datos de lector diferente que se encuentra en estado available
. Cuando se vuelve a conectar manualmente, RDS Proxy no comprueba el retraso de reproducción entre las instancias de lector antiguas y nuevas.
Si su clúster de Aurora no tiene instancias de lector disponibles, RDS Proxy comprueba si esta condición es temporal o permanente. El comportamiento en cada caso es el siguiente:
-
Supongamos que su clúster tiene una o más instancias de base de datos de lector, pero ninguna de ellas está en el estado
Available
. Por ejemplo, todas las instancias de lector pueden estar reiniciándose o encontrando problemas. En ese caso, los intentos de conectarse a un punto de enlace del lector esperan a que una instancia de lector esté disponible. Si no hay instancias de lector disponibles dentro del periodo de tiempo de espera de préstamo de conexión, se produce un error en el intento de conexión. Si una instancia de lector está disponible, el intento de conexión se lleva a cabo correctamente. -
Supongamos que su clúster no tiene instancias de base de datos de lector. En ese caso, RDS Proxy devuelve un error inmediatamente si intenta conectarse a un punto de enlace del lector. Para resolver este problema, agregue una o más instancias de lector al clúster antes de conectarse al punto de enlace del lector.
Cómo los puntos de enlace del lector ayudan a la escalabilidad de las consultas
Los puntos de enlace del lector de un proxy ayudan con la escalabilidad de consulta de Aurora de las siguientes maneras:
-
A medida que agrega instancias de lector a su clúster de Aurora, RDS Proxy puede enrutar conexiones nuevas a cualquier punto de enlace del lector a las diferentes instancias de lector. De esta forma, las consultas realizadas con una conexión de punto de enlace de lector no ralentizan las consultas realizadas con otra conexión de punto de enlace del lector. Las consultas se ejecutan en instancias de base de datos independientes. Cada instancia de base de datos tiene sus propios recursos informáticos, caché de búfer y demás.
-
Cuando sea práctico, RDS Proxy utiliza la misma instancia de base de datos de lector para todos los problemas de consultas mediante una conexión de punto de enlace del lector en particular. De esta manera, un conjunto de consultas relacionadas en las mismas tablas puede aprovechar el almacenamiento en caché, la optimización del plan y demás, en una instancia de base de datos particular.
-
Si una instancia de base de datos de lector deja de estar disponible, el efecto en la aplicación depende de si la sesión está multiplexada o anclada. Si la sesión está multiplexada, RDS Proxy enruta las consultas posteriores a una instancia de base de datos de lector diferente sin acciones por su parte. Si la sesión está anclada, la aplicación recibe un error y debe volver a conectarse. Puede volver a conectarse al punto de enlace del lector inmediatamente y RDS Proxy enruta la conexión a una instancia de base de datos de lector disponible. Para obtener más información acerca de la multiplexación y el anclaje de sesiones de proxy, consulte Información general de los conceptos de RDS Proxy.
-
Cuantas más instancias de base de datos de lector tenga en el clúster, más conexiones simultáneas podrá realizar con los puntos de conexión de lector. Por ejemplo, supongamos que el clúster tiene cuatro instancias de base de datos de lector, cada una configurada para permitir 200 conexiones simultáneas. Supongamos que su proxy está configurado para usar el 50 % de las conexiones máximas. Aquí, el número máximo de conexiones que puede realizar a través de los puntos de enlace del lector en el proxy es 100 (50 % de 200) para el lector 1. También son 100 para el lector 2, y así sucesivamente, para un total de 400. Si se duplica el número de instancias de la base de datos del lector del clúster a ocho, el número máximo de conexiones a través de los puntos de conexión del lector también se duplicará (hasta 800).
Ejemplos de uso de puntos de enlace del lector
El siguiente ejemplo de Linux muestra cómo puede confirmar que está conectado a un clúster de Aurora MySQL a través de un punto de enlace del lector. La configuración de innodb_read_only
está habilitada. Los intentos de realizar operaciones de escritura como las instrucciones de CREATE DATABASE
fallan. Además, puede confirmar que está conectado a una instancia de base de datos de lector mediante la verificación del nombre de la instancia de base de datos con el uso de la variable de aurora_server_id
.
sugerencia
No confíe solo en comprobar el nombre de la instancia de base de datos para determinar si la conexión es de lectura o escritura o de solo lectura. Recuerde que las instancias de base de datos en un clúster de Aurora puede cambiar los roles entre escritor y lector cuando se producen conmutaciones por error.
$
mysql -h endpoint-demo-reader.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -u admin -p...
mysql>
select @@innodb_read_only;+--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+
mysql>
create database shouldnt_work;ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement
mysql>
select @@aurora_server_id;+---------------------------------------+ | @@aurora_server_id | +---------------------------------------+ | proxy-reader-endpoint-demo-instance-3 | +---------------------------------------+
El siguiente ejemplo muestra cómo la conexión a un punto de enlace del lector de proxy puede seguir funcionando incluso cuando se elimina la instancia de base de datos del lector. En este ejemplo, el clúster de Aurora tiene dos instancias de lector, instance-5507
y instance-7448
. La conexión con el punto de enlace del lector comienza mediante una de las instancias de lector. Durante el ejemplo, esta instancia de lector se elimina mediante un comando delete-db-instance
. Para consultas posteriores, el proxy de RDS cambia a una instancia de lector diferente.
$
mysql -h reader-demo.endpoint.proxy-demo.us-east-1.rds.amazonaws.com -umy_user
-p...
mysql>
select @@aurora_server_id;+--------------------+ | @@aurora_server_id | +--------------------+ | instance-5507 | +--------------------+
mysql>
select @@innodb_read_only;+--------------------+ | @@innodb_read_only | +--------------------+ | 1 | +--------------------+
mysql>
select count(*) from information_schema.tables;+----------+ | count(*) | +----------+ | 328 | +----------+
Mientras que la sesión de mysql
sigue funcionando, el siguiente comando elimina la instancia de lector a la que está conectado el punto de enlace del lector.
aws rds delete-db-instance --db-instance-identifier instance-5507 --skip-final-snapshot
Las consultas en la sesión de mysql
sigue trabajando sin necesidad de volver a conectarse. El proxy de RDS cambia a una instancia de base de datos de lector diferente automáticamente.
mysql>
select @@aurora_server_id;+--------------------+ | @@aurora_server_id | +--------------------+ | instance-7448 | +--------------------+
mysql>
select count(*) from information_schema.TABLES;+----------+ | count(*) | +----------+ | 328 | +----------+
Acceso a las bases de datos de Aurora en todas las VPC
De forma predeterminada, los componentes de su pila de tecnología de Aurora están todos en la misma Amazon VPC. Por ejemplo, supongamos que una aplicación que se ejecuta en una instancia de Amazon EC2 se conecta a un clúster de bases de datos de Aurora. En este caso, el servidor de la aplicación y la base de datos deben estar dentro de la misma VPC.
Con RDS Proxy, puede configurar el acceso a un clúster de bases de datos de Aurora en una VPC a partir de recursos de otra VPC, como las instancias de EC2. Por ejemplo, la organización puede tener varias aplicaciones que tengan acceso a los mismos recursos de base de datos. Cada aplicación puede estar en su propia VPC.
A fin de habilitar el acceso entre VPC, cree un nuevo punto de enlace para el proxy. El propio proxy reside en la misma VPC que el clúster de bases de datos de Aurora. Sin embargo, el punto de enlace en VPC reside en la otra VPC, junto con otros recursos, como las instancias EC2. El punto de enlace en VPC está asociado con subredes y grupos de seguridad de la misma VPC que EC2 y otros recursos. Estas asociaciones permiten conectarse al punto de enlace desde las aplicaciones que, de lo contrario, no pueden acceder a la base de datos debido a las restricciones de la VPC.
Los siguientes pasos explican cómo crear y acceder a un punto de enlace en VPC a través de RDS Proxy:
-
Cree dos VPC o elija dos VPC que ya utilice para el trabajo en Aurora . Cada VPC debe tener sus propios recursos de red asociados, como una puerta de enlace de Internet, tablas de enrutamiento, subredes y grupos de seguridad. Si solo tiene una VPC, puede consultar Introducción a Amazon Aurora para conocer los pasos a fin de configurar otra VPC para que use Aurora con éxito. También puede examinar la VPC existente en la consola de Amazon EC2 para ver los tipos de recursos que conectar entre sí.
-
Cree un proxy de base de datos asociado con el clúster de bases de datos de Aurora al que desea conectarse. Siga el procedimiento indicado en Creación de un proxy para Amazon Aurora.
-
En la página de Details (Detalles) para su proxy en la consola de RDS, en la pestaña de Proxy endpoints (Puntos de enlace de proxy), elija Create endpoint (Crear punto de enlace). Siga el procedimiento indicado en Creación de un punto de enlace de proxy.
-
Elija si desea que el punto de enlace en VPC sea de lectura y escritura o de solo lectura.
-
En lugar de aceptar el valor predeterminado de la misma VPC que el clúster de bases de datos de Aurora, elija una VPC diferente. Esta VPC debe estar en la misma región de AWS que la VPC donde reside el proxy.
-
Ahora, en lugar de aceptar los valores predeterminados para subredes y grupos de seguridad de la misma VPC que el clúster de bases de datos de Aurora, haga nuevas selecciones. Estos se basen en las subredes y los grupos de seguridad de la VPC que eligió.
-
No es necesario cambiar las opciones de configuración de los secretos de Secrets Manager. Las mismas credenciales funcionan para todos los puntos de enlace de proxy, independientemente de la VPC en la que se encuentre cada punto de enlace.
-
Espere a que el punto de enlace nuevo alcance el estado de Available (Disponible).
-
Anote el nombre completo del punto de enlace. Este es el valor que termina en
que proporciona como parte de la cadena de conexión para la aplicación de base de datos.Region_name
.rds.amazonaws.com -
Acceda al punto de enlace nuevo desde un recurso en la misma VPC que el punto de enlace. Una forma sencilla de probar este proceso es crear una instancia de EC2 nueva en esta VPC. A continuación, puede iniciar sesión en la instancia de EC2 y ejecutar los comandos
mysql
opsql
para conectarse mediante el valor de punto de conexión en la cadena de conexión.