Apuntes

Aquí encontrarás mis apuntes para aprobar la certificación de AWS Cloud Practitioner

Las bases de datos de AWS

Los modelos de bases de datos

Una base de datos puede usar un modelo relacional o no-relacional. El modelo que elijas dependerá de como tu aplicación organiza, almacena y devuelve la información.

Bases de datos relacionales

La información se organiza a través de tablas que tiene registros (filas) y propiedades (columnas).

Bases de datos no-relacionales

Este tipo de bases de datos fueron desarrolladas para proveer una rapida alternativa para aquellas aplicaciones que necesitaban miles de operaciones de lectura/escritura por segundo.


Como contraposición respecto a las bases de datos relacionales, éstas no tienen un esquema rígido.


Se organizan por colecciones y documentos, los cuales pueden diferir en el número de propiedades que tienen cada uno de ellos, así pues las bases de datos no-relacionales son más flexibles que las tradicionales.

Amazon Relational Database Service

El AWS Relational Database Service (RDS) es una servicio de base de datos gestionado por Amazon. Te permite aprovisionar diferentes tipos de RDBMSs incluyendo SQL Server, Oracle, Mysql y PostgreSQL.


Siempre puedes instalar y configurar una base de datos en una instancia EC2 pero RDS ofrece ciertas ventajas frente a este esquema.


Cuando se crea una instancia de base de datos RDS, Amazon establece una o más instancias de computación y se encarga de instalar y configurar el RDBMS de su elección.


Estas instancias no son instancias EC2 en las que nos podamos conectar via SSH pero si que están conectadas a travñes de una Virtual Private Cloud (VPC) permitiendo a tu aplicación correr en AWS o en tus servicios on-premise.


Las instancias RDS utilizan volúmenes EBS (Elastic Block Service) al igual que EC2.


Puedes elegir varias áreas de disponibilidad para hacer el deploy de la base de datos.

Licencias

Según el tipo de base de datos que escojas tendrás que elegir una de las dos opciones disponibles para licenciarlas.


  • Licencia incluída: la licencia viene incluída en el precio de la instancia RDS. Ej: SQL Server, Oracle, MariaDB, MySQL y PostgreSQL.

  • Bring your own licence (BYOL): con este modelo debes proveer una licencia para operar la bbdd que quieras. Este modelo solo está disponible para Oracle.


Tipos de instancias


  • Standard: entre 2 y 96vCPU y entre 8 y 384 GB de memoria.

  • Optimizadas para memoria: esta clase ofrece el mayor rendimiento del disco y el mayor ancho de banda de la red. Ofrece entre 4 y 128 vCPU y entre 122 y 3904 GB de memoria. Tanto esta como la standard están optimizadas para trabajar con EBS.

  • Burstable Performance (rendimiento de ráfagas?): pensada para bases de datos que no son de producción y que tienen requisitos mínimos de rendimiento, como las de prueba y desarrollo. La clase de instancia Burstable Performance de última generación tiene el menor ancho de banda de red y rendimiento del disco y ofrece lo siguiente: entre 2 y 8vCPU y entre 1 y 32 GB de memoria.


Almacenamiento

El nivel de performance de una RDS pueden depender ya no solo del tipo de instancia escogida sino del volumen de almancemiento elegido.


Las nuevas instancias RDS utilizan volúmenes EBS y el rendimiento máximo que puede alcanzar un volumen va en función tanto de la clase de instancia como del el número de operaciones de entrada/salida por segundo (IOPS) que soporta el volumen EBS.


RDS ofrece tres tipos de almacenamiento:


  • SSD de proposito general: perfecto para la mayoria de bbdd. Van desde los 20GB hasta los 32TB. Durante los picos de actividad de lectura o escritura intensa, el bursting se activará automáticamente y dará a su volumen un impulso de rendimiento adicional. De este modo, no tiene que asignar una cantidad excesiva de almacenamiento cantidad excesiva de almacenamiento sólo para obtener suficientes IOPS para satisfacer los picos de demanda.

  • IOPS provisionadas por SSD: este tipo de permite el número exacto de IOPS que quieres asignar al volumen. Puedes asignar hasta 32TB para el volumen pero no puedes utilizar el bursting en picos de actividad.

  • Magnético: está disponible para ofrecer retrocompatibilidad con instancias viejas de RDS. No utiliza EBS y no se puede cambiar el tamaño de disco después de crearlo. Los volúmenes magnéticos están limitados a 4 TB de tamaño y 1.000 IOPS.


Escalado vertical

Escalar verticalmente se refiere a cambiar la forma en que se asignan los recursos a una instancia específica.


Después de crear una instancia, se puede escalar a una clase de instancia más potente para añadir más memoria o mejorar el rendimiento informático o de red.


O puede reducir la escala a una clase menos potente para ahorrar costes.

Escalado horizontal mediante replicas

Otra estrategía de ecalado es hacerlo horizontalmente mediante el uso de replicas.


En lugar de añadirle más recursos a la instancia, esto consiste en añadir más instancias iguales que la original.


En una base de datos relacional, solo la base de datos maestra puede escribir a la bbdd, el resto de replicas solo leerán. Esto es util para dejar que solo la instancia master se encargue de escribir mientras que N esclavas leen.

Alta disponibilidad con multiples areas de disponibilidad

Incluso si utiliza réplicas de lectura, sólo la instancia de base de datos maestra puede realizar escrituras contra su base de datos. Si esa instancia se cae, su aplicación respaldada por la base de datos no podrá escribir datos hasta que vuelva a estar en línea.


Para asegurarse de que siempre tiene una instancia de base de datos maestra en funcionamiento, puede configurar la alta disponibilidad activando la función multi-AZ en su instancia RDS.


Con la opción multi-AZ activada, RDS crea una instancia adicional llamada standby database instance que se ejecuta en una Zona de Disponibilidad diferente a la de su instancia de base de datos principal. La instancia primaria replica instantánea o sincrónicamente los datos a la instancia secundaria, asegurando que cada vez que su aplicación escribe en la base de datos, esos datos existen en múltiples Zonas de Disponibilidad. Si el primario falla, RDS se conmuta automáticamente al secundario. La conmutación por error puede dar lugar a una interrupción de hasta dos minutos, por lo que su aplicación experimentará alguna interrupción, pero no se verá afectada y no perderá ningún dato.


Con multi-AZ activado, puede esperar que su base de datos alcance una disponibilidad mensual del 99,95 por ciento.


Cuando utiliza AWS Aurora (bbdd propietaria de Amazon), sus instancias RDS forman parte de un clúster de Aurora.


Todas las instancias del clúster utilizan un volumen de almacenamiento compartido que se replica replicado en tres zonas de disponibilidad diferentes. Además, si sus necesidades de almacenamiento aumentan, el volumen del clúster se ampliará automáticamente hasta 64 TB.

Backup y recuperación

Independientemente de que use o no multi-AZ, RDS puede tomar instantáneas manuales o automáticas de EBS de sus instancias.


Las instantáneas se almacenan en varias zonas de disponibilidad. Si alguna vez necesita restaurar una instantánea, RDS la restaurará en una nueva instancia.


Esto hace que las instantáneas sean útiles no sólo para las copias de seguridad, sino también para la creación de copias de una base de datos para las pruebas o el desarrollo.


Puede realizar una instantánea manual en cualquier momento. Puede configurar las instantáneas automáticas para que se realicen diariamente durante una ventana de copia de seguridad de 30 minutos.


RDS conservará las instantáneas automáticas entre 1 día y 35 días, con un valor predeterminado de 7 días.


Las instantáneas manuales se conservan hasta que las elimine. La activación de las instantáneas automáticas también permite la recuperación puntual, una función que guarda los registros de cambios de la base de datos cada 5 minutos.


En combinación con las instantáneas automáticas, esto ofrece la capacidad de restaurar una instancia fallida a los 5 minutos anteriores al fallo, sin perder más de 5 minutos de datos.


La cantidad de pérdida de datos que puede soportar en caso de fallo se denomina Recovery Point Objective (RPO)


Si puedes tolerar la pérdida de una hora de datos, entonces su RPO sería de 1 hora.

DynamoDB

DynamoDB es un servicio de bases de datos no-relacionales gestionado por Amazon.


DynamoDB almacena los elementos en tablas. Cada tabla de DynamoDB se almacena en una o más particiones.


Cada partición está respaldada por unidades de estado sólido, y las particiones se replican en varias zonas de disponibilidad de una región, lo que le proporciona una disponibilidad mensual del 99,99%.


Cada elemento debe tener un valor único para la clave primaria. Un elemento también puede consistir en otros pares clave-valor llamados atributos. Cada elemento puede almacenar hasta 400 KB de datos.

Amazon Redshift

Amazon Redshift es un tipo especializado de base de datos relacional administrada, denominada data warehouse (almacen de datos)


Un data warehouse es capaz de alamacenar grandes cantidades de datos estructurados de otra base de datos relacional y permitir complejas queries y analisis contra esos datos.


Por ejemplo, Redshift puede combinar datos de bases de datos financieras, de ventas y de inventario en un data warehouse único y luego analizar o generar informes sobre esos datos.


Para utilizar Redshift, se crea un clúster compuesto por al menos un nodo de cálculo y hasta 128 nodos. Con los nodos de cálculo densos, puede almacenar hasta 326 TB de datos en discos magnéticos, y con nodos de almacenamiento denso puede depositar hasta 2 PB de datos en discos SSD.


La utilidad de Redshift no se limita a extraer datos de las bases de datos relacionales. Redshift Spectrum es una función de Redshift que permite analizar los datos almacenados en S3. Los datos deben estar estructurados, y usted debe definir la estructura para que Redshift pueda entenderla.