PERF03-BP01 Utilización de un almacén de datos personalizado que se adapte mejor a los requisitos de acceso y almacenamiento de datos - AWS Well-Architected Framework

PERF03-BP01 Utilización de un almacén de datos personalizado que se adapte mejor a los requisitos de acceso y almacenamiento de datos

Debe saber cuáles son las características de los datos (por ejemplo, si se pueden compartir, su tamaño, los patrones de acceso, la latencia, el rendimiento y su persistencia) para seleccionar los almacenes de datos personalizados acordes a su carga de trabajo (almacenamiento o base de datos).

Antipatrones usuales:

  • Utiliza exclusivamente un almacén de datos porque la experiencia y los conocimientos internos se limitan a un tipo concreto de solución de base de datos.

  • Presupone que todas las cargas de trabajo tienen unos requisitos similares en relación con el almacenamiento de datos y el acceso a la información.

  • No ha implementado un catálogo de datos para inventariar sus activos de datos.

Beneficios de establecer esta práctica recomendada: conocer las características y los requisitos de los datos le permite determinar cuál es la tecnología de almacenamiento más eficiente y funcional adecuada para las necesidades de su carga de trabajo.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto

Guía para la implementación

Al seleccionar e implementar el almacenamiento de datos, asegúrese de que las características de consulta, escalamiento y almacenamiento se ajusten a los requisitos de datos de la carga de trabajo. AWS ofrece un gran número de tecnologías de almacenamiento y bases de datos, como el almacenamiento en bloques, el almacenamiento de objetos, el almacenamiento en streaming, los sistemas de archivos, las bases de datos relacionales, las bases de datos de clave-valor, las bases de datos de documentos, las bases de datos en memoria, las bases de datos de grafos, las bases de datos de series temporales y las bases de datos de libro mayor. Cada solución de administración de datos tiene opciones y configuraciones a su disposición que se ajustan a los casos de uso y a los modelos de datos. Si conoce las características y los requisitos de los datos, puede dejar atrás la tecnología de almacenamiento monolítica y los enfoques restrictivos de «una misma cosa vale para todo», y centrarse en gestionar correctamente los datos.

