

# Software y arquitectura
<a name="software-and-architecture"></a>

 Implemente patrones que permitan suavizar la carga y mantener un uso elevado consistente de los recursos implementados para minimizar los recursos consumidos. Puede haber componentes que queden inactivos debido a la falta de uso relacionada con los cambios en el comportamiento de los usuarios a lo largo del tiempo. Revise los patrones y la arquitectura para consolidar los componentes infrautilizados a fin de incrementar el uso general. Retire los componentes que ya no son necesarios. Analice el rendimiento de los componentes de su carga de trabajo y optimice aquellos que consumen la mayor cantidad de recursos. Tenga en cuenta los dispositivos que usan los clientes para acceder a sus servicios e implemente patrones para minimizar la necesidad de actualizar los dispositivos. 

**Topics**
+ [SUS03-BP01 Optimización del software y la arquitectura para los trabajos asíncronos y programados](sus_sus_software_a2.md)
+ [SUS03-BP02 Eliminación o refactorización de los componentes de cargas de trabajo con uso reducido o nulo](sus_sus_software_a3.md)
+ [SUS03-BP03 Optimización de las áreas de código que consumen la mayor parte del tiempo o de los recursos](sus_sus_software_a4.md)
+ [SUS03-BP04 Optimización del impacto en los dispositivos y equipos](sus_sus_software_a5.md)
+ [SUS03-BP05 Uso de los patrones de software y las arquitecturas que mejor respaldan los patrones de almacenamiento y el acceso a los datos](sus_sus_software_a6.md)

# SUS03-BP01 Optimización del software y la arquitectura para los trabajos asíncronos y programados
<a name="sus_sus_software_a2"></a>

Utilice patrones de software y arquitectura eficientes, como los basados en colas, para mantener una utilización elevada y coherente de los recursos implementados.

 **Patrones comunes de uso no recomendados:** 
+  Aprovisiona en exceso los recursos de su carga de trabajo en la nube para hacer frente a picos imprevistos de la demanda. 
+  Usa una arquitectura que no desacopla los emisores y los receptores de mensajes asíncronos mediante un componente de mensajería. 

 **Beneficios de establecer esta práctica recomendada:** 
+  Los patrones de software y arquitectura eficientes minimizan los recursos no utilizados en la carga de trabajo y mejoran la eficiencia global. 
+  Posibilidad de escalar el procesamiento independientemente de la recepción de mensajes asíncronos. 
+  Mediante un componente de mensajería, tendrá unos requisitos de disponibilidad más relajados que podrá cumplir con menos recursos. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>

 Utilice patrones de arquitectura eficientes, como una [arquitectura basada en eventos](https://aws.amazon.com/event-driven-architecture/), que permita un uso uniforme de los componentes y minimice el aprovisionamiento excesivo de la carga de trabajo. El uso de patrones de arquitectura eficientes minimiza los recursos inactivos por falta de uso debido a cambios en la demanda a lo largo del tiempo. 

 Comprenda los requisitos de los componentes de la carga de trabajo y adopte patrones de arquitectura que aumenten la utilización global de los recursos. Retire los componentes que ya no son necesarios. 

### Pasos para la implementación
<a name="implementation-steps"></a>
+  Analice la demanda de su carga de trabajo para determinar cómo responder a ella. 
+  En el caso de solicitudes o trabajos que no requieran respuestas síncronas, utilice arquitecturas basadas en colas y empleados de escalado automático para maximizar la utilización. A continuación, encontrará algunos ejemplos de cuándo podría plantearse una arquitectura basada en colas:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/wellarchitected/latest/sustainability-pillar/sus_sus_software_a2.html)
+  En el caso de solicitudes o trabajos que puedan procesarse en cualquier momento, utilice mecanismos de programación para procesar los trabajos por lotes y obtener una mayor eficacia. A continuación, se presentan algunos ejemplos de mecanismos de programación en AWS:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/wellarchitected/latest/sustainability-pillar/sus_sus_software_a2.html)
+  Si utiliza mecanismos de sondeo y webhooks en su arquitectura, reemplácelos por eventos. Utilice [arquitecturas basadas en eventos](https://docs.aws.amazon.com/lambda/latest/operatorguide/event-driven-architectures.html) para crear cargas de trabajo altamente eficientes. 
+  Aproveche la tecnología [sin servidor en AWS](https://aws.amazon.com/serverless/) para eliminar la infraestructura con exceso de aprovisionamiento. 
+  Dimensione correctamente los componentes individuales de su arquitectura para evitar recursos inactivos mientras se espera la entrada. 
  +  Puede utilizar las [recomendaciones de redimensionamiento de AWS Cost Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-rightsizing.html) o [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) para identificar oportunidades de redimensionamiento. 
  +  Para obtener más información, consulte [Ajuste del tamaño: aprovisionamiento de instancias para adaptarse a las cargas de trabajo](https://docs.aws.amazon.com/whitepapers/latest/cost-optimization-right-sizing/cost-optimization-right-sizing.html). 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [What is Amazon Simple Queue Service?](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) 
+  [¿Qué es Amazon MQ?](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html) 
+  [Escalado basado en Amazon SQS](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) 
+  [Qué es AWS Step Functions?](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 
+  [Qué es AWS Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 
+  [Uso de AWS Lambda con Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html) 
+  [¿Qué es Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html) 
+ [ Managing Asynchronous Workflows with a REST API ](https://aws.amazon.com/blogs/architecture/managing-asynchronous-workflows-with-a-rest-api/)

 **Videos relacionados:** 
+ [AWS re:Invent 2023 - Navigating the journey to serverless event-driven architecture ](https://www.youtube.com/watch?v=hvGuqHp051c)
+ [AWS re:Invent 2023 - Using serverless for event-driven architecture & domain-driven design ](https://www.youtube.com/watch?v=3foMZJSPMI4)
+ [AWS re:Invent 2023 - Advanced event-driven patterns with Amazon EventBridge ](https://www.youtube.com/watch?v=6X4lSPkn4ps)
+ [AWS re:Invent 2023 - Sustainable architecture: Past, present, and future ](https://www.youtube.com/watch?v=2xpUQ-Q4QcM)
+ [ Asynchronous Message Patterns \$1 AWS Events ](https://www.youtube.com/watch?v=-yJqBuwouZ4)

 **Ejemplos relacionados:** 
+ [ Event-driven architecture with AWS Graviton Processors and Amazon EC2 Spot Instances ](https://catalog.workshops.aws/well-architected-sustainability/en-US/2-software-and-architecture/event-driven-architecture-with-graviton-spot)

# SUS03-BP02 Eliminación o refactorización de los componentes de cargas de trabajo con uso reducido o nulo
<a name="sus_sus_software_a3"></a>

Elimine los componentes que ya no se usan ni se necesitan y refactorice aquellos con un uso reducido para minimizar el desperdicio en su carga de trabajo.

 **Patrones comunes de uso no recomendados:** 
+  No comprueba periódicamente el nivel de uso de los componentes individuales de la carga de trabajo. 
+  No comprueba ni analiza recomendaciones de herramientas de dimensionamiento de AWS como [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/). 

 **Beneficios de establecer esta práctica recomendada:** la eliminación de los componentes no utilizados minimiza el desperdicio y mejora la eficiencia general de la carga de trabajo en la nube. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>

Los componentes no utilizados o infrautilizados de una carga de trabajo en la nube consumen recursos de computación, de almacenamiento o de red innecesarios. Elimine o refactorice estos componentes para reducir directamente el uso innecesario y mejorar la eficiencia general de una carga de trabajo en la nube. Este es un proceso de mejora iterativo que puede iniciarse por cambios en la demanda o por el lanzamiento de un nuevo servicio en la nube. Por ejemplo, una disminución significativa en el tiempo de ejecución de una función de [AWS Lambda](https://docs.aws.amazon.com/lambda/) puede ser un indicador de que es necesario reducir el tamaño de la memoria. Además, a medida que AWS lanza nuevos servicios y características, los servicios y la arquitectura óptimos para su carga de trabajo también pueden cambiar.

 Supervise continuamente la actividad de la carga de trabajo y busque oportunidades para mejorar el nivel de uso de los componentes individuales. Con la eliminación de los componentes ociosos y con las actividades de redimensionamiento, cumplirá los requisitos de su empresa con el menor número de recursos en la nube. 

### Pasos para la implementación
<a name="implementation-steps"></a>
+  **Haga un inventario de sus recursos de AWS:** cree un inventario de sus recursos de AWS. En AWS, puede activar [Explorador de recursos de AWS](https://docs.aws.amazon.com/resource-explorer/latest/userguide/welcome.html) para explorar y organizar los recursos de AWS. Para obtener más información, consulte [AWS re:Invent 2022 - How to manage resources and applications at scale on AWS](https://www.youtube.com/watch?v=bbgUnKq6PAU). 
+  **Monitoree el uso:** monitoree y capture las métricas de uso de los componentes críticos de su carga de trabajo (como el uso de la CPU, el uso de la memoria o el rendimiento de la red en las métricas de [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)). 
+  **Identifique los componentes no utilizados:** identifique los componentes no utilizados o infrautilizados de su arquitectura. 
  +  Para las cargas de trabajo estables, compruebe las herramientas de dimensionamiento de AWS, como, por ejemplo, [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/), a intervalos regulares para identificar los componentes inactivos, no utilizados o infrautilizados. 
  +  En el caso de las cargas de trabajo efímeras, evalúe las métricas de uso para identificar los componentes inactivos, no utilizados o infrautilizados. 
+  **Retire los componentes no utilizados:** retire los componentes y los recursos asociados (como las imágenes de Amazon ECR) que ya no sean necesarios. 
  + [ Automated Cleanup of Unused Images in Amazon ECR ](https://aws.amazon.com/blogs/compute/automated-cleanup-of-unused-images-in-amazon-ecr/)
  + [ Eliminar volúmenes de Amazon Elastic Block Store (Amazon EBS) no utilizados con AWS Config y AWS Systems Manager](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/delete-unused-amazon-elastic-block-store-amazon-ebs-volumes-by-using-aws-config-and-aws-systems-manager.html)
+  **Refactorice los componentes infrautilizados:** refactorice o consolide los componentes infrautilizados con otros recursos para mejorar la eficiencia de uso. Por ejemplo, puede aprovisionar varias bases de datos pequeñas en una sola instancia de base de datos de [Amazon RDS](https://aws.amazon.com/rds/) en lugar de ejecutar las bases de datos en instancias individuales infrautilizadas. 
+  **Evalúe las mejoras:** conozca los [recursos que aprovisiona su carga de trabajo para completar una unidad de trabajo](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/evaluate-specific-improvements.html). Utilice esta información para evaluar las mejoras logradas al eliminar o refactorizar los componentes. 
  + [Mida la eficiencia de la nube y haga un seguimiento de esta con métricas indirectas de sostenibilidad. Parte I: ¿Qué son las métricas intermedias?](https://aws.amazon.com/blogs/aws-cloud-financial-management/measure-and-track-cloud-efficiency-with-sustainability-proxy-metrics-part-i-what-are-proxy-metrics/)
  + [Mida la eficiencia de la nube y haga un seguimiento de esta con métricas indirectas de sostenibilidad. Parte II: Establezca una cartera de métricas](https://aws.amazon.com/blogs/aws-cloud-financial-management/measure-and-track-cloud-efficiency-with-sustainability-proxy-metrics-part-ii-establish-a-metrics-pipeline/)

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+ [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/)
+  [Qué es Amazon CloudWatch?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+ [ Ajuste del tamaño: aprovisionamiento de instancias para adaptarse a las cargas de trabajo ](https://docs.aws.amazon.com/whitepapers/latest/cost-optimization-right-sizing/cost-optimization-right-sizing.html)
+ [ Optimizing your cost with Rightsizing Recommendations ](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-rightsizing.html)

 **Videos relacionados:** 
+ [AWS re:Invent 2023 - Capacity, availability, cost efficiency: Pick three ](https://www.youtube.com/watch?v=E0dYLPXrX_w)

# SUS03-BP03 Optimización de las áreas de código que consumen la mayor parte del tiempo o de los recursos
<a name="sus_sus_software_a4"></a>

Optimice el código que se ejecuta en los distintos componentes de su arquitectura para minimizar el uso de los recursos y, a la vez, maximizar el rendimiento.

 **Patrones comunes de uso no recomendados:** 
+  Ignora la optimización del código para el uso de recursos. 
+  Normalmente responde a los problemas de rendimiento con un aumento de los recursos. 
+  Su proceso de revisión y desarrollo del código no hace un seguimiento de los cambios de rendimiento. 

 **Beneficios de establecer esta práctica recomendada:** el uso de código eficiente minimiza el consumo de recursos y mejora el rendimiento. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>

 Es fundamental examinar cada área funcional, incluido el código de una aplicación con arquitectura de nube, para optimizar el consumo de recursos y el rendimiento. Supervise continuamente el rendimiento de la carga de trabajo en los entornos de creación y producción e identifique oportunidades para mejorar los fragmentos de código que tienen un uso de recursos especialmente elevado. Adopte un proceso de revisión periódico para identificar errores o antipatrones en su código que utilicen los recursos de forma ineficiente. Use algoritmos sencillos y eficaces que produzcan los mismos resultados para su caso de uso. 

## Pasos para la implementación
<a name="implementation-steps"></a>
+ **Uso de un lenguaje de programación eficiente:** utilice un sistema operativo y un lenguaje de programación eficientes para la carga de trabajo. Para obtener más información sobre los lenguajes de programación energéticamente eficientes (incluido Rust), consulte [Sustainability with Rust](https://aws.amazon.com/blogs/opensource/sustainability-with-rust/). 
+  **Uso de un complemento de codificación de IA:** considere la posibilidad de utilizar un complemento de codificación de IA, como [Amazon Q Developer](https://aws.amazon.com/q/developer/), para escribir código de manera eficiente. 
+ **Automatización de las revisiones de código:** durante el desarrollo de sus cargas de trabajo, adopte un proceso automatizado de revisión del código para mejorar la calidad e identificar errores y antipatrones. 
  + [ Automate code reviews with Amazon CodeGuru Reviewer ](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/)
  + [ Detecting concurrency bugs with Amazon CodeGuru ](https://aws.amazon.com/blogs/devops/detecting-concurrency-bugs-with-amazon-codeguru/)
  + [ Raising code quality for Python applications using Amazon CodeGuru ](https://aws.amazon.com/blogs/devops/raising-code-quality-for-python-applications-using-amazon-codeguru/)
+ **Uso de un generador de perfiles de código:** use un generador de perfiles de código para identificar las áreas de código que emplean más tiempo o recursos como destino de la optimización. 
  + [ Reducing your organization's carbon footprint with Amazon CodeGuru Profiler ](https://aws.amazon.com/blogs/devops/reducing-your-organizations-carbon-footprint-with-codeguru-profiler/)
  + [ Understanding memory usage in your Java application with Amazon CodeGuru Profiler ](https://aws.amazon.com/blogs/devops/understanding-memory-usage-in-your-java-application-with-amazon-codeguru-profiler/)
  + [ Improving customer experience and reducing cost with Amazon CodeGuru Profiler ](https://aws.amazon.com/blogs/devops/improving-customer-experience-and-reducing-cost-with-codeguru-profiler/)
+  **Supervisión y optimización:** use recursos de supervisión continua para identificar los componentes con altos requisitos de recursos o con una configuración subóptima. 
  +  Reemplace los algoritmos que hacen un uso intensivo de la computación por versiones más sencillas y eficientes que produzcan el mismo resultado. 
  +  Elimine el código innecesario, como la ordenación y el formato. 
+  **Uso de la refactorización o la transformación del código:** explore la posibilidad de [transformar el código de Amazon Q](https://aws.amazon.com/q/aws/code-transformation/) para el mantenimiento y las actualizaciones de las aplicaciones. 
  + [ Upgrade language versions with Amazon Q Code Transformation ](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/code-transformation.html)
  + [AWS re:Invent 2023 - Automate app upgrades & maintenance using Amazon Q Code Transformation ](https://www.youtube.com/watch?v=LY76tak6Z1E)

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [What is Amazon CodeGuru Profiler?](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 
+  [FPGA instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fpga-getting-started.html) 
+  [SDK de AWS en Herramientas para crear en AWS](https://aws.amazon.com/tools/) 

 **Videos relacionados:** 
+ [ Improve Code Efficiency Using Amazon CodeGuru Profiler ](https://www.youtube.com/watch?v=1pU4VddsBRw)
+ [ Automate Code Reviews and Application Performance Recommendations with Amazon CodeGuru ](https://www.youtube.com/watch?v=OD8H63C0E0I)

# SUS03-BP04 Optimización del impacto en los dispositivos y equipos
<a name="sus_sus_software_a5"></a>

Comprenda los dispositivos y los equipos empleados en la arquitectura y utilice estrategias para reducir su uso. Esto puede minimizar el impacto medioambiental global de su carga de trabajo en la nube. 

 **Patrones comunes de uso no recomendados:** 
+  Ignora el impacto medioambiental de los dispositivos que utilizan sus clientes. 
+  Administra y actualiza manualmente los recursos que utilizan los clientes. 

 **Beneficios de establecer esta práctica recomendada:** implementación de patrones y características de software optimizados para el dispositivo del cliente puede reducir el impacto medioambiental general de la carga de trabajo en la nube. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>

 La implementación de patrones y características de software optimizados para el dispositivo del cliente puede reducir el impacto medioambiental general de la carga de trabajo en la nube de varias maneras: 
+  La implementación de nuevas características compatibles con versiones anteriores puede reducir el número de reemplazos de hardware. 
+  La optimización de una aplicación para que funcione de forma eficiente en los dispositivos puede contribuir a reducir su consumo de energía y a prolongar la duración de su batería (si funcionan con ella). 
+  La optimización de una aplicación para dispositivos también puede reducir la transferencia de datos a través de la red. 

 Comprenda los dispositivos y equipos utilizados en su arquitectura, su ciclo de vida previsto y el impacto de reemplazar esos componentes. Implemente patrones y características de software que puedan minimizar el consumo de energía del dispositivo, así como la necesidad de los clientes de reemplazar el dispositivo y actualizarlo manualmente. 

### Pasos para la implementación
<a name="implementation-steps"></a>
+ **Inventario:** haga un inventario de los dispositivos utilizados en su arquitectura. Los dispositivos pueden ser móviles, tabletas, dispositivos IoT, luces inteligentes o incluso dispositivos inteligentes en una fábrica. 
+ **Uso de dispositivos que ahorren energía:** considere la posibilidad de utilizar dispositivos que ahorren energía en su arquitectura. Use las configuraciones de administración de energía en los dispositivos para entrar en el modo de bajo consumo cuando no estén en uso. 
+ **Ejecución de aplicaciones eficientes:** optimice la aplicación que se ejecuta en los dispositivos: 
  +  Utilice estrategias como la ejecución de tareas en segundo plano para reducir su consumo de energía. 
  +  Tenga en cuenta la latencia y el ancho de banda de la red al crear cargas e implemente capacidades que ayuden al funcionamiento óptimo de las aplicaciones en enlaces de alta latencia y ancho de banda bajo. 
  +  Convierta las cargas útiles y los archivos a los formatos optimizados que requieren los dispositivos. Por ejemplo, puede usar [Amazon Elastic Transcoder](https://docs.aws.amazon.com/elastic-transcoder/) o [AWS Elemental MediaConvert](https://aws.amazon.com/mediaconvert/) para convertir archivos multimedia digitales de gran calidad y tamaño en formatos que los usuarios puedan reproducir en dispositivos móviles, tablets, navegadores web y televisiones conectadas. 
  +  Lleve a cabo las actividades con un uso intensivo de los recursos de computación (como la representación de imágenes) del servidor o use el streaming de aplicaciones para mejorar la experiencia del usuario en los dispositivos más antiguos. 
  +  Segmente y pagine los resultados, sobre todo en las sesiones interactivas, para administrar las cargas y limitar los requisitos de almacenamiento local. 
+ **Implicación de los proveedores:** trabaje con proveedores de dispositivos que usen materiales sostenibles y que ofrezcan transparencia en sus cadenas de suministro y certificaciones medioambientales. 
+ **Uso de actualizaciones vía inalámbrica (OTA):** use el mecanismo automatizado vía inalámbrica (OTA) para implementar actualizaciones en uno o varios dispositivos. 
  +  Puede utilizar una [canalización de CI/CD](https://aws.amazon.com/blogs/mobile/build-a-cicd-pipeline-for-your-android-app-with-aws-services/) para actualizar las aplicaciones móviles. 
  +  Puede utilizar [AWS IoT Device Management](https://aws.amazon.com/iot-device-management/) para gestionar de forma remota los dispositivos conectados a gran escala. 
+ **Uso de granjas de dispositivos administrados:** para probar nuevas características y actualizaciones, utilice granjas de dispositivos administrados con conjuntos representativos de hardware e itere el desarrollo para maximizar los dispositivos admitidos. Para obtener más información, consulte [SUS06-BP05 Uso de granjas de dispositivos administrados para pruebas](sus_sus_dev_a5.md). 
+ **Continuación de la supervisión y mejora:** haga un seguimiento del consumo de energía de los dispositivos para identificar las áreas de mejora. Utilice nuevas tecnologías o prácticas recomendadas para mejorar los impactos medioambientales de estos dispositivos. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Qué es AWS Device Farm?](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) 
+  [Documentación de aplicaciones de WorkSpaces](https://docs.aws.amazon.com/appstream2/) 
+  [NICE DCV](https://docs.aws.amazon.com/dcv/) 
+ [ OTA tutorial for updating firmware on devices running FreeRTOS ](https://docs.aws.amazon.com/freertos/latest/userguide/dev-guide-ota-workflow.html)
+ [ Optimizing Your IoT Devices for Environmental Sustainability ](https://aws.amazon.com/blogs/architecture/optimizing-your-iot-devices-for-environmental-sustainability/)

 **Videos relacionados:** 
+ [AWS re:Invent 2023 - Improve your mobile and web app quality using AWS Device Farm](https://www.youtube.com/watch?v=__93Tm0YCRg)

# SUS03-BP05 Uso de los patrones de software y las arquitecturas que mejor respaldan los patrones de almacenamiento y el acceso a los datos
<a name="sus_sus_software_a6"></a>

Analice cómo se usan los datos en la carga de trabajo, cómo los consumen los usuarios, cómo se transfieren y cómo se almacenan. Utilice patrones y arquitecturas de software que admitan mejor el acceso a los datos y el almacenamiento para minimizar los recursos de computación, redes y almacenamiento necesarios para admitir la carga de trabajo.

 **Patrones comunes de uso no recomendados:** 
+  Supone que todas las cargas de trabajo tienen patrones similares de almacenamiento y acceso a los datos. 
+  Solo utiliza un nivel de almacenamiento, asumiendo que todas las cargas de trabajo encajan en ese nivel. 
+  Supone que los patrones de acceso a los datos se mantendrán coherentes a lo largo del tiempo. 
+  Su arquitectura admite una posible ampliación de acceso a los datos, lo que provoca que los recursos permanezcan inactivos la mayor parte del tiempo. 

 **Beneficios de establecer esta práctica recomendada:** la selección y optimización de su arquitectura en función de los patrones de acceso y almacenamiento de datos le ayudará a reducir la complejidad del desarrollo y a aumentar la utilización general. Saber cuándo utilizar las tablas globales, las particiones 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
<a name="implementation-guidance"></a>

 Para mejorar la sostenibilidad de las cargas de trabajo a largo plazo, utilice patrones de arquitectura que admitan las características de acceso y almacenamiento de datos para su carga de trabajo. Estos patrones lo ayudan a recuperar y procesar los datos de manera eficiente. Por ejemplo, utilice una [arquitectura de datos moderna en AWS](https://aws.amazon.com/big-data/datalakes-and-analytics/modern-data-architecture/) con servicios diseñados específicamente y optimizados para sus casos de uso de análisis exclusivos. Estos patrones de arquitectura permiten un procesamiento de datos eficaz y reducen el uso de recursos. 

### Pasos para la implementación
<a name="implementation-steps"></a>
+  **Conozca las características de los datos:** analice las características de los datos y los patrones de acceso para identificar la configuración correcta de sus recursos en la nube. Entre las características clave que se deben tener en cuenta se incluyen las siguientes: 
  +  **Tipo de datos:** estructurados, semiestructurados y no estructurados 
  +  **Crecimiento de datos:** limitado, ilimitado 
  +  **Durabilidad de los datos:** persistentes, efímeros o transitorios 
  +  **Patrones de acceso:** lecturas o escrituras, frecuencia de actualización, con picos o constantes 
+  **Utilice patrones de arquitectura óptimos:** utilice los patrones de arquitectura que mejor admitan los patrones de acceso y almacenamiento de datos. 
  + [ Patrones para habilitar la persistencia de datos ](https://docs.aws.amazon.com/prescriptive-guidance/latest/modernization-data-persistence/enabling-patterns.html)
  + [ Let’s Architect\$1 Modern data architectures ](https://aws.amazon.com/blogs/architecture/lets-architect-modern-data-architectures/)
  + [ Databases on AWS: The Right Tool for the Right Job ](https://www.youtube.com/watch?v=-pb-DkD6cWg)
+  **Utilice servicios diseñados específicamente:** utilice tecnologías que se adapten a su propósito. 
  +  Utilice tecnologías que funcionen de forma nativa con datos comprimidos. 
    + [ Compatibilidad con la compresión de Athena ](https://docs.aws.amazon.com/athena/latest/ug/compression-formats.html)
    + [ Opciones de formato para las entradas y salidas de ETL en AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html)
    + [ Carga de archivos de datos comprimidos desde Amazon S3 con Amazon Redshift ](https://docs.aws.amazon.com/redshift/latest/dg/t_loading-gzip-compressed-data-files-from-S3.html)
  +  Utilice [servicios de análisis](https://aws.amazon.com/big-data/datalakes-and-analytics/?nc2=h_ql_prod_an_a) diseñados específicamente para el procesamiento de datos en su arquitectura. Para obtener más información sobre los servicios de análisis diseñados específicamente de AWS, consulte [AWS re:Invent 2022 - Building modern data architectures on AWS](https://www.youtube.com/watch?v=Uk2CqEt5f0o). 
  +  Use el motor de base de datos que mejor admita su patrón de consulta dominante. Administre los índices de las bases de datos para que se hagan consultas de forma eficaz. Para obtener más información, consulte [Bases de datos de AWS](https://aws.amazon.com/products/databases/) y [AWS re:Invent 2022 - Modernize apps with purpose-built databases](https://www.youtube.com/watch?v=V-DiplATdi0). 
+  **Minimice la transferencia de datos:** seleccione protocolos de red que reduzcan la cantidad de capacidad de red consumida en su arquitectura. 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Uso de COPY con formatos de datos de columnas con Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/copy-usage_notes-copy-from-columnar.html) 
+  [Conversión del formato de registros de entrada en Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html) 
+  [Mejora del rendimiento de las consultas en Amazon Athena con la conversión a formato de columnas](https://docs.aws.amazon.com/athena/latest/ug/convert-to-columnar.html) 
+  [Monitoreo de la carga de base de datos con Performance Insights en Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html) 
+  [Monitoreo de la carga de base de datos con Performance Insights en Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 
+ [ Clase de almacenamiento Amazon S3 Intelligent-Tiering ](https://aws.amazon.com/s3/storage-classes/intelligent-tiering/)
+ [ Build a CQRS event store with Amazon DynamoDB ](https://aws.amazon.com/blogs/database/build-a-cqrs-event-store-with-amazon-dynamodb/)

 **Videos relacionados:** 
+ [AWS re:Invent 2022 - Building data mesh architectures on AWS](https://www.youtube.com/watch?v=nGRvlobeM_U)
+ [AWS re:Invent 2023 - Deep dive into Amazon Aurora and its innovations ](https://www.youtube.com/watch?v=je6GCOZ22lI)
+ [AWS re:Invent 2023 - Improve Amazon EBS efficiency and be more cost-efficient ](https://www.youtube.com/watch?v=7-CB02rqiuw)
+ [AWS re:Invent 2023 - Optimizing storage price and performance with Amazon S3 ](https://www.youtube.com/watch?v=RxgYNrXPOLw)
+ [AWS re:Invent 2023 - Building and optimizing a data lake on Amazon S3 ](https://www.youtube.com/watch?v=mpQa_Zm1xW8)
+ [AWS re:Invent 2023 - Advanced event-driven patterns with Amazon EventBridge ](https://www.youtube.com/watch?v=6X4lSPkn4ps)

 **Ejemplos relacionados:** 
+ [AWS Purpose Built Databases Workshop ](https://catalog.us-east-1.prod.workshops.aws/workshops/93f64257-52be-4c12-a95b-c0a1ff3b7e2b/en-US)
+ [AWS Modern Data Architecture Immersion Day ](https://catalog.us-east-1.prod.workshops.aws/workshops/32f3e732-d67d-4c63-b967-c8c5eabd9ebf/en-US)
+ [ Build a Data Mesh on AWS](https://catalog.us-east-1.prod.workshops.aws/workshops/23e6326b-58ee-4ab0-9bc7-3c8d730eb851/en-US)