Amazon RDS es la base de datos "que mantiene Amazon": tú eliges el motor y el tamaño y ellos se ocupan de instalar, actualizar, copiar y vigilar. Es el paso natural cuando una web crece o cuando quieres que la base de datos no viva en la misma máquina que la web. El formulario tiene muchas opciones y una trampa: la casilla de acceso público. Si la marcas, la base de datos queda expuesta a internet; si no la marcas y no haces lo demás bien, la web no conecta y no sabes por qué. Esta guía recorre el camino correcto.
Antes de empezar: qué significa cada cosa
- RDS
- Relational Database Service, el servicio de bases de datos gestionadas de Amazon. Soporta MySQL, PostgreSQL, MariaDB y otros.
- Instancia de base de datos
- Cada base de datos que creas en RDS, con su tamaño y su dirección.
- Motor
- El sistema de base de datos: MySQL es el habitual para webs; PostgreSQL para muchas aplicaciones a medida.
- Punto de enlace (endpoint)
- La dirección a la que se conecta tu web, en lugar de "localhost".
- Acceso público
- Si la base de datos tiene dirección en internet. Debe estar desactivado: solo tus máquinas de AWS deben llegar.
- Grupo de seguridad
- El cortafuegos de AWS. La base de datos tendrá uno que debe permitir la entrada desde el grupo de tu máquina web.
- Multi-AZ
- Opción para tener una réplica en otro centro de datos que toma el relevo si falla el principal. Cuesta el doble; para empezar no hace falta.
- Usuario maestro
- El usuario principal de la base de datos. Su contraseña la pones tú o la gestiona AWS.
Paso a paso
Prepara el grupo de seguridad de la base de datos
Antes del formulario, en EC2, Grupos de seguridad, Crear: nombre
bd-interna, una regla de entrada tipo MYSQL/Aurora (puerto 3306) con origen el grupo de seguridad de tu máquina web (elige el grupo en el desplegable en vez de una IP). Así, solo las máquinas que lleven ese grupo podrán conectar. Si prefieres, en el formulario de RDS hay un atajo que lo hace por ti ("Conectar a una instancia EC2"), pero saber hacerlo a mano te servirá después.Abre el formulario de RDS
Consola de RDS, misma región que tu máquina, Crear base de datos. Elige Creación estándar (la fácil esconde la casilla de acceso público), motor MySQL, la versión recomendada. En plantillas, Capa gratuita si tu cuenta la tiene y es para probar, o Desarrollo/pruebas para una web pequeña; Producción activa Multi-AZ y cuesta más.
Nombre, usuario y tamaño
Identificador
bd-web. Usuario maestroadmino uno tuyo; contraseña: deja que la gestione AWS Secrets Manager si no te importa un pequeño coste, o pon una tuya larga y guárdala en un gestor de contraseñas. Clase de instancia: la más pequeña de la familia t (db.t4g.microodb.t3.micro) para empezar; se cambia después. Almacenamiento gp3, 20 GB, con escalado automático activado y un tope razonable (por ejemplo 100 GB) para que no se llene.Conectividad: la parte que importa
En Conectividad: recurso de computación No conectar (lo haces con el grupo de seguridad), la VPC por defecto, Acceso público: No. En grupo de seguridad, Elegir existente y selecciona
bd-interna; quita eldefault. Deja el puerto 3306. Más abajo, en Configuración adicional, escribe un nombre de base de datos inicial (tienda) para no tener que crearla a mano, deja activadas las copias automáticas con 7 días y una ventana de madrugada, y activa el cifrado. Crea. Tarda unos 5 o 10 minutos.Prueba la conexión desde la máquina web
Cuando el estado sea "Disponible", abre la base de datos y copia el punto de enlace de la pestaña Conectividad. Entra por SSH en tu máquina web y prueba:
mysql -h tu-endpoint.eu-west-1.rds.amazonaws.com -u admin -p tiendaSi entras, está todo bien. Si se queda colgado sin responder, es el grupo de seguridad (paso 1); si dice "Access denied", es el usuario o la contraseña.
Conecta la web y haz una copia
En la configuración de tu aplicación cambia el servidor a ese punto de enlace, con el usuario y la contraseña. Si traes datos de otra base, vuélcalos con
mysqldumpe impórtalos conmysqlcomo en cualquier migración. Cuando funcione, haz una instantánea manual desde RDS: tu primer punto de retorno seguro. Las copias automáticas seguirán cada día.
Qué puede salir mal
La web no conecta y la base está "Disponible"
Grupo de seguridad en el 95 % de los casos: la regla de entrada de 3306 no tiene como origen el grupo de tu máquina web, o la máquina web no lleva ese grupo. Revisa los dos lados.
Quiero conectar desde mi ordenador con un programa gráfico
Sin acceso público, no puedes directamente. Lo correcto es un túnel SSH a través de la máquina web (los programas gráficos suelen tenerlo integrado). Activar el acceso público "un rato" se olvida y se queda.
La factura es más alta de lo que pensaba
Mira si se activó Multi-AZ (plantilla Producción), si el almacenamiento escaló solo o si Secrets Manager y Performance Insights están activos. Y recuerda que RDS se cobra por horas aunque nadie la use: hay una guía sobre pararla.
Me pide una contraseña que no tengo
Si dejaste la contraseña en Secrets Manager, está ahí (consola de Secrets Manager, el secreto de la base). Si la pusiste tú y la perdiste, en RDS puedes Modificar la instancia y poner una nueva sin reiniciar.
En Simplio
En Simplio creas la base de datos RDS desde un formulario corto, eligiendo a qué máquina debe poder conectarse: Simplio crea el grupo de seguridad correcto, deja el acceso público cerrado y las copias activas, y te muestra el punto de enlace listo para pegar en la web. Las bases de datos aparecen junto a sus máquinas con el estado, las copias y un botón de instantánea, y cada persona solo ve las que le has asignado.
Lo mismo, en AWS y en Simplio
| En la consola de AWS | En Simplio | |
|---|---|---|
| Crear la base de datos bien | Grupo de seguridad en EC2 más formulario de RDS de 8 bloques: 30 minutos y saber qué es el acceso público | Formulario de 4 campos con acceso público cerrado y cortafuegos abierto solo a la máquina que elijas |
| Probar la conexión | SSH a la máquina web y comando mysql | Botón "Probar conexión" desde la máquina elegida |
| Copias y estado | Pestañas de RDS | En la misma tarjeta que la máquina, con aviso si falta una copia |