Pasos para la implementación

  • Realice un inventario de los distintos tipos de datos que existen en su carga de trabajo.

  • Estudie y documente las características y los requisitos de los datos, como:

    • Tipo de datos (no estructurados, semiestructurados o relacionales)

    • Volumen y crecimiento de los datos

    • Durabilidad de los datos: persistentes, efímeros o transitorios

    • Requisitos de ACID (atomicidad, consistencia, aislamiento, durabilidad)

    • Patrones de acceso a los datos (lectura o escritura intensivas)

    • Latencia

    • Rendimiento

    • IOPS (operaciones de entrada/salida por segundo)

    • Período de retención de los datos

  • Obtenga información sobre los diferentes almacenes de datos (servicios de base de datos y almacenamiento) disponibles para su carga de trabajo en AWS que se ajustan a las características de los datos (tal y como se describe en PERF01-BP01 Descubrir y comprender los servicios y las características disponibles en la nube). Estos son algunos ejemplos de tecnologías de almacenamiento de AWS y sus principales características:

    Tipo Servicios de AWS Características clave
    Object storage Amazon S3 Unlimited scalability, high availability, and multiple options for accessibility. Transferring and accessing objects in and out of Amazon S3 can use a service, such as Aceleración de transferencia  or Puntos de acceso, to support your location, security needs, and access patterns.
    Archiving storage Amazon S3 Glacier Built for data archiving.
    Streaming storage

    Amazon Kinesis

    Amazon Managed Streaming for Apache Kafka (Amazon MSK)

    Efficient ingestion and storage of streaming data.
    Shared file system

    Amazon Elastic File System (Amazon EFS)

    Sistema de archivos montable al que pueden acceder varios tipos de soluciones de computación.

    Shared file system Amazon FSx Built on the latest AWS compute solutions to support four commonly used file systems: NetApp ONTAP, OpenZFS, Windows File Server, and Lustre. Amazon FSx su latencia, rendimiento y E/S por segundo vary per file system and should be considered when selecting the right file system for your workload needs.
    Block storage Amazon Elastic Block Store (Amazon EBS) Scalable, high-performance block-storage service designed for Amazon Elastic Compute Cloud (Amazon EC2). Amazon EBS includes SSD-backed storage for transactional, IOPS-intensive workloads and HDD-backed storage for throughput-intensive workloads.
    Relational database Amazon AuroraAmazon RDSAmazon Redshift. Designed to support ACID (atomicity, consistency, isolation, durability) transactions, and maintain referential integrity and strong data consistency. Many traditional applications, enterprise resource planning (ERP), customer relationship management (CRM), and ecommerce use relational databases to store their data.
    Key-value database Amazon DynamoDB Optimized for common access patterns, typically to store and retrieve large volumes of data. High-traffic web apps, ecommerce systems, and gaming applications are typical use-cases for key-value databases.
    Document database Amazon DocumentDB Designed to store semi-structured data as JSON-like documents. These databases help developers build and update applications such as content management, catalogs, and user profiles quickly. 
    In-memory database Amazon ElastiCache , Amazon MemoryDB para Redis Used for applications that require real-time access to data, lowest latency and highest throughput. You may use in-memory databases for application caching, session management, gaming leaderboards, low latency ML feature store, microservices messaging system, and a high-throughput streaming mechanism
    Graph database Amazon Neptune Used for applications that must navigate and query millions of relationships between highly connected graph datasets with millisecond latency at large scale. Many companies use graph databases for fraud detection, social networking, and recommendation engines.
    Time Series database Amazon Timestream Used to efficiently collect, synthesize, and derive insights from data that changes over time. IoT applications, DevOps, and industrial telemetry can utilize time-series databases.
    Wide column Amazon Keyspaces (para Apache Cassandra) Uses tables, rows, and columns, but unlike a relational database, the names and format of the columns can vary from row to row in the same table. You typically see a wide column store in high scale industrial apps for equipment maintenance, fleet management, and route optimization. 
    Ledger Amazon Quantum Ledger Database (Amazon QLDB) Provides a centralized and trusted authority to maintain a scalable, immutable, and cryptographically verifiable record of transactions for every application. We see ledger databases used for systems of record, supply chain, registrations, and even banking transactions.  
  • Si está creando una plataforma de datos, aproveche la arquitectura de datos moderna de AWS para integrar un lago de datos, un almacenamiento de datos y almacenes de datos personalizados.

  • Las principales preguntas que debe hacerse al elegir un almacén de datos para su carga de trabajo son las siguientes:

    Question Things to consider
    How is the data structured?
    What level of referential integrity is required?
    • En el caso de las restricciones de clave externa, las bases de datos relacionales, como Amazon RDS y Aurora, pueden proporcionar este nivel de integridad.

    • Normalmente, en un modelo de datos NoSQL, los datos se desnormalizarían en un documento o una colección de documentos en lugar de combinarse en diferentes documentos o tablas, lo que permitiría recuperarlos en una única solicitud. 

    Is ACID (atomicity, consistency, isolation, durability) compliance required?
    • Si las propiedades ACID asociadas a las bases de datos relacionales son necesarias, considere la posibilidad de usar una base de datos relacional, como Amazon RDS y Aurora.

    • Si se requiere una consistencia sólida para la base de datos NoSQL, puede usar lecturas con coherencia fuerte a través de DynamoDB.

    How will the storage requirements change over time? How does this impact scalability?
    • Las bases de datos sin servidor, como DynamoDB y Amazon Quantum Ledger Database (Amazon QLDB), se escalarán dinámicamente.

    • Las bases de datos relacionales tienen límites máximos de almacenamiento aprovisionado y, a menudo, cuando alcanzan estos límites, es necesario hacer particiones horizontales a través de diversos mecanismos, como el particionamiento.

    What is the proportion of read queries in relation to write queries? Would caching be likely to improve performance?
    • Las cargas de trabajo que requieren muchas lecturas pueden beneficiarse de una capa de almacenamiento en caché, como ElastiCache o DAX, si la base de datos es DynamoDB.

    • Las lecturas también pueden descargarse en réplicas de lectura con bases de datos relacionales, como Amazon RDS.

    Does storage and modification (OLTP - Online Transaction Processing) or retrieval and reporting (OLAP - Online Analytical Processing) have a higher priority?
    • Para el procesamiento transaccional de lecturas de alto rendimiento sin realizar cambios, considere la posibilidad de usar una base de datos NoSQL, como. DynamoDB.

    • En el caso de los patrones de lectura complejos y de alto rendimiento (como una combinación) que tienen coherencia, use Amazon RDS.

    • Para las consultas analíticas, podría utilizar una base de datos en columnas, como Amazon Redshift, o exportar los datos a Amazon S3 y realizar análisis con Athena o Amazon QuickSight.

    What level of durability does the data require?
    • Aurora replica los datos automáticamente en tres zonas de disponibilidad de una región, lo que significa que los datos tendrán una gran durabilidad y menos posibilidades de sufrir pérdidas.

    • DynamoDB se replica automáticamente en varias zonas de disponibilidad, lo que proporciona una elevada disponibilidad y durabilidad de los datos.

    • Amazon S3 proporciona un nivel de durabilidad de once nueves. Muchos servicios de bases de datos, como Amazon RDS y DynamoDB, permiten exportar datos a Amazon S3 para retenerlos y archivarlos durante largos períodos de tiempo.

    Is there a desire to move away from commercial database engines or licensing costs?
    What is the operational expectation for the database? Is moving to managed services a primary concern?
    • Si usa Amazon RDS en lugar de Amazon EC2 y utiliza DynamoDB o Amazon DocumentDB en lugar de alojar una base de datos NoSQL en sus propios sistemas, puede reducir los costes operativos.

    How is the database currently accessed? Is it only application access, or are there business intelligence (BI) users and other connected off-the-shelf applications?
    • Si tiene dependencias en herramientas externas, es posible que necesite mantener la compatibilidad con las bases de datos que se utilizan allí. Amazon RDS es totalmente compatible con las diferentes versiones de motores que admite, como Microsoft SQL Server, Oracle, MySQL y PostgreSQL.

  • Realice experimentos y pruebas comparativas en un entorno que no sea de producción para identificar qué almacén de datos se ajusta a los requisitos de su carga de trabajo.

Recursos

Documentos relacionados:

Vídeos relacionados:

Ejemplos relacionados: