Configurar las conexiones de la base de datos compartida

con Amazon RDS Proxy

Amazon RDS Proxy es un proxy de base de datos totalmente administrado y altamente disponible para Amazon Relational Database Service (Amazon RDS) que hace que las aplicaciones sean más escalables, más resistentes a fallos de la base de datos y más seguras.

Muchas aplicaciones, incluidas aquellas construidas a partir de modernas arquitecturas sin servidores que utilizan AWS Lambda, pueden tener una gran cantidad de conexiones abiertas al servidor de la base de datos y pueden abrir y cerrar conexiones de bases de datos rápidamente, agotando la memoria de la base de datos y los recursos informáticos Amazon RDS Proxy permite que las aplicaciones agrupen y compartan conexiones establecidas con la base de datos, mejorando la eficiencia de la base de datos y la escalabilidad de la aplicación. Con RDS Proxy, los tiempos de conmutación por error para las bases de datos de Aurora y RDS se reducen hasta un 66 % y las credenciales, la autenticación y el acceso a la base de datos se puede administrar mediante la integración con AWS Secrets Manager y AWS Identity and Access Management (IAM).

Amazon RDS Proxy se puede habilitar para la mayoría de las aplicaciones sin cambiar el código y no es necesario aprovisionar ni administrar ninguna infraestructura adicional. Los precios son simples y predecibles: usted paga por vCPU de la instancia de base de datos para la que está habilitado el proxy. Amazon RDS Proxy admite Amazon RDS for MySQL y Amazon Aurora con compatibilidad con MySQL.

En este tutorial, aprenderá a crear un proxy de Amazon RDS y conectarlo a una base de datos existente de Amazon RDS MySQL. Usted usa el cliente MySQL en una instancia EC2 de Amazon para hacer una conexión a la base de datos RDS MySQL a través del proxy de RDS. Estos conceptos también se pueden aplicar a la arquitectura sin servidor con Amazon RDS.

Requisitos previos

Amazon RDS Proxy requiere que disponga de un conjunto de recursos de red, como ser:

  • una Amazon Virtual Private Cloud (Amazon VPC),
  • dos o más subredes en diferentes zonas de disponibilidad,
  • una base de datos de Amazon RDS e instancias EC2 de Amazon dentro de la misma VPC y
  • un gateway de internet

Si se conectó correctamente a las instancias de bases de datos existentes RDS MySQL, ya tiene configurado el recurso requerido de red. Este tutorial requiere que su cuenta esté configurada con una instancia EC2 y una instancia RDS MySQL en la misma VPC. Si no tiene configuradas estas instancias, puede seguir las instrucciones de RDS y EC2 para aprovisionar las instancias en el VPC predeterminado.

Acerca de este tutorial
Duración 10 minutos      
Costo Menos de 1 USD
Caso de uso Bases de datos
Productos Amazon RDS, AWS Secrets Manager
Público Administradores de bases de datos, desarrolladores
Nivel Intermedio
Última actualización 16 de marzo de 2020

Paso 1: verificar los grupos de seguridad y la conectividad de la base de datos

Para este paso, verifique las reglas entrantes y salientes de los grupos de seguridad; luego verifique la conectividad desde una instancia EC2 actual a una instancia existente de base de datos de RDS.  

1.1 — Abra el panel de control de Amazon VPC e inicie sesión con sus credenciales para la cuenta de AWS. Si no tiene una cuenta de AWS, cree una nueva cuenta AWS para comenzar.

1.2 — Elija la Región en el menú desplegable y seleccione la Región de AWS donde se sitúan las instancias actuales de RDS y EC2. Este tutorial utiliza la región EE.UU. Este (Ohio)

1.3 — En el panel de navegación izquierdo, seleccione Grupos de seguridad.

Este tutorial utiliza dos grupos de seguridad de VPC:

  • EC2: Este grupo de seguridad está asociado a la instancia EC2 y permite únicamente la entrada de la conexión SSH a la instancia EC2 y cualquier conectividad de salida.
  • RDS: Este grupo de seguridad está asociado a la instancia RDS y permite únicamente la conexión TCP en el puerto 3306 desde la instancia EC2 (que se muestra como EC2-sg) y cualquier conectividad de salida.

