AWS RDS: Crea tu Base de Datos y Realiza tus Primeras Consultas en un Laboratorio Práctico
Tags: aws, rds, español, tutorial
Published: 2024-02-21 13:51:15

¡Hola a todos! En este emocionante laboratorio, les guiaré paso a paso en la creación de una base de datos utilizando Amazon RDS. Desde la configuración inicial hasta su primera consulta SQL, exploraremos juntos cada detalle. Prepárense para sumergirse en el fascinante mundo de las bases de datos y descubrir cómo hacerlo con Amazon RDS. ¡Vamos allá!

Comencemos revisando la definición de RDS como servicio:

**Amazon Relational Database Service** (Amazon RDS) es un conjunto de servicios administrados que simplifican las tareas de configuración, operación y escalado de bases de datos en la nube. Ofreciendo opciones flexibles, puedes elegir entre siete motores populares, como Amazon Aurora (compatible con MySQL y PostgreSQL), MySQL, MariaDB, PostgreSQL, Oracle y SQL Server. Además, puedes implementar en instalaciones locales con Amazon RDS en AWS Outposts

Ahora que hemos entendido el concepto de Amazon RDS, veamos los requisitos para completar este taller:

- Una cuenta de AWS

- Instala MySQL y su Workbench para contar con la interfaz gráfica necesaria para conectar a tu base de datos y ejecutar consultas.

- También puedes optar por instalar cualquier interfaz de base de datos de tu preferencia. En mi caso, utilizaré SQLECTRON, ya que es más sencillo, menos pesado y suficiente para este taller. Puedes descargarlo [aquí](https://sqlectron.github.io/)

Comencemos.

1. Comencemos creando un grupo de seguridad para nuestra base de datos, el cual definirá las reglas de tráfico entrante y saliente. Iniciaremos sesión en la Consola de AWS y buscaremos el servicio EC2. Si no lo tienes agregado como favorito, puedes utilizar la barra de búsqueda para encontrarlo.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/psb4lyxe85a7hdinuz44.png)

- Una vez estando en la consola de EC2, en la columna izquierda ubicamos la sección de Redes y Seguridad y seleccionamos la opción **Security Groups**.

- Asigna un nombre al grupo de seguridad; es buena práctica que sea descriptivo según la finalidad. En mi caso, le pondré **DB-SG**.

- Opcionalmente, puedes agregar una descripcion que consideres clave para identificar su SG.

- Para este taller, usaremos la VPC por defecto.

- Vamos a la sección de reglas de entrada en la parte inferior y seleccionamos el botón Agregar Regla. Este es un paso crucial al momento de crear un grupo de seguridad.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hdm6dxp0pp9nhlf7eu2f.png)

- Como podemos apreciar en la imagen, para "Tipo" se especifica el protocolo para el tráfico de red. En nuestro caso, vamos a elegir mysql-aurora (Es lo que corresponde para una base datos mysql) y automáticamente se seleccionará el puerto 3306, si crearas una DB con un motor distinto solo debes cambiarlo.

- En "Fuente-Source" para este taller elegiremos cualquier fuente, esto quiere decir que nuestro grupo de seguridad permite trafico de entrada desde cualquier recurso, en otros talleres aprenderemos buenas practicas y consideraciones a tener en cuenta para este aspecto.

- Ya podemos presionar el boton "Crear grupo de seguridad"

2. Es hora de crear nuestra base de datos. Encuentra el servicio de RDS en la sección de favoritos si ya lo agregaste, o encuéntralo utilizando la barra de búsqueda, similar a como lo hicimos con EC2 en pasos anteriores.

- Estando en la consola de RDS, en la columna izquierda seleccionamos "Bases de datos" y luego elegimos "Crear base de datos.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wisnijr47cnb1wuufpjw.png)

- Elige el modo de creación: Standard o Sencilla. Con el modo "Standard", puedes personalizar configuraciones como seguridad y alta disponibilidad etc. En el modo "Sencilla", se utilizan configuraciones recomendadas por defecto, algunas modificables después de la creación. Te recomiendo seleccionar Standard para un mayor control y comprensión detallada.

- Para este taller, usaremos una base de datos MySQL, como lo especificamos en el grupo de seguridad.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r7thuwc96100dakiv3wc.png)

- La versión del motor se puede dejar seleccionada por defecto. Al momento de hacer este taller, está en MySQL 8.0.35. Puedes cambiarla si así lo requieres.

- Continuamos con la sección de plantillas. Elegiremos la opción "Capa gratuita" para evitar costos adicionales e innecesarios para este taller. En este momento, es crucial activar tu curiosidad y aprender sobre las diferencias entre las opciones disponibles. Al elegir entre "Producción" o "Pruebas y desarrollo", notarás que se activa la sección de "Disponibilidad y Durabilidad" que para nuestro objetivo no es necesario.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/arji5stfjw34cbdcqj46.png)

- Nos dirigimos a la sección de configuración, donde estableceremos un identificador de instancia de la base de datos. Este identificador es el nombre único para tu instancia de base de datos y debe ser diferente a cualquier otra instancia que tengas en tu cuenta. Importante: este nombre identifica la instancia de la base de datos, no es el nombre de tu base de datos en sí, yo le coloque "instances-dbmysql"

- Luego, asignaremos un nombre de usuario root y una contraseña. Por ejemplo, yo le colocaré "javidev". Asegúrate de elegir un nombre de usuario y una contraseña segura.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z391z051awsngdcx853k.png)

- Continuamos con la sección de "Configuración de la instancia", donde seleccionaremos "Clases con ráfagas". Esto incluye las instancias de tipo t2.micro y t3.micro, que están dentro de la capa gratuita. Es importante recordar que del tipo de instancia depende la capacidad de procesamiento, rendimiento y transaccionalidad de la base de datos. Recomiendo leer más sobre las familias y tipos de instancias si quieres profundizar un poco mas, para este taller elegiremos t3.micro.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebkifsa2blqioq9io1eb.png)

- Continuamos con la sección de 'Almacenamiento', donde dejaremos la configuración por defecto. Esto implica un tipo de almacenamiento SSD de uso general (Gp2) con un valor mínimo de almacenamiento de 20GB. Es importante destacar que en el tipo de almacenamiento, podemos establecer un equilibrio entre rendimiento y costos, dependiendo de los requerimientos.

- En la sección de 'Escalado automático', vamos a deshabilitar esta opción, ya que no necesitamos esta personalización en este taller. Esta característica se utiliza para permitir que, cuando tu base de datos alcance un umbral establecido por ti, pueda escalar automáticamente sin intervención manual.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6sfizd0rskp6416hznjk.png)

- Llegamos a la seccion de conectividad donde dejaremos la informacion por default, solo cambiaremos el Grupo de seguridad por default por el grupo de seguridad que creamos al inicio, en mi caso de nombre **DB-SG** y tambien habilitaremos el acceso publico, este ultimo paso muy importante para este taller.

- En la zona de disponibilidad, puedes dejarla sin preferencia, pero en mi caso, usaré us-east-1a para tener control y, quizás en otros talleres, permitir que algunos recursos en la misma zona de disponibilidad puedan interactuar con mi base de datos.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hoe2vcajluzlaez41bl6.png)


- En configuracion adicional dejaremos el puerto 3306 (Puerto TCP/IP que la base de datos usará para las conexiones de las aplicaciones.)

- En la sección de autenticación a base de datos, seleccionaremos 'Contraseña'. Ya asignamos previamente un usuario y contraseña. Aunque esta no es la única opción disponible, podriamos profunfizar en las otras opciones en laboratorios futuros.

- Vamos a la sección de configuración adicional. **Atención aquí**, ya que en este paso estamos estableciendo un nombre inicial para nuestra base de datos. Si no especificamos ninguno, no se creará la base de datos. En ese caso, solo se crearía la instancia de base de datos, y tendríamos que acceder a ella posteriormente para crearla, asi que nosotros si estableceremos uno.

- Deshabilitaremos la opcion de copias de seguridad automatizadas, para este taller no las necesitamos.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ukv0pobo2yyxfu3ipw2u.png)

-  Lo demás puede quedar con la información por defecto. Si tienes alguna pregunta sobre algún punto, déjame tus comentarios o investiga por tu cuenta. Al final, veremos un resumen del costo de la base de datos. Recuerda que AWS tiene su capa gratuita, y si aún estás dentro de ella, este costo no se generará. Si no estás seguro, puedes completar el taller y luego eliminar la base de datos sin ningún costo."


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ve89a64wpxd92lnrn94e.png)

- Ahora, le damos al botón 'Crear base de datos'. Esto tomara algunos  minutos y  ¡Listo! Ya tenemos nuestra base de datos lista para cargarle datos y lanzar consultas.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1dbku1klpwxfrivdohjg.png)

3. Hagamos clic en nuestra base de datos y vayamos hasta la sección 'Conectividad y seguridad'. Allí encontraremos un resumen e información que necesitaremos para establecer la conexión, como el 'Punto de enlace' y el 'Puerto'. Copiemos esta información y abramos SQLECTRON o la interfaz de base de datos que hayas descargado.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mm83cn46u4gre9rke5vp.png)

4. **Establezcamos conexión:**

- En el campo 'Name', establecemos un nombre para la conexión.

- En 'Database type', elegimos MySQL, que es el motor de nuestra base de datos.

- En 'Server Address', colocamos el punto de enlace copiado en la sección anterior en 'Conectividad y seguridad' de nuestra base de datos en AWS.

- Automáticamente, el puerto se establecerá en el 3306.

- Colocamos el usuario y la contraseña que estableciste al momento de crear la base de datos, así como también el nombre de la base de datos.

- Si estás utilizando Sqlectron, puedes hacer clic en el botón 'Test' para asegurarte de que todo esté bien antes de guardar la conexión y conectarte. Si la prueba es exitosa, ya puedes guardar la conexión. En caso contrario, si la prueba no pasa, es posible que hayas ingresado algún dato incorrecto. En este momento, es hora de revisar con calma sin caer en pánico.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y8j6c5vq0di0xmknpe53.png)

**Es hora de conectarse a la base de datos y empezar a crear tablas, cargar informacion y hacer consultas.**

```
USE MyDB; #Estamos indicando que base de datos queremos usar
```

**Ahora creemos la tabla users:**

```
CREATE table users(name VARCHAR(55), lastname VARCHAR(55), edad INT);
```

**Insertemos algunos datos:**

```
INSERT INTO users(name, lastname, edad)
VALUES
INSERT INTO Persona (nombre, apellido, edad) VALUES
('Juan', 'Pérez', 25),
('María', 'Gómez', 30),
('Carlos', 'López', 22),
('Laura', 'Martínez', 28),
('Pedro', 'Rodríguez', 35),
('Ana', 'Hernández', 26),
('José', 'Díaz', 40),
('Sofía', 'Sánchez', 32),
('Miguel', 'Flores', 28),
('Isabel', 'García', 29);
```

**Hagamos una consulta a la tabla users**

```
SELECT * FROM users;
```

**Miremos el resultado**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwy626evg4wc09xwd51w.png)

Todo salio de lujo? Felicidades, lo haz logrado

En este taller, hemos logrado juntos la creación de un grupo de seguridad, la configuración de una base de datos MySQL, el establecimiento de conexión, la creación de la tabla 'users', la carga de datos y el lanzamiento de consultas. Este es solo el comienzo de nuestro viaje de aprendizaje.

**El siguiente taller**

En los próximos días, nos sumergiremos en una práctica avanzada utilizando la misma base de datos. Crearemos una copia de seguridad, la exportaremos a S3 y aprovecharemos servicios como Glue y Athena para lanzar consultas on-demand. Esta estrategia de análisis es una práctica valiosa, ya que nos permitirá realizar consultas sin afectar el rendimiento de la base de datos principal. ¿Te animas a aceptar este desafío y explorar nuevas dimensiones en el mundo de la analítica de datos en la nube? ¡Espero con entusiasmo seguir aprendiendo y explorando contigo!

Si consideras que este taller fue útil, te brindó nuevos conocimientos o despertó tu interés por AWS, y deseas contribuir de alguna manera, aquí hay varias opciones: interactúa con este post, compártelo, y si deseas hacer una contribución monetaria, a continuación encontrarás mis datos de PayPal y Binance.


**_Paypal:_**
unpagopaypal@gmail.com

**Binance Pay**
Id de pay: 213182157


**Hasta la proxima.**