View a markdown version of this page

PERF04-BP04 Elija el almacenamiento de datos según los patrones de acceso - AWS Well-Architected Framework

PERF04-BP04 Elija el almacenamiento de datos según los patrones de acceso

Utilice los patrones de acceso de la carga de trabajo y los requisitos de las aplicaciones para decidir los servicios de datos y las tecnologías óptimas que se deben utilizar.

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, la complejidad de los datos, la interdependencia de los datos y las necesidades de coherencia que se requieran.

Antipatrones usuales:

  • Solo selecciona un motor de base de datos para simplificar la administración de las operaciones.

  • Supone que los patrones de acceso a los datos se mantendrán coherentes a lo largo del tiempo.

  • Implementa 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, la partición 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: medio

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.

AWS Services Amazon RDS Amazon Aurora Amazon DynamoDB Amazon DocumentDB Amazon ElastiCache Amazon Neptune Amazon Timestream Amazon Keyspaces Amazon QLDB
Scaling Storage Storage can be scaled up manually or configured to scale automatically to a maximum of 64 TiB based on engine types. Provisioned storage cannot be decreased. Storage scales automatically up to maximum of 128 TiB and decreases when data is removed. Maximum storage size also depends upon specific Aurora MySQL or Aurora Postgres engine versions. Storage automatically scales. Tables are unconstrained in terms of size. Storage scales automatically up to maximum of 64 TiB. Starting Amazon DocumentDB 4.0 storage can decrease by comparable amounts for data removal through dropping a collection or index. With Amazon DocumentDB 3.6 allocated space remains same and free space is reused when data volume increases. Storage is in-memory, tied to instance type or count. Storage scales automatically can grow up to 128 TiB (or 64 TiB in few Regions). Upon data removal from, total allocated space remains same and is reused in the future. Organizes your time series data to optimize query processing and reduce storage costs. Retention period can be configured through in-memory and magnetic tiers. Scales table storage up and down automatically as your application writes, updates, and deletes data. Storage automatically scales. Tables are unconstrained in terms of size.

Pasos para la aplicación:

  1. Obtenga información sobre los requisitos de las transacciones, el cumplimiento de las normas de atomicidad, coherencia, aislamiento y durabilidad (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.

  2. Tenga en cuenta los patrones de tráfico, la latencia y los requisitos de acceso para las aplicaciones distribuidas globalmente a fin de identificar la solución de almacenamiento óptima.

  3. Analice los patrones 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.

  4. Identifique y documente el crecimiento previsto de los datos y el tráfico.

    1. Amazon RDS y Aurora admiten el escalamiento 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 con particiones.

    2. DynamoDB y Amazon S3 se escalarán hasta un volumen de almacenamiento casi ilimitado de forma automática.

    3. 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 añadir nuevos volúmenes de EBS en una fecha posterior para obtener almacenamiento adicional. 

    4. 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 de forma automática en respuesta a los cambios de carga. 

  5. Establezca el punto de referencia de 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 final).

  6. Documente los aspectos del despliegue de la solución y los requisitos de acceso a la base de datos (como la replicación global, Multi-AZ, la replicación de lectura y varios nodos de escritura).

Nivel de esfuerzo para el plan de implementación: bajo. 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 implica un nivel de esfuerzo bajo.

Recursos

Documentos relacionados:

Vídeos relacionados:

Ejemplos relacionados: