Este contenido está desactualizado. Esta versión de Well-Architected Framework se encuentra ahora en: https://docs.aws.amazon.com/es_es/wellarchitected/2022-03-31/framework/performance-efficiency.html
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:
-
Comprenda las características de los datos:
Comprenda las diferentes características de los datos en su carga de trabajo. Determine
si la carga de trabajo necesita transacciones, cómo interactúa con los datos y cuáles
son las demandas de rendimiento. Utilice estos datos para seleccionar el enfoque de
base de datos de mejor rendimiento para su carga de trabajo (por ejemplo, bases de
datos relacionales, de valor clave de NoSQL, documento, columna ancha, gráfico, serie
temporal o almacenamiento en la memoria).
-
Evalúe las opciones disponibles:
Evalúe los servicios y las opciones de almacenamiento que están disponibles como parte
del proceso de selección para los mecanismos de almacenamiento de su carga de trabajo.
Comprenda de qué manera y cuándo utilizar un servicio o sistema de almacenamiento
de datos determinado. Aprenda sobre las opciones de configuración disponibles que
pueden optimizar el rendimiento o la eficiencia de la base de datos, como las IOPS
provisionadas, los recursos de memoria e informática y el almacenamiento de caché.
-
Recopile y registre métricas de rendimiento de la base de datos:
Utilice herramientas, bibliotecas y sistemas que registren mediciones de rendimiento
relacionadas con el rendimiento de la base de datos. Por ejemplo, mida las transacciones
por segundo, las consultas lentas o los sistemas de latencia introducidos cuando accede
a la base de datos. Utilice estos datos para comprender el rendimiento de los sistemas
de su base de datos.
-
Elija el almacenamiento de datos en función de los patrones de acceso:
Utilice patrones de acceso de la carga de trabajo para decidir qué servicios y tecnologías
utilizar. Por ejemplo, use una base de datos relacional para las cargas de trabajo
que requieren transacciones o un almacén de valor clave que ofrece un rendimiento
mayor, pero que finalmente sea constante donde se aplique.
-
Optimice el almacenamiento de datos en función de los patrones de acceso y las métricas:
Utilice características de rendimiento y patrones de acceso que optimicen la forma
en que los datos se almacenan o se consultan para lograr el mejor rendimiento posible.
Mida de qué manera las optimizaciones, como el indexado, la distribución clave, el
diseño de almacén de datos o las estrategias de caché, impactan en el rendimiento
del sistema o la eficiencia general.
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.