PERF 4: ¿Cómo selecciona una solución de base de datos?

La solución de base de datos óptima para un sistema varía según los requerimientos de disponibilidad, consistencia, tolerancia en las particiones, latencia, durabilidad, escalabilidad y capacidad de consulta. Muchos sistemas utilizan soluciones de bases de datos diferentes para varios subsistemas y permiten que distintas características mejoren el rendimiento. La selección de las características y soluciones de base de datos incorrectas puede resultar en una menor eficiencia de rendimiento.

Recursos

AWS purpose-built databases (DAT209-L)
Amazon Aurora storage demystified: How it all works (DAT309-R)
Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)
Cloud Databases with AWS
AWS Database Caching
Amazon DynamoDB Accelerator
Amazon Aurora best practices
Amazon Redshift performance
Amazon Athena top 10 performance tips
Amazon Redshift Spectrum best practices
Amazon DynamoDB best practices

Prácticas recomendadas:

Plan de mejora

Comprenda las características de los datos

  • Investigue y documente las características de los datos: Antes de elegir una solución de base de datos, comprenda los requisitos funcionales de su carga de trabajo y cómo interactúa con los datos. Cuando evalúe una solución de base de datos, determine si es la más adecuada para cumplir con sus requisitos (por ejemplo, transacciones o disponibilidad alta), de modo que pueda seleccionar la mejor combinación de bases de datos para utilizarla en su carga de trabajo. Evalúe bases de datos alternativas que puedan cumplir mejor con sus requisitos de carga de trabajo. Por ejemplo, si está creando una aplicación de IoT, puede que sea mejor seleccionar una base de datos de series temporales, como Amazon Timestream, para almacenar y analizar con facilidad billones de eventos por día a una décima parte del costo de las bases de datos relacionales.
  • Evalúe las opciones disponibles

  • Seleccione el tipo de base de datos adecuado para su carga de trabajo: AWS le permite elegir entre muchos motores de bases de datos creadas específicamente, incluidas las bases de datos relacionales, de valor clave, documento, en la memoria, de gráfico, serie temporal y libro mayor. La cartera de bases de datos construidas especialmente de AWS es compatible con modelos de datos diversos y le permite crear aplicaciones distribuidas altamente escalables y orientadas a casos de uso. Cuando elige la mejor base de datos para resolver un problema específico (o un grupo de problemas), puede separarse de las bases de datos monolíticas, universales y restrictivas y centrarse en la creación de aplicaciones que satisfagan las necesidades de su empresa.
  • Defina los requisitos de rendimiento de la base de datos: Identifique las métricas de rendimiento de la base de datos importantes para su carga de trabajo e implemente los requisitos como parte de un enfoque basado en datos que implique puntos de referencia o pruebas de carga. Utilice estos datos para identificar las limitaciones de su solución de base de datos y examine las opciones de configuración para resolver el problema.
  • Habilite las opciones de almacenamiento en caché de la base de datos: Evalúe las opciones de almacenamiento en caché de la base de datos, como Amazon ElastiCache for Redis para un almacenamiento en caché de la base de datos relacional o Amazon DynamoDB Accelerator (DAX) para un almacenamiento en memoria completamente administrado y de alta disponibilidad para DynamoDB. Estas opciones pueden ofrecer un mejor rendimiento, en algunos casos de milisegundos a microsegundos incluso a millones de solicitudes por segundo.
  • Recopile y registre métricas de rendimiento de la base de datos

  • Recopile métricas relacionadas con la base de datos: Diseñe su carga de trabajo para que registre las métricas relacionadas con la actividad de la base de datos. Estos datos son fundamentales para comprender la manera en la que sus sistemas de base de datos afectan al rendimiento general de su carga de trabajo y dónde puede hacer cambios para mejorar el rendimiento y la eficiencia. Por ejemplo, el seguimiento de puntos de datos como los tiempos de consulta, el número de transacciones, el uso del disco, el uso del índice o las consultas lentas, le permiten optimizar sus sistemas de base de datos.
  • Monitoree las métricas: Amazon CloudWatch puede recopilar métricas de los recursos en su arquitectura. También puede recopilar y publicar métricas personalizadas para los negocios de superficie o métricas derivadas. Utilice CloudWatch o soluciones de terceros para establecer alarmas que indiquen cuando se sobrepasan los límites.
  • Elija el almacenamiento de datos en función de los patrones de acceso

  • Utilice los patrones de acceso para determinar el almacenamiento de datos: Evalúe los patrones de acceso de su carga de trabajo para encontrar un patrón de almacenamiento de datos adecuado. Por ejemplo, si su carga de trabajo requiere un acceso de consulta ad hoc, puede seleccionar una base de datos relacional como Amazon RDS. Si su carga de trabajo es impulsada por una tasa de crecimiento alta o eventos de alto tráfico, debe seleccionar una base de datos de valor clave, como Amazon DynamoDB.
  • Optimice el almacenamiento de datos en función de los patrones de acceso y las métricas

  • Optimice el almacenamiento de datos en función de métricas y patrones: Use las métricas registradas para identificar cualquier área de bajo rendimiento en su carga de trabajo y optimizar los componentes de su base de datos. Cada sistema de base de datos tiene diferentes características relacionadas con el rendimiento que deben evaluarse, como la forma en que los datos se indexan, se almacenan en caché o se distribuyen entre diversos sistemas. Mida el impacto de sus optimizaciones.