1.4 – Seleccione EC2-sg.

  • Seleccione la pestaña Reglas de entrada y verifique que el tipo sea SSH.
  • Seleccione la pestaña Reglas de salida y verifique que el tipo sea Todo tráfico.

1.5 — Seleccione RDS-sg.

  • Seleccione la pestaña Reglas de entrada y verifique que la fuente es el EC2-sg.
  • Seleccione la pestaña Reglas de salida y verifique que el tipo sea Todo tráfico.

1.6 — Vaya a la consola RDS, seleccione Bases de datos, luego seleccione la instancia existente RDS MySQL DB. En la pestaña Conectividad y seguridad anote elpunto de enlace de la instancia.

1.7 — Vaya a la consola EC2, seleccione Instancias en ejecución, luego seleccione la instancia EC2 desde la que desea comprobar la conectividad a la instancia de base de datos de RDS. Seleccione Conectar.

1.8 — En el cuadro de diálogo Conectarse a la instancia, seleccione Conectarse a la instancia EC2 (conexión SSH basada en el navegador). Se abre una ventana del navegador donde se muestra la interfaz de líneas de comandos (CLI) de la instancia EC2.

1.9 — En la CLI de la instancia EC2, utilice el siguiente comando para comprobar la conectividad a la instancia de base de datos de RDS DB:

mysql -h <RDS DB endpoint> -P 3306 -u <username> -p

Cuando se le solicite, ingrese su contraseña y presione Intro.

CLI le devuelve un mensaje que le indica que se ha conectado con éxito a la instancia de base de datos de RDS. Si no puede conectarse desde la instancia EC2 a la instancia RDS, verifique que ambas instancias estén en la misma VPC y que los grupos de seguridad estén configurados correctamente.

Paso 2: guardar credenciales de la base de datos en AWS Secrets Manager

Para este paso, debe guardar las credenciales de la base de datos en AWS Secrets Manager. Cada cuenta de usuario de la base de datos al que accede el proxy requiere un secreto correspondiente en AWS Secrets Manager. Amazon RDS Proxy utiliza estos secretos para mantener un grupo de conexión a su base de datos.

2.1 — Vaya a la sección de Secrets Manager de la consola de administración de AWS y seleccione Guardar un nuevo secreto.

2.2 – En la casilla Seleccionar tipo de secreto, elija Credenciales para la base de datos de RDS. Luego, escriba el nombre de usuario y la contraseña que utilizó cuando creó la base de datos.

2.3 – Seleccione DefaultEncryptionKey (clave de cifrado predeterminado) y luego seleccione la base de datos de RDS correspondiente para acceder al secreto. Seleccione Siguiente.  

2.4 – En la sección Nombre y descripción del secreto, proporcione un nombre y descripción de su secreto así puede encontrarlo fácilmente más tarde. Luego, seleccione Siguiente.

2.5 — AWS Secrets Manager permite configurar la rotación automática de sus secretos. Esta es una forma fácil e inteligente de mejorar la seguridad de la aplicación. Para obtener más información, consulte Rotación de secretos de AWS Secrets Manager..

La configuración de la rotación de secretos está fuera del marco de este tutorial, así que seleccione la opción Deshabilitar la rotación automática y luego elija Siguiente.

2.6 — La consola de Secrets Manager le muestra los ajustes de configuración para su secreto y un código de ejemplo que muestra cómo usar su secreto. Desplácese hasta la parte inferior de la página y seleccione Guardar para guardar su secreto.

2.7 — Después de crear el secreto, la página de Secrets Manager muestra los secretos creados. Elija su secreto del tutorial.

En la casilla Detalles secretos, se muestra el ARN de su secreto. Copie este valor, ya que lo necesitará más adelante en este tutorial.

Paso 3: crear el rol y la política de IAM

En este paso, creará el rol y la política de AWS Identity and Access Management (IAM) que le permite al proxy de RDS acceder a los secretos que creó en AWS Secrets Manager.

3.1 — Vaya al panel de control de IAM en la consola de administración de AWS. En el panel de navegación del panel de control de IAM seleccione Roles y luego Crear rol.

3.2 — Para Seleccionar el tipo de entidad de confianza, seleccione servicio de AWS. Para Seleccionar un caso de uso, seleccione RDS.

3.3. Para Seleccione su caso de uso, elija RDS - Agregar el rol a la base de datos y luego Siguientes permisos.

3.4 – Seleccione Crear política y la pestaña JSON. Elimine las declaraciones de políticas existentes

3.5 – Agregue la siguiente declaración de política nueva para reemplazar su valor ARN secreto para el ejemplo que se indica a continuación. A continuación, elija Revisar la política

(Esta declaración de política se describe en Configuración de las políticas de AWS Identity and Access Management (IAM) en la Guía del usuario de Amazon RDS).

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetRandomPassword",
                "secretsmanager:CreateSecret",
                "secretsmanager:ListSecrets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "secretsmanager:*",
            "Resource": [
                     "your_secret_ARN"
            ]
        }
    ]
}

3.6 — En la sección Revisar política, proporcione un nombre y descripción a su política para poder encontrarla fácilmente más tarde. Luego, elija Crear política.

3.7 — Seleccione Roles y luego Actualizar.

3.8 — En el casillero Búsqueda, escriba tutorial y seleccione la política del tutorial. Elija Siguiente: etiquetas.

3.9 — Pase por alto la sección etiquetado y seleccione Siguiente: revisión.

3.10 — En la sección Revisar, proporcione un nombre y descripción al rol así puede encontrarlo fácilmente más tarde. Luego, seleccione Crear rol.

3.11 — Confirme que ha creado el rol.

Paso 4: crear un proxy de RDS

En este paso, creará un proxy de RDS Proxy y configurará el proxy para el grupo de seguridad que verificó en el paso 1, el secreto que creó en el paso 2, y el rol que creó en el paso 3.

4.1 — Vaya a la consola de RDS. En el panel de navegación de RDS, seleccione Proxies y luego Crear proxy.

4.2 — En la sección Configuración del proxy proceda de la siguiente manera:

  • Para Identificador del proxy, dele al proxy un nombre fácilmente identificable.
  • Desactive la casilla de verificación Requiere Transport Layer Security (seguridad de capa de transporte).
  • Deje el tiempo de espera de conexión inactiva del cliente como el valor predeterminado de 30 minutos.

4.3 — En la sección Configuración del grupo objetivo para Base de datos, seleccione la instancia de base de datos RDS MySQL DB que va a estar asociada con este proxy de RDS. (Esta instancia de base de datos de RDS DB es la misma para la que verificó la conectividad en el paso 1). Para las Conexiones máximas del grupo de conexión, conserve el valor predeterminado de 100.

4.4 — En la sección Conectividad proceda de la siguiente manera:

  • Para el secreto de Secrets Manager, seleccione el secreto que creó en el paso 2.
  • Para el rol de IAM, seleccione el rol que creó en el paso 3.
  • Para Autenticación de IAM, mantenga la configuración predeterminada de Deshabilitado. (Este tutorial utiliza las credenciales de base de datos para conectarse con el proxy de RDS Proxy por lo tanto no se usa la autenticación de IAM).
  • Para Subredes, seleccione un mínimo de dos subredes en distintas zonas de disponibilidad.
  • Amplíe la Configuración adicional de conectividad y para el grupo de seguridad de VPC, seleccione el grupo de seguridad existente de RDS-sg.

4.5 — En la sección Configuración avanzada, mantenga la selección predeterminada para Registro optimizado. Seleccione la casilla de verificación del acuerdo de servicio y elija Crear proxy.

4.6 — Espere que el estado del proxy cambie de Creación a Disponible y luego seleccione el proxy.

4.7 — En la sección Configuraciones del proxy anote el Punto de enlace del proxy,confirme los demás parámetros y corrija.

Paso 5: conectarse a la base de datos de RDS a través del proxy de RDS

En este paso se conectará a la instancia de base de datos de RDS desde la instancia EC2. Sin embargo, en lugar de conectarse directamente, la instancia EC2 se conecta a la instancia de base de datos de RDS a través del proxy de RDS.

5.1 — Vaya a la consola de EC2. En el panel de navegación de EC2, seleccione Instancias en ejecución, luego seleccione la instancia EC2 con la que probó la conectividad en el paso 1. Seleccione Conectar.

5.2 — En el cuadro de diálogo Conectarse a la instancia seleccione Conectarse a la instancia EC2 (conexión SSH basada en el navegador), y luego seleccione Conectar.

5.3 — En el CLI de la instancia EC2, utilice el siguiente comando para conectarse a la instancia RDS a través del punto de enlace del proxy de RDS:

mysql -h <proxy endpoint> -P 3306 -u <username> -p

Cuando se le solicite, ingrese su contraseña y presione Intro.

CLI le devuelve un mensaje que le indica que se ha conectado con éxito a la instancia de base de datos de RDS a través del punto de enlace del proxy de RDS.

Paso 6: monitorización de la conexión del proxy de RDS

En este paso, utilizará Amazon CloudWatch para monitorizar las métricas del proxy, como clientes y conexiones de la base de datos.

6.1 — Vaya a la consola CloudWatch. En el panel de navegación de CloudWatch, seleccione Métricas y luego RDS, Métricas por proxy.  

6.2 — En la casilla Búsqueda , escriba el nombre de su proxy.

6.3 — En la lista de métricas, seleccione ClientConnections (conexiones del cliente) DatabaseConnections (conexiones de la base de datos). Para la opción mostrar, seleccione, Número.

La métrica ClientConnections muestra la cantidad actual de conexiones del cliente al proxy de RDS que se informan por minuto. La métrica DatabaseConnections muestra la cantidad actual de conexiones de base de datos desde el proxy de RDS que se informan por minuto. Para información sobre todas las métricas, vea Monitorización del proxy de RDS.

El gráfico resultante indica que hay una conexión del cliente (EC2 a proxy del RDS) y una conexión de la base de datos (proxy del RDS a la instancia de la base de datos de RDS). Estos datos confirman la conexión que hizo en el paso 5.

Paso 7: limpieza

En los siguientes pasos, limpiará los recursos que creó en este tutorial.

Eliminar el proxy de RDS

7.1 — Vaya a la consola de RDS y, en el panel izquierdo, seleccione Proxies.

7.2 — Seleccione el proxy del tutorial.

7.3 — Seleccione Acciones y luego seleccione Eliminar.

7.4 — En el cuadro de diálogo, escriba eliminar y luego, elija Eliminar.

El estado del proxy cambia a Eliminando. Al terminar, el proxy queda eliminado de la lista.

Elimine el secreto

7.5 — Vaya a la consola de Secrets Manager.

7.6 — Seleccione el secreto del tutorial.

7.7 — Seleccione Acciones y luego seleccione Eliminar secreto.

7.8 — Por seguridad, Secrets Manager requiere un periodo de espera antes de que un secreto pueda eliminarse permanentemente. Use el periodo predeterminado de 30 días y seleccione Programar borrado.

Eliminar el rol de IAM y la política

7.9 — Vaya a la consola de IAM y en el panel de navegación seleccione Roles.

7.10 — Busque el rol del tutorial y luego seleccione la casilla de verificación al lado del rol.

7.11 — En la parte superior de la página, seleccione Eliminar rol.

7.12 — En el cuadro de diálogo de confirmación, haga clic en Sí, eliminar  

7.12 — En el panel de navegación de IAM, elija Políticas.

7.13 — Busque la política del tutorial y luego seleccione la casilla de verificación al lado de la política.  

7.14 — Seleccione Acciones de la política y luego seleccione Eliminar.

7.15 — Confirme que quiere eliminar la política y luego seleccione Eliminar.

Eliminar otros recursos

Si creó una nueva instancia EC2, nuevas instancias de RDS y los grupos de seguridad correspondientes para este tutorial, elimine también esos recursos.

Felicitaciones

Ha creado un proxy de Amazon RDS para agrupar y compartir las conexiones de la base de datos, ha monitorizado las métricas del proxy y ha verificado la actividad de conexión del proxy.

¿Le resultó útil este tutorial?

Gracias
Indíquenos lo que le gustó.
Cerrar
Lamentamos haberlo decepcionado
¿Hay información desactualizada, confusa o inexacta? Ayúdenos a mejorar este tutorial con sus comentarios.
Cerrar

Más información sobre las características de Amazon RDS

Obtenga más información sobre las características de Amazon RDS con la guía del usuario de Amazon RDS.

Prácticas recomendadas para Amazon RDS

Más información sobre las prácticas recomendadas generales y las opciones para trabajar con Amazon RDS.

Más información sobre Amazon RDS Proxy