Cloud IO Enabler Podcast
|
AWS nos ofrece varios servicios que nos ayudarán a gestionar una o varias Bases de Datos para nuestra empresa. En esta Introducción al uso de Bases de Datos en AWS vamos a plantear una serie de alternativas que su organización puede optar para esta implementación.
Tipos de Bases de Datos
Antes de empezar a describir las alternativas queremos puntualizar en esta sección los tipos de Bases de Datos comunes que podemos implementar en AWS, para posteriormente analizarlas cada una:
- Relacionales: aquí tenemos las tradicionales que se conceptualizan en base a relaciones de datos, como por ejemplo PostgreSQL, Oracle o SQL Server.
- NO SQL: aquí tenemos las bases de datos que definen a los mismos como Documentos y/o por Clave-Valor, como MongoDB o Redis.
- Datawarehouse: son aquellas usadas para OLAP, en donde se agrupan y procesan grandes cantidades de diferentes fuentes de datos para obtener un resultado, por ejemplo Teradata o Oracle Exadata.
Bases de Datos Relacionales
AWS nos ofrece seis soluciones de Base de Datos como Servicio (DBaaS) que son las siguientes: SQL Server, Oracle, MySQL Server, PostgreSQL, Aurora y MariaDB.
Todas estas incluyen el licenciamiento de uso (si se requiere) y la gestión de actualizaciones y updates del Sistema Operativo, incluido en el servicio, por lo que no tendrá que preocuparse de estos aspectos y costos.
Adicionalmente a la caracterización de cada una, AWS proporciona servicios de Alta Disponibilidad de Disaster Recovery para cada engine, de forma que puede automáticamente recuperarse y gestionar los respaldos; para esto usa Snapshots y varios Data Centers (AZ).
Puede optar por un servicio post pago por hora (on-demand) o pre pago por años (upfront) para el uso, y, tiene al alcance varias configuraciones con diferentes características de RAM y CPU e IOPS (I/O por segundo), además de múltiples opciones de auto escalamiento y monitoreo.
En cuanto a seguridades, se puede activar la encriptación de datos que complementado con redes privadas, administración de accesos de red con firewall (Security Groups) y gestión de usuarios y accesos (IAM) aseguran completamente la información.
Bases de Datos No SQL
AWS ofrece DynamoDB, ElastiCache (Redis y Memcached) como alternativas DBaaS, soluciones orientadas a Documentos y Clave-Valor completamente tolerantes a fallos, altamente disponibles y extremadamente escalables, con latencia de entre milisegundos a microsegundos según la configuración.
DynamoDB es operable a través de un API de acceso y a través de la consola de Administración y funciona completamente en el sentido Serverless. La característica Serverless nos permite solo preocuparnos por crear definiciones, y todo el almacenamiento, respaldos, alta disponibilidad y escalamiento es completamente transparente al uso.
ElastiCache tiene dos opciones Redis y Memcached, que funcionan con el protocolo propio, por lo que no requieren algo adicional en las aplicaciones.
Se puede optar por el uso post pago, tanto por petición o por capacidad provisionada, lo que significa que pagamos por el número de peticiones realizadas en un período o por hora de disponibilidad de una capacidad provisionada dependiendo del servicio. También existe la opción de pre-pago por nodo (instancia) reservada entre 1 a 3 años.
Tienen características de Backup y Restore automático y en el caso de DynamoDB cuenta con el concepto PITR (Point in Time Recovery) llegando a recuperar datos en le periodo de 5 minutos a 35 días en el pasado.
En cuanto las seguridades los datos pueden o son encriptados (dependiendo del engine) usando KMS, lo que de igual forma sumado a estrategias de VPN, Direct Connect, y, gestión de usuarios y accesos (IAM) aseguran completamente la información.
Bases de Datos Datawarehouse
Presentamos en esta sección al Servicio de Amazon Redshift como DBaaS, diseñado para gestionar un Datawarehouse y/o Business Intelligent.
Se trata de una base de datos relacional con excelente performance que puede escalar en orden de los Pentabytes y es almacenada por columna y no por registro, en el concepto “Store Data”, lo que reduce el IOPS (I/O por segundo).
Tiene la opción de gestión de backups automáticos con periodos de retención de 1 a 35 días y cuenta con opciones de configuración por nodos, desde un solo nodo hasta un máximo de 128 nodos. La ventaja de múltiples nodos, significa más computo en paralelo consiguiendo procesar datos y cálculos más rápidamente y tener indicadores en tiempo real.
De igual forma se puede optar por post pago (on-demand) o pre pago (upfront) de 1 a 3 años. El costo esta en relación al número de nodos utilizados/reservados y la configuración de RAM y CPU de cada nodo. Además se cancela un costo por backups y transferencias de datos entre lugares de la VPC (Virtual Private Cloud).
En cuanto a las consideraciones de seguridades, Redshift usa SSL para el tránsito de información y los datos están cifrados con AES-256. De igual forma como en los anteriores escenarios las estrategias firewall (Security Groups), redes privadas y gestión de usuarios y accesos (IAM) complementa la completa seguridad de la información.
EC2 y las Bases de Datos
Evidentemente existe la opción, completamente factible, de gestionar una Base de Datos de forma manual, a través del servicio IaaS AWS Elastic Cloud Computing (EC2).
EC2 nos permitirá provisionar Servidores en AWS con diferentes opciones de Sistemas Operativos y configuraciones en capacidad, como la RAM , el CPU y el Disco Duro, si desea saber más puede ver la Introducción al uso de Servidores en AWS.
Estos servidores combinados con discos de almacenamiento sean Elastic Block Storage (EBS) o Elastic File System (EFS) y un estratégía de Recuperación y Respaldos, nos dan la posibilidad de tener cualquiera de las altenativas descritas (incluso DynamoDB) implementadas manualmente de acuerdo a nuestro requerimiento.
En este escenario es importante considerar que los parches y actualizaciones del Sistema Operativo y el engine de Base de Datos son responsabilidad del usuario.
Otro aspecto importante es que los temas de Failover y Continuidad de Negocio se debe gestionar igualmente de forma manual, con estrategias como disponer nuestras Bases de Datos en diferentes AZ (Data Centers) y/o Regiones y uso de herramientas relacionadas.
En cuanto al tema de costos, se debe considerar aquellos relacionados a las instancias EC2, asi como los discos EBS y/o EFS utilizados, y probablemente la tranferencia de datos entre AZ y/o Regiones que demandaría un esquema de alta disponibilidad (HA).
Declaración
Existen muchas otras soluciones en AWS menos frecuentes pero disponibles, que no se mencionaron en esta Introducción a Bases de Datos en AWS, por temas de tiempo y al ser una introducción.
Las enumeramos con el fin de que ustedes puedan en algún momento investigar más; por supuesto si desean profundizar en alguna lo pueden solicitar en los comentarios. Los Servicios de Base de Datos son: DocumentDB, Keyspaces, Neptune, Timestream y QLDB.
Pensamientos Finales
Esperamos que les sea útil esta Introducción a Bases de Datos en AWS, y podamos haber provisto un vistazo, de forma muy general, a las opciones que disponen aquí.
Hemos visto las alternativas más omunes en diferentes casos e uso de las Bases de Datos y las cuestiones principales relacionadas a las características, su forma de uso, las configuraciones, los costos y las seguridades.
Les animamos a solicitar en los comentarios y/o redes sociales si desean profundizar en algun tema de los revisados.