Administración de conexiones de Amazon Aurora - Amazon Aurora

Administración de conexiones de Amazon Aurora

Amazon Aurora suele implicar un clúster de instancias de base de datos en lugar de una sola instancia. Una instancia de base de datos específica gestiona cada conexión. Al conectarse a un clúster de Aurora, el nombre de anfitrión y el puerto especificados apuntan a un controlador intermedio denominado punto de enlace. Aurora utiliza el mecanismo de punto de enlace para abstraer estas conexiones. Por lo tanto, no tiene que codificar todos los nombres de host o escribir su propia lógica para el equilibrio y la redirección de conexiones cuando algunas instancias de base de datos no están disponibles.

En determinadas tareas de Aurora, las diversas instancias o grupos de instancias desempeñan diferentes roles. Por ejemplo, la instancia principal gestiona todas las instrucciones de lenguaje de definición de datos (DDL) y de lenguaje de manipulación de datos (DML). Hasta 15 réplicas de Aurora gestionan el tráfico de consultas de solo lectura.

Al usar puntos de enlace puede asignar cada conexión a la instancia o grupo de instancias adecuados en función de su caso de uso. Por ejemplo, para realizar instrucciones DDL puede conectarse a la instancia que sea la instancia principal. Para realizar consultas, puede conectarse al punto de conexión del lector y Aurora lleva a cabo de forma automática el equilibrio de conexión entre todas las réplicas de Aurora. En el caso de clústeres con instancias de base de datos de diferentes capacidades o configuraciones, puede conectarse a puntos de enlace personalizados asociados a diversos subconjuntos de instancias de base de datos. En el caso de diagnóstico o ajuste, puede conectarse a un punto de enlace de instancia específico para examinar los detalles de una instancia de base de datos específica.

Tipos de puntos de enlace de Aurora

Un punto de enlace se representa como URL específica de Aurora que contiene una dirección de host y un puerto. Los siguientes tipos de puntos de enlace están disponibles en un clúster de bases de datos Aurora.

Punto de enlace de clúster

El punto de enlace de clúster o (punto de enlace del escritor) para un clúster de bases de datos Aurora se conecta a la instancia de base de datos principal actual de ese clúster de bases de datos. Este punto de enlace es el único que puede realizar operaciones de escritura como instrucciones DDL. Por este motivo, el punto de enlace del clúster es el punto al que se conecta la primera vez que configura un clúster o bien si su clúster solo contiene una única instancia de base de datos.

Cada clúster de bases de datos de Aurora tiene un punto de enlace de clúster y una instancia de base de datos principal.

Utilice el punto de enlace del clúster para todas las operaciones de escritura en el clúster de la base de datos, incluidos inserciones, actualizaciones, eliminaciones y cambios de DDL. También puede usar el punto de enlace del clúster para operaciones de lectura, como por ejemplo consultas.

El punto de enlace del clúster proporciona soporte de conmutación por error para conexiones de lectura/escritura al clúster de bases de datos. Si se produce un error en la instancia de base de datos principal actual de un clúster de bases de datos, Aurora conmuta por error automáticamente a una nueva instancia de base de datos principal. Durante una conmutación por error, el clúster de bases de datos continúa atendiendo solicitudes de conexión al punto de enlace del clúster de la nueva instancia de base de datos principal, con una interrupción del servicio mínima.

En el siguiente ejemplo se ilustra un punto de enlace del clúster de un clúster de bases de datos Aurora MySQL.

mydbcluster.cluster-c7tj4example.us-east-1.rds.amazonaws.com:3306
Punto de enlace del lector

El punto de conexión del lector para un clúster de bases de datos Aurora proporciona soporte de equilibrio de conexión para conexiones de solo lectura al clúster de bases de datos. Utilice el punto de enlace del lector para operaciones de lectura, como por ejemplo consultas. Al procesar esas instrucciones en las réplicas de Aurora de solo lectura, este punto de enlace reduce la sobrecarga de la instancia principal. También ayuda al clúster a escalar la capacidad para gestionar consultas SELECT simultáneas proporcionalmente al número de réplicas de Aurora en el clúster. Cada clúster de bases de datos Aurora tiene un punto de enlace del lector.

Si el clúster contiene una o más réplicas de Aurora, el punto de conexión del lector equilibra cada solicitud de conexión entre las réplicas de Aurora. En ese caso, solo se pueden ejecutar instrucciones de solo lectura como SELECT en esa sesión. Si el clúster solo contiene una instancia principal y no hay réplicas de Aurora, el punto de enlace del lector se conecta a la instancia principal. En ese caso, se pueden ejecutar operaciones de escritura a través del punto de enlace.

En el siguiente ejemplo se ilustra un punto de enlace del lector de un clúster de bases de datos Aurora MySQL.

mydbcluster.cluster-ro-c7tj4example.us-east-1.rds.amazonaws.com:3306
Punto de enlace personalizado

Un punto de enlace personalizado de un clúster de Aurora representa un conjunto de instancias de base de datos que ha elegido. Al conectarse al punto de conexión, Aurora realiza el equilibrio de conexión y elige una de las instancias del grupo para gestionar la conexión. Defina las instancias a las que hace referencia este punto de enlace y decida el objetivo de este.

Un clúster de bases de datos Aurora no tiene puntos de enlace personalizados hasta que crea uno. Puede crear hasta cinco puntos de conexión personalizados para cada clúster de Aurora aprovisionado o de Aurora Serverless v2. No puede usar puntos de enlace personalizados para clústeres de Aurora Serverless v1.

El punto de conexión personalizado proporciona conexiones de base de datos con equilibrio en función de otros criterios, aparte de la capacidad de solo lectura o de lectura/escritura de las instancias de base de datos. Por ejemplo, podría definir un punto de enlace personalizado para conectarse a instancias que usan una clase de instancia de AWS particular o un grupo de parámetros de base de datos particular. A continuación, podría informar a grupos de usuarios particulares acerca de este punto de enlace personalizado. Por ejemplo, podría dirigir a los usuarios internos a instancias de baja capacidad para la generación de informes o de consultas ad hoc (de una vez). También podría dirigir el tráfico de producción a instancias de alta capacidad.

Dado que la conexión puede ir a cualquier instancia de base de datos que se asocie al punto de enlace personalizado, recomendamos que se asegure de que todas las instancias de base de datos de ese grupo comparten alguna característica similar. De esta forma se garantiza que el rendimiento, la capacidad de memoria, etc. sean coherentes para todo aquel que se conecte a ese punto de enlace.

Esta característica está destinada a usuarios avanzados con tipos de cargas de trabajo especializados donde no resulta práctico que todas las réplicas de Aurora del clúster sean idénticas. Con los puntos de enlace personalizados, puede predecir la capacidad de la instancia de base de datos usada para cada conexión. Al usar puntos de enlace personalizados, normalmente no usa el punto de enlace del lector de ese clúster.

En el siguiente ejemplo se ilustra un punto de enlace personalizado de una instancia de base de datos de un clúster de bases de datos de Aurora MySQL.

myendpoint.cluster-custom-c7tj4example.us-east-1.rds.amazonaws.com:3306
Punto de enlace de instancia

Un punto de enlace de una instancia se conecta a una instancia de base de datos específica de un clúster de Aurora. Cada instancia de base de datos de un clúster de bases de datos tiene su propio punto de enlace de instancia único. Así que hay un punto de enlace de instancia para la actual instancia de base de datos principal del clúster de bases de datos y un punto de enlace de instancia para cada una de las réplicas de Aurora en el clúster de la base de datos.

El punto de enlace de la instancia proporciona un control directo sobre las conexiones al clúster de bases de datos, en los casos en los que el uso del punto de enlace del clúster o del lector puede no ser adecuado. Por ejemplo, su aplicación cliente podría necesitar un equilibrado de conexión más detallado en función del tipo de carga de trabajo. En este caso, puede configurar varios clientes para que se conecten a distintas réplicas de Aurora de un clúster de bases de datos con el fin de distribuir las cargas de trabajo de lectura. Si quiere ver un ejemplo donde se usen puntos de enlace de la instancia para mejorar la velocidad de conexión tras una conmutación por error de Aurora PostgreSQL, consulte Conmutación por error rápida con Amazon Aurora PostgreSQL. Si quiere ver un ejemplo donde se usen puntos de conexión de la instancia para mejorar la velocidad de conexión tras una conmutación por error de Aurora MySQL, consulte MariaDB Connector/J failover support – case Amazon Aurora.

En el siguiente ejemplo se ilustra un punto de enlace de la instancia de una instancia de base de datos de un clúster de bases de datos Aurora MySQL.

mydbinstance.c7tj4example.us-east-1.rds.amazonaws.com:3306

Visualización de los puntos de enlace para un clúster de Aurora

En la AWS Management Console, verá el punto de enlace del clúster, el punto de enlace del lector y cualquier punto de enlace personalizado en la página de detalles de cada clúster. Verá el punto de enlace de instancia en la página de detalles de cada instancia. Al conectarse, debe añadir el número de puerto asociado, tras el signo de dos puntos, al nombre de punto de enlace que se muestra en esta página de detalles.

Con la AWS CLI verá el escritor, el lector y cualquier punto de enlace personalizado en la salida del comando describe-db-clusters. Por ejemplo, el siguiente comando muestra los atributos de punto de enlace de todos los clústeres en la región de AWS actual.

aws rds describe-db-clusters --query '*[].{Endpoint:Endpoint,ReaderEndpoint:ReaderEndpoint,CustomEndpoints:CustomEndpoints}'

Con la API de Amazon RDS, recuperará los puntos de enlace llamando a la función DescribeDBClusterEndpoints.

Uso del punto de enlace de clúster

Como cada clúster de Aurora tiene un solo punto de enlace del clúster integrado cuyo nombre y otros atributos se administran mediante Aurora, no puede crear, eliminar o modificar este tipo de punto de enlace.

Use el punto de enlace del clúster al administrar su clúster, realizar la extracción, transformar, cargar operaciones (ETL) o desarrollar y probar aplicaciones. El punto de enlace de clúster se conecta a la instancia principal del clúster. La instancia principal es la única instancia de base de datos donde puede crear tablas e índices, ejecutar instrucciones INSERT y realizar otras operaciones de DDL y DML.

La dirección IP física a la que apunta el punto de enlace del clúster cambia cuando el mecanismo de conmutación por error promueve una nueva instancia de base de datos para que sea la instancia principal de lectura/escritura del clúster. Si usa cualquier forma de grupos de conexiones u otros multiplexados, prepárese para vaciar o reducir el tiempo de vida de cualquier información de DNS almacenada en caché. De esta forma se garantiza que no intente establecer una conexión de lectura/escritura en una instancia de base de datos que deje de estar disponible o sea ahora de solo lectura tras una conmutación por error.

Uso del punto de enlace del lector

Use el punto de enlace del lector para conexiones de solo lectura para su clúster de Aurora. Este punto de conexión usa un mecanismo de equilibrio de conexión para ayudar a su clúster a gestionar una carga de trabajo con uso intensivo de consultas. El punto de conexión del lector es el punto de conexión que proporciona a las aplicaciones que realizan informes u otras operaciones de solo lectura en el clúster.

El punto de conexión del lector equilibra las conexiones a las réplicas de Aurora disponibles en un clúster de bases de datos de Aurora. No equilibra consultas individuales. Si desea equilibrar cada consulta y distribuir la carga de trabajo de lectura de un clúster de bases de datos, abra una nueva conexión al punto de conexión del lector para cada consulta.

Cada clúster de Aurora tiene un solo punto de enlace del lector integrado cuyo nombre y otros atributos se administran mediante Aurora. No puede crear, eliminar o modificar este tipo de punto de enlace.

Si el clúster contiene solo una instancia principal y no hay réplicas de Aurora, el punto de enlace del lector se conecta a la instancia principal. En ese caso, podrá realizar operaciones de escritura a través de este punto de enlace.

sugerencia

A través del proxy de RDS, se pueden crear puntos de enlace adicionales de sólo lectura para un clúster de Aurora. Estos puntos de conexión realizan el mismo tipo de equilibrado de conexión que el punto de conexión del lector Aurora. Las aplicaciones pueden volver a conectarse más rápidamente a los puntos de enlace del proxy que el punto de enlace del lector Aurora si las instancias no están disponibles. Los puntos de enlace del proxy también pueden aprovechar otras características del proxy, como la multiplexación. Para obtener más información, consulte Usar puntos de enlace del lector con los clústeres de Aurora.

Uso de puntos de enlace personalizados

Puede usar puntos de enlace personalizados para simplificar la administración de la conexión si su clúster contiene instancias de base de datos con diferentes capacidades y ajustes de configuración.

Anteriormente, podría haber usado el mecanismo CNAMES para configurar alias del servicio de nombres de dominio (DNS) desde su propio dominio para lograr resultados similares. Al usar puntos de enlace personalizados, puede evitar actualizar registros CNAME al aumentar o disminuir su clúster. Los puntos de enlace personalizados también significan que puede usar conexiones Transport Layer Security/de capa de conexión segura (TLS/SSL).

En lugar de usar una instancia de base de datos para cada propósito especializado y conectarse a su punto de enlace de instancia, puede tener varios grupos de instancias de base de datos especializadas. En este caso, cada grupo tiene su propio punto de enlace personalizado. De esta forma, Aurora puede realizar el equilibrio de conexión entre todas las instancias dedicadas a tareas como la creación de informes o la gestión de consultas de producción o internas. Los puntos de conexión personalizados distribuyen las conexiones entre las instancias de forma pasiva y utilizan DNS para devolver la dirección IP de una de las instancias de forma aleatoria. Si una de las instancias de base de datos dentro de un grupo deja de estar disponible, Aurora dirige conexiones de punto de enlace personalizado posteriores a una de las otras instancias de base de datos asociadas al mismo punto de enlace.

Especificación de propiedades para puntos de enlace personalizados

La longitud máxima de un nombre de punto de enlace personalizado es 63 caracteres. El formato del nombre es este:

endpoint_name.cluster-custom-customer_DNS_identifier.AWS_Region.rds.amazonaws.com

No puede volver a usar el mismo nombre de punto de conexión personalizado para más de un clúster en la misma Región de AWS. El identificador DNS del cliente es un identificador único asociado a su Cuenta de AWS en una Región de AWS particular.

Cada punto de enlace personalizado tiene un tipo asociado que determina qué instancias de base de datos cumplen los requisitos para asociarse a ese punto de enlace. En la actualidad, el tipo puede ser READER, WRITER o ANY. Las siguientes consideraciones se aplican a los tipos de punto de enlace personalizado:

  • No puede seleccionar el tipo de punto de conexión personalizado en la AWS Management Console. Todos los puntos de enlace personalizados que crea a través de la AWS Management Console tienen un tipo de ANY.

    Puede configurar y modificar el tipo de punto de conexión personalizado mediante la AWS CLI o la API de Amazon RDS.

  • Solo las instancias de base de datos del lector pueden formar parte de un punto de conexión personalizado READER.

  • Tanto las instancias de base de datos del lector como del escritor pueden formar parte de un punto de conexión personalizado ANY. Aurora dirige las conexiones a los puntos de enlace de clúster con ANY tipo a cualquier instancia de base de datos asociada con la misma probabilidad. El tipo ANY se aplica a los clústeres que usan cualquier topología de replicación.

  • Si intenta crear un punto de enlace personalizado con un tipo que no es adecuado en función de la configuración de replicación para un clúster, Aurora devuelve un error.

Reglas de afiliación para puntos de enlace personalizados

Al añadir una instancia de base de datos a un punto de enlace personalizado o quitarla de un punto de enlace personalizado, cualquier conexión existente a esa instancia de base de datos permanece activa.

Puede definir una lista de instancias de base de datos que se incluirán en un punto de enlace personalizado o se excluirán de este. Nos referimos a estas listas como listas estáticas y de exclusión, respectivamente. Puede usar el mecanismo de inclusión/exclusión para seguir subdividiendo los grupos de instancias de base de datos y asegurarse de que el conjunto de puntos de enlace personalizados cubre todas las instancias de base de datos en el clúster. Cada punto de enlace personalizado puede contener solo uno de estos tipos de lista.

En AWS Management Console:

  • La opción está representada por la casilla Attach future instances added to this cluster (Asociar futuras instancias añadidas a este clúster). Al no seleccionar la casilla de verificación, el punto de conexión personalizado usa una lista estática que contiene solo las instancias de base de datos especificadas en la página. Al seleccionar la casilla de verificación, el punto de enlace personalizado usa una lista de exclusión. En este caso, el punto de conexión personalizado representa todas las instancias de base de datos del clúster (incluidas las añadidas en el futuro), excepto las que no se hayan seleccionado en la página.

  • La consola no permite especificar el tipo de punto de conexión. Cualquier punto de conexión personalizado creado con la consola es de tipo ANY.

    Por lo tanto, Aurora no cambia la pertenencia al punto de conexión personalizado cuando las instancias de base de datos cambian de rol entre escritor y lector debido a una conmutación por error o a una promoción.

En la AWS CLI y la API de Amazon RDS:

  • Puede especificar el tipo de punto de conexión. Por lo tanto, cuando el tipo de punto de conexión se establece en READER o WRITER, la membresía del punto de conexión se ajusta automáticamente durante las conmutaciones por error y las promociones.

    Por ejemplo, un punto de conexión personalizado con el tipo READER incluye una réplica de Aurora que luego se promociona a una instancia de escritura. La nueva instancia de escritor ya no forma parte del punto de conexión personalizado.

  • Puede añadir miembros individuales a las listas y eliminarlos de ellas después de que cambien sus roles. Utilice el comando de la AWS CLI modify-db-cluster-endpoint o la operación de API ModifyDBClusterEndpoint.

Puede asociar una instancia de base de datos a más de un punto de enlace personalizado. Por ejemplo, supongamos que añade una nueva instancia de base de datos a un clúster, o que Aurora añade una instancia de base de datos automáticamente a través del mecanismo de Auto Scaling. En estos casos, la instancia de base de datos se añade a todos los puntos de enlace personalizados para los que cumple los requisitos. A qué puntos de enlace se añade la instancia de base de datos se basa en el tipo de punto de enlace personalizado de READER, WRITER o ANY, más cualquier lista estática o de exclusión definida para cada punto de enlace. Por ejemplo, si el punto de enlace incluye una lista estática de instancias de base de datos, las réplicas de Aurora recién añadidas no se añaden a ese punto de enlace. Por el contrario, si el punto de enlace tiene una lista de exclusión, las réplicas de Aurora recién añadidas se añaden al punto de enlace, si no se menciona en la lista de exclusión y sus roles coinciden con el tipo del punto de enlace personalizado.

Si una réplica de Aurora deja de estar disponible, permanece asociada a cualquier punto de enlace personalizado. Por ejemplo, sigue formando parte del punto de enlace personalizado si está en mal estado, se detiene, se reinicia, etc. Sin embargo, no podrá conectarse a ella a través de esos puntos de enlace hasta que vuelva a estar disponible.

Administración de puntos de enlace personalizados

Dado que los clústeres de Aurora recién creados no tienen ningún punto de enlace personalizado, debe crear y administrar estos objetos usted mismo. Para ello, utilice la AWS Management Console, AWS CLI o la API de Amazon RDS.

nota

También debe crear y administrar puntos de enlace personalizados para clústeres de Aurora restaurados a partir de instantáneas. Los puntos de enlace personalizados no se incluyen en la instantánea. Vuélvalos a crear tras la restauración y elija nuevos nombres de punto de enlace si el clúster restaurado está en la misma región que el original.

Para trabajar con puntos de enlace personalizados desde la AWS Management Console, vaya a la página de detalles para su clúster de Aurora y utilice los controles de la sección de puntos de enlace personalizados.

Para trabajar con puntos de enlace personalizados desde la AWS CLI, puede usar estas operaciones:

Para trabajar con puntos de enlace personalizados a través de la API de Amazon RDS, puede usar las siguientes funciones:

Creación de un punto de enlace personalizado

Para crear un punto de enlace personalizado con la AWS Management Console, vaya a la página de detalles del clúster y elija la acción Create custom endpoint en la sección Endpoints (Puntos de enlace). Elija un nombre para el punto de enlace personalizado, único para su ID de usuario y región. Para elegir una lista de instancias de base de datos que se conserve igual incluso a medida que se amplía el clúster, deje sin seleccionar la casilla de verificación Attach future instances added to this cluster (Asociar futuras instancias añadidas a este clúster). Al seleccionar esa casilla de verificación, el punto de enlace personalizado añade de forma dinámica cualquier nueva instancia a medida que se añaden al clúster.

No puede seleccionar el tipo de punto de enlace personalizado de ANY o READER en la AWS Management Console. Todos los puntos de enlace personalizados que crea a través de la AWS Management Console tienen un tipo de ANY.

Para crear un punto de enlace personalizado con la AWS CLI, ejecute el comando create-db-cluster-endpoint.

El siguiente comando crea un punto de enlace personalizado asociado a un clúster específico. En un primer momento, el punto de enlace se asocia a todas las instancias de réplica de Aurora del clúster. Un comando posterior lo asocia a un conjunto específico de instancias de base de datos del clúster.

Para Linux, macOS o Unix:

aws rds create-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample \ --endpoint-type reader \ --db-cluster-identifier cluster_id aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample \ --static-members instance_name_1 instance_name_2

En Windows:

aws rds create-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample ^ --endpoint-type reader ^ --db-cluster-identifier cluster_id aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample ^ --static-members instance_name_1 instance_name_2

Para crear un punto de enlace personalizado con la API de RDS, ejecute la operación CreateDBClusterEndpoint.

Visualización de puntos de enlace personalizados

Para ver puntos de enlace personalizados con la AWS Management Console, vaya a la página de detalles del clúster y busque en la sección Endpoints (Puntos de enlace). Esta sección solo contiene información sobre puntos de enlace personalizados. Los detalles de los puntos de enlace integrados aparecen en la sección Details (Detalles) principal. Para ver los detalles de un punto de enlace personalizado específico, seleccione su nombre para abrir la página de detalles para ese punto de enlace.

En la siguiente captura de pantalla se muestra cómo la lista de puntos de enlace personalizados para un clúster de Aurora está inicialmente vacía.

Tras crear algunos puntos de enlace personalizados para ese clúster, se muestran en la sección Endpoints (Puntos de enlace).

Al hacer clic en la página de detalles se muestran las instancias de base de datos a las que se asocia el punto de enlace actualmente.

Para ver el detalle adicional de si las nuevas instancias de base de datos añadidas al clúster se añaden también automáticamente al punto de conexión, abra el cuadro de diálogo Edit (Editar) del punto de enlace.

Para ver puntos de enlace personalizados con la AWS CLI, ejecute el comando describe-db-cluster-endpoints.

El siguiente comando muestra los puntos de enlace personalizados asociados a un clúster especificado en una región especificada. La salida incluye los puntos de enlace integrados y cualquier punto de enlace personalizado.

Para Linux, macOS o Unix:

aws rds describe-db-cluster-endpoints --region region_name \ --db-cluster-identifier cluster_id

En Windows:

aws rds describe-db-cluster-endpoints --region region_name ^ --db-cluster-identifier cluster_id

A continuación, se muestran algunos resultados de ejemplo de un comando describe-db-cluster-endpoints. El EndpointType de WRITER o READER denota los puntos de enlace de lectura/escritura integrados y de solo lectura para el clúster. El EndpointType de CUSTOM denota los puntos de enlace que crea y elija las instancias de base de datos asociadas. Uno de los puntos de enlace tiene un campo StaticMembers no vacío, lo que denota que se asocia a un conjunto preciso de instancias de base de datos. El otro punto de enlace tiene un campo ExcludedMembers no vacío, lo que denota que el punto de enlace se asocia a todas las instancias de base de datos que no sean las que figuran en ExcludedMembers. Este segundo tipo de punto de enlace personalizado aumenta para incorporar nuevas instancias a medida que se añaden al clúster.

{ "DBClusterEndpoints": [ { "Endpoint": "custom-endpoint-demo.cluster-c7tj4example.ca-central-1.rds.amazonaws.com", "Status": "available", "DBClusterIdentifier": "custom-endpoint-demo", "EndpointType": "WRITER" }, { "Endpoint": "custom-endpoint-demo.cluster-ro-c7tj4example.ca-central-1.rds.amazonaws.com", "Status": "available", "DBClusterIdentifier": "custom-endpoint-demo", "EndpointType": "READER" }, { "CustomEndpointType": "ANY", "DBClusterEndpointIdentifier": "powers-of-2", "ExcludedMembers": [], "DBClusterIdentifier": "custom-endpoint-demo", "Status": "available", "EndpointType": "CUSTOM", "Endpoint": "powers-of-2.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "StaticMembers": [ "custom-endpoint-demo-04", "custom-endpoint-demo-08", "custom-endpoint-demo-01", "custom-endpoint-demo-02" ], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHXQKFU6J6NV5FHU", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:powers-of-2" }, { "CustomEndpointType": "ANY", "DBClusterEndpointIdentifier": "eight-and-higher", "ExcludedMembers": [ "custom-endpoint-demo-04", "custom-endpoint-demo-02", "custom-endpoint-demo-07", "custom-endpoint-demo-05", "custom-endpoint-demo-03", "custom-endpoint-demo-06", "custom-endpoint-demo-01" ], "DBClusterIdentifier": "custom-endpoint-demo", "Status": "available", "EndpointType": "CUSTOM", "Endpoint": "eight-and-higher.cluster-custom-123456789012.ca-central-1.rds.amazonaws.com", "StaticMembers": [], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHYQKFU6J6NV5FHU", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:eight-and-higher" } ] }

Para ver puntos de enlace personalizados con la API de RDS, ejecute la operación DescribeDBClusterEndpoints.html.

Edición de un punto de enlace personalizado

Puede editar las propiedades de un punto de enlace personalizado para cambiar las instancias de base de datos asociadas al punto de enlace. También puede cambiar un punto de enlace entre una lista estática y una lista de exclusión. Si necesita más detalles acerca de estas propiedades de punto de enlace, consulte Reglas de afiliación para puntos de enlace personalizados.

Podrá seguir conectándose a un punto de conexión personalizado mientras hay en curso cambios de una acción de edición.

Para editar un punto de enlace personalizado con la AWS Management Console, puede seleccionar el punto de enlace en la página de detalles del clúster o abrir la página de detalles para el punto de enlace y elegir la acción Edit (Editar).

Para editar un punto de enlace personalizado con la AWS CLI, ejecute el comando modify-db-cluster-endpoint.

Los siguientes comandos cambian el conjunto de instancias de base de datos que se aplican a un punto de enlace personalizado y, de forma opcional, se alterna entre el comportamiento de una lista estática o de exclusión. Los parámetros --static-members y --excluded-members toman una lista separada por espacios de identificadores de instancias de bases de datos.

Para Linux, macOS o Unix:

aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier my-custom-endpoint \ --static-members db-instance-id-1 db-instance-id-2 db-instance-id-3 \ --region region_name aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier my-custom-endpoint \ --excluded-members db-instance-id-4 db-instance-id-5 \ --region region_name

En Windows:

aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier my-custom-endpoint ^ --static-members db-instance-id-1 db-instance-id-2 db-instance-id-3 ^ --region region_name aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier my-custom-endpoint ^ --excluded-members db-instance-id-4 db-instance-id-5 ^ --region region_name

Para editar un punto de enlace personalizado con la API de RDS, ejecute la operación ModifyDBClusterEndpoint.html.

Eliminación de un punto de enlace personalizado

Para eliminar un punto de enlace personalizado con la AWS Management Console, vaya a la página de detalles del clúster, seleccione el punto de enlace personalizado adecuado y seleccione la acción Delete (Eliminar).

Para eliminar un punto de enlace personalizado con la AWS CLI, ejecute el comando delete-db-cluster-endpoint.

El siguiente comando elimina un punto de enlace personalizado. No tiene que especificar el clúster asociado, pero debe especificar la región.

Para Linux, macOS o Unix:

aws rds delete-db-cluster-endpoint --db-cluster-endpoint-identifier custom-end-point-id \ --region region_name

En Windows:

aws rds delete-db-cluster-endpoint --db-cluster-endpoint-identifier custom-end-point-id ^ --region region_name

Para eliminar un punto de enlace personalizado con la API de RDS, ejecute la operación DeleteDBClusterEndpoint.

Ejemplo de AWS CLI integral para puntos de enlace personalizados

En el siguiente tutorial, se usan ejemplos de AWS CLI con sintaxis de shell Unix para mostrar que podría definir un clúster con varias instancias de base de datos “pequeñas” y algunas “grandes”, además de crear puntos de enlace personalizados para conectarse a cada conjunto de instancias de base de datos. Para ejecutar comandos similares en su propio sistema, debe estar suficientemente familiarizado con los aspectos básicos de trabajar con los clústeres de Aurora y el uso de AWS CLI a fin de proporcionar sus propios valores para parámetros, como región, grupo de subredes y grupo de seguridad de VPC.

En este ejemplo se muestran los pasos de configuración iniciales: creación de un clúster de Aurora y adición de instancias de base de datos a este. Este es un clúster heterogéneo, lo que significa que no todas las instancias de base de datos tienen la misma capacidad. La mayoría de las instancias usan la clase AWS de instancia db.r4.4xlarge, pero las dos últimas instancias de base de datos usan db.r4.16xlarge. Cada uno de estos comandos create-db-instance de ejemplo muestra su resultado en la pantalla y ahorra una copia del JSON en un archivo para su posterior inspección.

aws rds create-db-cluster --db-cluster-identifier custom-endpoint-demo --engine aurora-mysql \ --engine-version 8.0.mysql_aurora.3.02.0 --master-username $MASTER_USER --manage-master-user-password \ --db-subnet-group-name $SUBNET_GROUP --vpc-security-group-ids $VPC_SECURITY_GROUP \ --region $REGION for i in 01 02 03 04 05 06 07 08 do aws rds create-db-instance --db-instance-identifier custom-endpoint-demo-${i} \ --engine aurora --db-cluster-identifier custom-endpoint-demo --db-instance-class db.r4.4xlarge \ --region $REGION \ | tee custom-endpoint-demo-${i}.json done for i in 09 10 do aws rds create-db-instance --db-instance-identifier custom-endpoint-demo-${i} \ --engine aurora --db-cluster-identifier custom-endpoint-demo --db-instance-class db.r4.16xlarge \ --region $REGION \ | tee custom-endpoint-demo-${i}.json done

Las instancias más grandes están reservadas para tipos especializados de consultas de informes. Para que sea poco probable que se conviertan en la instancia principal, en el siguiente ejemplo la prioridad de su nivel de promoción pasa a ser la más baja. En este ejemplo se especifica la opción --manage-master-user-password para generar la contraseña del usuario maestro y administrarla en Secrets Manager. Para obtener más información, consulte Administración de contraseñas con Amazon Aurora y AWS Secrets Manager. También puede utilizar la opción --master-password para especificar y administrar la contraseña usted mismo.

for i in 09 10 do aws rds modify-db-instance --db-instance-identifier custom-endpoint-demo-${i} \ --region $REGION --promotion-tier 15 done

Supongamos que desea usar las dos instancias «más grandes» solo para las consultas que más recursos consumen. Para ello, primero puede crear un punto de enlace de solo lectura personalizado. A continuación, puede agregar una lista estática de miembros para que el punto de enlace se conecte solo a esas instancias de base de datos. El nivel de promoción de esas instancias ya es el más bajo, lo que reduce la probabilidad de que cualquiera de ellas se convierta alguna vez en la instancia principal. Si una de ellas se convirtiera en la instancia principal, resultaría inaccesible a través de este punto de enlace, ya que especificamos el tipo READER en lugar del tipo ANY.

En el siguiente ejemplo se muestran los comandos de punto de enlace de creación y modificación, así como la salida JSON de ejemplo que muestra el estado inicial y modificado del punto de enlace personalizado.

$ aws rds create-db-cluster-endpoint --region $REGION \ --db-cluster-identifier custom-endpoint-demo \ --db-cluster-endpoint-identifier big-instances --endpoint-type reader { "EndpointType": "CUSTOM", "Endpoint": "big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "DBClusterEndpointIdentifier": "big-instances", "DBClusterIdentifier": "custom-endpoint-demo", "StaticMembers": [], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHXQKFU6J6NV5FHU", "ExcludedMembers": [], "CustomEndpointType": "READER", "Status": "creating", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:big-instances" } $ aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier big-instances \ --static-members custom-endpoint-demo-09 custom-endpoint-demo-10 --region $REGION { "EndpointType": "CUSTOM", "ExcludedMembers": [], "DBClusterEndpointIdentifier": "big-instances", "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHXQKFU6J6NV5FHU", "CustomEndpointType": "READER", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:big-instances", "StaticMembers": [ "custom-endpoint-demo-10", "custom-endpoint-demo-09" ], "Status": "modifying", "Endpoint": "big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "DBClusterIdentifier": "custom-endpoint-demo" }

El punto de enlace READER predeterminado del clúster puede conectarse a las instancias de base de datos “pequeñas” o “grandes”, lo que hace poco práctico predecir el rendimiento y la escalabilidad de las consultas cuando el clúster está ocupado. Para dividir la carga de trabajo limpiamente entre los conjuntos de instancias de base de datos, puede omitir el punto de enlace READER predeterminado y crear un segundo punto de enlace personalizado que se conecte a las demás instancias de base de datos. El siguiente ejemplo lo hace creando un punto de enlace personalizado y, a continuación, añadiendo una lista de exclusión. Cualquier otra instancia de base de datos que añada al clúster posteriormente se añadirá a este punto de enlace automáticamente. El tipo ANY significa que este punto de enlace se asocia a ocho instancias en total: la instancia principal y otras siete réplicas de Aurora. Si en el ejemplo se usó el tipo READER, el punto de enlace personalizado solo se asociaría a las siete réplicas de Aurora.

$ aws rds create-db-cluster-endpoint --region $REGION --db-cluster-identifier custom-endpoint-demo \ --db-cluster-endpoint-identifier small-instances --endpoint-type any { "Status": "creating", "DBClusterEndpointIdentifier": "small-instances", "CustomEndpointType": "ANY", "EndpointType": "CUSTOM", "Endpoint": "small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "StaticMembers": [], "ExcludedMembers": [], "DBClusterIdentifier": "custom-endpoint-demo", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:small-instances", "DBClusterEndpointResourceIdentifier": "cluster-endpoint-6RDDXQOC3AKKZT2PRD7ST37BMY" } $ aws rds modify-db-cluster-endpoint --db-cluster-endpoint-identifier small-instances \ --excluded-members custom-endpoint-demo-09 custom-endpoint-demo-10 --region $REGION { "DBClusterEndpointIdentifier": "small-instances", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:c7tj4example:cluster-endpoint:small-instances", "DBClusterEndpointResourceIdentifier": "cluster-endpoint-6RDDXQOC3AKKZT2PRD7ST37BMY", "CustomEndpointType": "ANY", "Endpoint": "small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "EndpointType": "CUSTOM", "ExcludedMembers": [ "custom-endpoint-demo-09", "custom-endpoint-demo-10" ], "StaticMembers": [], "DBClusterIdentifier": "custom-endpoint-demo", "Status": "modifying" }

En el siguiente ejemplo se comprueba el estado de los puntos de enlace de este clúster. El clúster aún tiene su punto de enlace del clúster original, con EndPointType de WRITER, que aún usaría para la administración, ETL y otras operaciones de escritura. Aún tiene su punto de enlace READER original, que no usaría porque cada conexión a este podría dirigirse a una instancia de base de datos “pequeña” o “grande”. Los puntos de enlace personalizados hacen que este comportamiento sea predecible, con conexiones garantizadas para usar una de las instancias de base de datos “pequeñas” o “grandes” en función del punto de enlace que especifique.

$ aws rds describe-db-cluster-endpoints --region $REGION { "DBClusterEndpoints": [ { "EndpointType": "WRITER", "Endpoint": "custom-endpoint-demo.cluster-c7tj4example.ca-central-1.rds.amazonaws.com", "Status": "available", "DBClusterIdentifier": "custom-endpoint-demo" }, { "EndpointType": "READER", "Endpoint": "custom-endpoint-demo.cluster-ro-c7tj4example.ca-central-1.rds.amazonaws.com", "Status": "available", "DBClusterIdentifier": "custom-endpoint-demo" }, { "Endpoint": "small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "CustomEndpointType": "ANY", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:small-instances", "ExcludedMembers": [ "custom-endpoint-demo-09", "custom-endpoint-demo-10" ], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-6RDDXQOC3AKKZT2PRD7ST37BMY", "DBClusterIdentifier": "custom-endpoint-demo", "StaticMembers": [], "EndpointType": "CUSTOM", "DBClusterEndpointIdentifier": "small-instances", "Status": "modifying" }, { "Endpoint": "big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com", "CustomEndpointType": "READER", "DBClusterEndpointArn": "arn:aws:rds:ca-central-1:111122223333:cluster-endpoint:big-instances", "ExcludedMembers": [], "DBClusterEndpointResourceIdentifier": "cluster-endpoint-W7PE3TLLFNSHXQKFU6J6NV5FHU", "DBClusterIdentifier": "custom-endpoint-demo", "StaticMembers": [ "custom-endpoint-demo-10", "custom-endpoint-demo-09" ], "EndpointType": "CUSTOM", "DBClusterEndpointIdentifier": "big-instances", "Status": "available" } ] }

En el ejemplo final se muestra cómo conexiones de base de datos sucesivas a los puntos de enlace personalizados se conectan a las diversas instancias de base de datos del clúster de Aurora. El punto de enlace small-instances siempre se conecta a las instancias de base de datos db.r4.4xlarge, que son los hosts con la numeración más baja de este clúster.

$ mysql -h small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-02 | +-------------------------+ $ mysql -h small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-07 | +-------------------------+ $ mysql -h small-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-01 | +-------------------------+

El punto de enlace big-instances siempre se conecta a las instancias de base de datos db.r4.16xlarge, que son los dos hosts con la numeración más alta de este clúster.

$ mysql -h big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-10 | +-------------------------+ $ mysql -h big-instances.cluster-custom-c7tj4example.ca-central-1.rds.amazonaws.com -u $MYUSER -p mysql> select @@aurora_server_id; +-------------------------+ | @@aurora_server_id | +-------------------------+ | custom-endpoint-demo-09 | +-------------------------+

Uso de los puntos de enlace de instancia

Cada instancia de base de datos en un clúster de Aurora tiene su propio punto de enlace de instancia integrado, cuyo nombre y otros atributos administra Aurora. No puede crear, eliminar o modificar este tipo de punto de enlace. Es posible que esté familiarizado con los puntos de enlace de instancia si usa Amazon RDS. Sin embargo, con Aurora normalmente se utilizan los puntos de enlace del escritor y del lector con más frecuencia que los puntos de enlace de instancia.

En las operaciones de Aurora diarias, la forma principal de uso de los puntos de enlace de instancia consiste en diagnosticar los problemas de rendimiento o capacidad que afectan a una instancia específica de un clúster de Aurora. Mientras se conecta a una instancia específica, puede examinar sus variables de estado, métricas, etc. Hacer esto puede ayudarle a determinar qué sucede con esa instancia que es distinto de lo que ocurre con otras instancias del clúster.

En los casos de uso avanzados, podría configurar algunas instancias de base de datos de manera distinta a otras. En este caso, use el punto de enlace de instancia para conectarse directamente a una instancia que sea más pequeña, más grande o que, de otro modo, tenga características distintas del resto. Asimismo, configure la prioridad de conmutación por error para que esta instancia de base de datos especial sea la última opción para hacerse cargo como instancia principal. Recomendamos que use puntos de enlace personalizados en lugar del punto de enlace de instancia en estos casos. Al hacerlo se simplifica la administración de la conexión y la alta disponibilidad a medida que añade más instancias de base de datos a su clúster.

Cómo funcionan los puntos de enlace de Aurora con la alta disponibilidad

Para clústeres en los que la alta disponibilidad es importante, utilice el punto de enlace del escritor para conexiones de lectura y escritura o con fines generales y el punto de enlace del lector para conexiones de solo lectura. Los puntos de enlace del escritor y del lector administran la conmutación por error de instancias de base de datos mejor que los puntos de enlace de instancia. A diferencia de los puntos de enlace de instancia, los puntos de enlace del escritor y del lector cambian automáticamente a qué instancia de base de datos se conectan si una instancia de base de datos del clúster deja de estar disponible.

Si se produce un error en la instancia de base de datos principal de un clúster de bases de datos, Aurora conmuta por error automáticamente a una nueva instancia de base de datos principal. Lo hace promoviendo una réplica de Aurora existente a una nueva instancia de base de datos principal o creando una instancia de base de datos principal. Si se produce una conmutación por error, puede usar el punto de enlace del escritor para volver a conectarse a la instancia de base de datos recién promovida o creada, o bien usar el punto de enlace del lector para volver a conectarse a una de las réplicas de Aurora del clúster de bases de datos. Durante una conmutación por error, el punto de enlace del lector podría dirigir las conexiones a la nueva instancia de base de datos principal de un clúster de bases de datos durante un breve periodo tras convertirse una réplica de Aurora en la nueva instancia de base de datos principal.

Si diseña su propia lógica de aplicación para administrar conexiones a puntos de enlace de instancia, puede, manualmente o mediante programación, encontrar el conjunto resultante de instancias de base de datos disponibles en el clúster de bases de datos. Utilice el comando describe-db-clusters de la AWS CLI o la operación DescribeDBClusters de la API de RDS para encontrar el clúster de base de datos y los puntos de conexión de lector, las instancias de base de datos, ya sean lectoras, y sus niveles de promoción. Luego puede confirmar sus clases de instancia tras la conmutación por error y conectarse a un punto de enlace de instancia adecuado.

Para obtener más información acerca de las conmutaciones por error, consulte Tolerancia a errores para un clúster de base de datos de Aurora.