22

Bases de Datos como Servicio en AWS: RDS, AuroraDB y DynamoDB

215420Puntos

hace 5 años

Vamos a investigar algunos conceptos y características fundamentales sobre las bases de datos como servicio que nos ofrece AWS. Recuerda que puedes profundizar muchísimo más en el Curso de Bases de Datos en AWS de Platzi y crear un tutorial para enseñarnos todo lo que aprendiste. 😉

Silvestre estudiando

Bases de datos relacionales: RDS

RDS (Relational Database System) es un servicio de AWS que nos permite trabajar con bases de datos relacionales, específicamente, con estos 6 motores: MySQL, Mar[iaDB, PostgreSQL, Oracle, Microsoft SQL Server y AuroraDB.

RDS es un sistema completamente administrado. Esto significa que AWS reduce nuestra carga operativa automatizando muchas tareas de nuestra base de datos, así como sus actualizaciones. También tenemos muchas opciones a nivel de seguridad: una de ellas es que podemos encriptar nuestra base de datos y especificar los usuarios y roles que pueden tener acceso.

Este servicio nos permite escoger entre dos sistemas de almacenamiento: General Purpose, si la carga de lectura y escritura de nuestra aplicación son constantes, y Provisioned Storage, cuando utilizamos altas cantidades de consumo y operaciones de disco.

Entre sus características principales podemos destacar los backups automáticos. Si encontramos algún problema con nuestras bases de datos podemos restablecerlas a la hora, minuto y segundo que necesitemos (dentro de los límites de AWS, por supuesto).

También podemos hacer backups manuales: tomar snapshots de la base de datos para restaurar la base de datos cuando nuestra aplicación lo necesite (o cuando algo se rompa, por supuesto). Gracias a los backups podemos mantener la información incluso cuando borramos la base de datos.

También tenemos integración con otros servicios de AWS: la integración de IAM para administrar los usuarios, roles, grupos y políticas de conexión a la base de datos por medio de tokens (recomendado para escenarios de prueba), la integración de Enhanced monitoring para hacer monitoreo en tiempo real de nuestras bases de datos, entre muchas otras.

Plus: AuroraDB

Aurora es el motor de base de datos más robusto de AWS a nivel de bases de datos relacionales. Entre sus características encontramos que soporta hasta 64 TB de almacenamiento y 15 réplicas de lectura con niveles de latencia inferiores a 10 ms.

Cuando creamos una base de datos con Aurora, realmente estamos creando un cluster de bases de datos compuesto por una instancia maestra y múltiples réplicas de lectura desplegadas en diferentes zonas de disponibilidad dependiendo de la región que utilizamos, a veces son 3 y las mejores veces son 6.

DynamoDB

Hasta el momento, Aurora Serverless es la única base de datos relacional autoescalable que encontramos en el mercado y, entre otras cosas, nos permite seleccionar su capacidad mínima y máxima por instancia.

A medida que la concurrencia sobre la base de datos va creciendo, la capacidad mínima se incrementa hasta la llegar a la capacidad máxima que nuestra aplicación debe/puede soportar. Gracias a esto el precio de nuestros servicios disminuye y solo pagamos por el tiempo y capacidad que realmente utilizamos.

Otras características de Aurora:

  • Autoreparación: Guardar la información de la parte dañada en otra parte del disco y reparar el problema automáticamente.
  • Cache Warm: Precalentamiento de la caché al iniciar las consultas más comunes y sus resultados para ejecutar las instancias lo más rápido posible.
  • Recuperación de accidentes: Si la instancia principal falla, Aurora promueve una réplica de lectura o crea una nueva instancia principal para solucionar el problema.

Bases de datos no relacionales: DynamoDB

DynamoDB es el servicio para bases de datos NoSQL de AWS, también es completamente administrado (AWS se encarga de la base de datos mientras nosotros desarrollamos nuestra aplicación), está compuesto de varios nodos y nos permite distribuir nuestro servicio por diferentes regiones (es un servicio altamente disponible con replicación en diferentes locaciones). Es una base de datos de baja latencia con almacenamiento en caché y es completamente escalable sin downtime de nuestra aplicación.

Al utilizar DynamoDB, los datos se almacenan en particiones. La unidad fundamental de DynamoDB son las tablas, están compuestas por otros elementos que están compuestos por diferentes atributos.

Al crear una tabla, la base de datos automáticamente asigna su partición para que esta pueda satisfacer el desempeño aprovisionado, incluso en ciertas ocasiones puede aumentar su tamaño para mejorar el desempeño o aumentar la cantidad de particiones cuando la partición original está llena.

El costo de nuestras bases de datos se determina en base al autoescalamiento y a las unidades de lectura y escritura, la máxima cantidad de bloques por segundo que podemos utilizar.

Conclusión

Te invito a tomar el Curso de Bases de Datos en AWS de Platzi. Vamos a aprender mucho más sobre todos estos servicios, cómo utilizarlos, mejorar el performance de nuestras bases de datos y utilizar diferentes integraciones para agilizar el desarrollo de nuestras aplicaciones.

#NuncaParesDeAprender 💚🤓

Juan
Juan
juandc

215420Puntos

hace 5 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
2
5713Puntos

Excelente Articulo

1
898Puntos
console.log("hola  mundo")