PERF04-BP04 Elegir el almacenamiento de datos según los patrones de acceso
Use los patrones de acceso de la carga de trabajo para decidir qué servicios y tecnologías usará. Además de los requisitos no funcionales, como el rendimiento y la escala, los patrones de acceso influyen mucho en la elección de la base de datos y las soluciones de almacenamiento. La primera dimensión es la necesidad de transacciones, el cumplimiento de ACID y las lecturas coherentes. No todas las bases de datos lo admiten y la mayoría de las bases de datos NoSQL proporcionan un modelo de coherencia eventual. La segunda dimensión importante sería la distribución de las escrituras y las lecturas en el tiempo y el espacio. Las aplicaciones distribuidas globalmente deben tener en cuenta los patrones de tráfico, la latencia y los requisitos de acceso para identificar la solución de almacenamiento óptima. El tercer aspecto crucial para elegir es la flexibilidad del patrón de consulta, los patrones de acceso aleatorio y las consultas únicas. También deben tenerse en cuenta las consideraciones en relación con la funcionalidad de consulta altamente especializada para el procesamiento de lenguaje natural y de texto, las series temporales y los grafos.
Resultado deseado: el almacenamiento de datos se ha seleccionado en función de los patrones de acceso a los datos identificados y documentados. Esto podría incluir las consultas de lectura, escritura y eliminación más comunes, la necesidad de cálculos y agregaciones ad hoc, la complejidad de los datos, la interdependencia de los datos y las necesidades de coherencia que se requieren.
Patrones de uso no recomendados comunes:
-
Solo se selecciona un proveedor de bases de datos para simplificar la administración de las operaciones.
-
Se supone que los patrones de acceso a los datos se mantendrán coherentes a lo largo del tiempo.
-
Se implementan transacciones complejas, reversión y lógica de coherencia en la aplicación.
-
La base de datos está configurada para admitir una posible ampliación del tráfico, lo que provoca que los recursos de la base de datos permanezcan inactivos la mayor parte del tiempo.
-
Utilización de una base de datos compartida para usos transaccionales y analíticos.
Beneficios de establecer esta práctica recomendada: la selección y la optimización del almacenamiento de datos en función de los patrones de acceso contribuirán a disminuir la complejidad del desarrollo y a optimizar las oportunidades de rendimiento. Saber cuándo utilizar las réplicas de lectura, las tablas globales, el particionamiento de datos y el almacenamiento en caché le ayudará a disminuir la sobrecarga operativa y a escalar en función de sus necesidades de carga de trabajo.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: Mediana
Guía para la implementación
Identifique y evalúe su patrón de acceso a los datos para seleccionar la configuración de almacenamiento correcta. Cada solución de base de datos tiene opciones para configurar y optimizar su solución de almacenamiento. Utilice las métricas y los registros recopilados y experimente con las opciones para encontrar la configuración óptima. Utilice la siguiente tabla para examinar las opciones de almacenamiento por servicio de base de datos.
Servicios de AWS | Amazon RDS, Amazon Aurora | Amazon DynamoDB | Amazon DocumentDB | Amazon ElastiCache | Amazon Neptune | Amazon Timestream | Amazon Keyspaces | Amazon QLDB |
---|---|---|---|---|---|---|---|---|
Escalado de almacenamiento | Opción de escalado automático de almacenamiento disponible para escalar automáticamente el almacenamiento aprovisionado Las IOPS también se pueden escalar independientemente del almacenamiento aprovisionado cuando se aprovechan los tipos de almacenamiento de IOPS aprovisionadas | Se escala automáticamente. Las tablas no tienen restricciones de tamaño. | Opción de escalado automático de almacenamiento disponible, almacenamiento aprovisionado a escala | El almacenamiento es en memoria, ligado al tipo de instancia o al recuento | Opción de escalado automático de almacenamiento disponible para escalar automáticamente el almacenamiento aprovisionado | Configurar el periodo de retención para los niveles en memoria y magnético en días | Escala y desescala verticalmente el almacenamiento de tabla de forma automática | Se escala automáticamente. Las tablas no tienen restricciones de tamaño. |
Pasos de implementación:
-
Identifique y documente el crecimiento previsto de los datos y el tráfico.
-
Amazon RDS y Aurora admiten el escalado vertical automático del almacenamiento hasta los límites documentados. Más allá de esto, considere la posibilidad de trasladar los datos más antiguos a Amazon S3 para archivarlos, agregar los datos históricos para el análisis o escalar horizontalmente mediante particiones.
-
DynamoDB y Amazon S3 se escalarán hasta un volumen de almacenamiento casi ilimitado de forma automática.
-
A las instancias y las bases de datos de Amazon RDS que se ejecutan en EC2 se les puede cambiar el tamaño manualmente y a las instancias de EC2 se les pueden agregar nuevos volúmenes de EBS en una fecha posterior para obtener almacenamiento adicional.
-
Los tipos de instancia pueden modificarse en función de los cambios de actividad. Por ejemplo, puede empezar con una instancia pequeña mientras hace pruebas y, a continuación, escalar la instancia cuando empiece a recibir tráfico de producción para el servicio. Aurora Serverless V2 se escala automáticamente en respuesta a los cambios de carga.
-
-
Documente los requisitos en torno al rendimiento normal y máximo (transacciones por segundo [TPS] y consultas por segundo [QPS]) y la coherencia (ACID y coherencia eventual).
-
Documente los aspectos del despliegue de la solución y los requisitos de acceso a la base de datos (global, Multi-AZ, replicación de lectura, varios nodos de escritura)
Nivel de esfuerzo para el plan de implementación: si no dispone de registros ni métricas para su solución de administración de datos, deberá hacerlo antes de identificar y documentar los patrones de acceso a los datos. Una vez comprendido el patrón de acceso a los datos, la selección y configuración del almacenamiento de datos es un nivel de esfuerzo bajo .
Recursos
Documentos relacionados:
Vídeos relacionados:
Ejemplos relacionados: