

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

**Topics**
+ [SUS 3 ¿Cómo puede sacar partido de los patrones de software y de arquitectura para respaldar sus objetivos de sostenibilidad?](sus-03.md)

# SUS 3 ¿Cómo puede sacar partido de los patrones de software y de arquitectura para respaldar sus objetivos de sostenibilidad?
<a name="sus-03"></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 realizar actualizaciones de los dispositivos. 

**Topics**
+ [SUS03-BP01: Optimizar el software y la arquitectura para los trabajos asíncronos y programados](sus_sus_software_a2.md)
+ [SUS03-BP02 Eliminar o refactorizar 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 Optimizar el 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: Optimizar el 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 desplegados.

 **Patrones comunes de uso no recomendados:** 
+  Realiza un aprovisionamiento excesivo de los recursos de su carga de trabajo en la nube para hacer frente a picos imprevistos de la demanda. 
+  Su arquitectura 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. 
+  Puede 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 la [arquitectura basada en eventos](https://aws.amazon.com/event-driven-architecture/), que dan como resultado una utilización uniforme de los componentes y minimizan el aprovisionamiento excesivo en 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 escalamiento 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/2024-06-27/framework/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/2024-06-27/framework/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 de elevada eficacia. 
+  Aproveche la [tecnología sin servidor en AWS](https://aws.amazon.com/serverless/) para eliminar la infraestructura aprovisionada en exceso. 
+  Dimensione correctamente los componentes individuales de su arquitectura para evitar recursos inactivos mientras se espera la entrada. 
  +  Puede consultar [Rightsizing Recommendations in 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 ajuste de tamaño. 
  +  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:** 
+  [¿Qué es 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) 
+  [Escalamiento 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/)

 **Vídeos 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 Eliminar o refactorizar 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 utilización 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 activos no utilizados libera recursos y mejora la eficacia general de la 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>

 Revise la carga de trabajo para identificar los componentes inactivos o no utilizados. 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, un descenso significativo del tiempo de ejecución de una función de [AWS Lambda](https://docs.aws.amazon.com/lambda/) puede ser un indicador de la necesidad de 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 la realización de 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 los 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). 
+  Supervise y capture las métricas de utilización de los componentes críticos de su carga de trabajo (como la utilización de la CPU, la utilización de la memoria o el rendimiento de la red en [métricas de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)). 
+  Identifique los componentes no utilizados o infrautilizados de su arquitectura. 
  +  Para cargas de trabajo estables, compruebe las herramientas de redimensionamiento de AWS como [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) a intervalos regulares para identificar los componentes ociosos, no utilizados o infrautilizados. 
  +  En el caso de las cargas de trabajo efímeras, evalúe las métricas de utilización para identificar los componentes inactivos, no utilizados o infrautilizados. 
+  Retire los componentes y activos 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/)
  + [Delete unused Amazon Elastic Block Store (Amazon EBS) volumes by using AWS Config and 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 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 vez de ejecutar bases de datos en instancias individuales infrautilizadas. 
+  Entienda los [recursos aprovisionados por su carga de trabajo para completar una unidad de trabajo](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/evaluate-specific-improvements.html). 

## 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/Amazon/latest/monitoring/WhatIs.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)

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

 **Ejemplos relacionados:** 
+ [Optimize Hardware Patterns and Observe Sustainability KPIs](https://catalog.workshops.aws/well-architected-sustainability/en-US/4-hardware-and-services/optimize-hardware-patterns-observe-sustainability-kpis)

# 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 realiza un seguimiento de los cambios de rendimiento. 

 **Beneficios de establecer esta práctica recomendada:** con un código eficiente se minimiza el uso de recursos y se 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 su uso de recursos y su 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>
+ **Utilizar un lenguaje de programación eficaz:** use un sistema operativo y un lenguaje de programación que sean eficaces para la carga de trabajo. Para obtener detalles sobre lenguajes de programación energéticamente eficientes (incluido Rust), consulte [Sustainability with Rust](https://aws.amazon.com/blogs/opensource/sustainability-with-rust/) (Sostenibilidad con Rust). 
+  **Utilizar un complemento de programación de IA:** piense en la posibilidad de utilizar un complemento de programación de IA, como, por ejemplo, [Amazon CodeWhisperer](https://aws.amazon.com/pm/codewhisperer/) para escribir código de forma eficaz. 
+ **Automatizar las revisiones de código:** durante el desarrollo de las 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/)(Revisiones automáticas de código con Amazon CodeGuru Reviewer)
  + [ Detecting concurrency bugs with Amazon CodeGuru ](https://aws.amazon.com/blogs/devops/detecting-concurrency-bugs-with-amazon-codeguru/)(Detección de errores de simultaneidad con 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/)(Mejora de la calidad del código para aplicaciones Python con Amazon CodeGuru)
+ **Utilizar 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 objetivo 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/)(Reducir la huella de carbono de su organización con Amazon 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/)(Descripción del uso de memoria en su aplicación Java con 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/)(Mejorar la experiencia del cliente y reducir costes con Amazon CodeGuru Profiler)
+  **Supervisar y optimizar:** utilice los recursos de supervisión continua para identificar los componentes con requisitos elevados respecto a los recursos o una configuración poco ó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. 
+  **Utilizar la refactorización o la transformación del código:** explore la posibilidad de usar la [transformación de códigos 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) (¿Qué es Amazon CodeGuru Profiler?) 
+  [Instancias de FPGA](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/) 

 **Vídeos relacionados: ** 
+ [ Improve Code Efficiency Using Amazon CodeGuru Profiler ](https://www.youtube.com/watch?v=1pU4VddsBRw)(Mejorar la eficiencia del código con Amazon CodeGuru Profiler)
+ [AWS re:Invent 2023 - Best practices for Amazon CodeWhisperer](https://www.youtube.com/watch?v=F_dSkRHCXBc)
+ [ Automate Code Reviews and Application Performance Recommendations with Amazon CodeGuru ](https://www.youtube.com/watch?v=OD8H63C0E0I)(Automatizar las revisiones de código y las recomendaciones de rendimiento de aplicaciones con Amazon CodeGuru)

 **Ejemplos relacionados:** 
+ [Optimizing Code with Amazon CodeGuru](https://catalog.workshops.aws/well-architected-sustainability/en-US/2-software-and-architecture/200-codeguru-lab)

# SUS03-BP04 Optimizar el impacto en los dispositivos y equipos
<a name="sus_sus_software_a5"></a>

Analice 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:** 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. 

 **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. 
+  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, la necesidad de los clientes de reemplazarlo y también de actualizarlo manualmente. 

### Pasos para la implementación
<a name="implementation-steps"></a>
+ **Realizar un 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. 
+ **Utilizar dispositivos con bajo consumo energético:** plantéese la posibilidad de utilizar dispositivos con bajo consumo energético en la 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. 
+ **Ejecutar 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 utilizar [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 tamaño y alta calidad a formatos que los usuarios puedan reproducir en dispositivos móviles, tabletas, navegadores web y televisores conectados. 
  +  Realice las actividades con un uso intensivo de los recursos informáticos (como la representación de imágenes) en el lado 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. 
+ **Involucrar a los proveedores:** colabore con proveedores de dispositivos que utilicen materiales sostenibles y proporcionen transparencia en sus cadenas de suministro y certificaciones medioambientales. 
+ **Usar actualizaciones vía inalámbrica (OTA):** utilice un mecanismo automatizado vía inalámbrica (OTA) para desplegar 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 administrar a distancia los dispositivos conectados a escala. 
+ **Utilizar 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 sacar el máximo partido de los dispositivos admitidos. Para obtener más información, consulte [SUS06-BP04 Usar granjas de dispositivos administrados para pruebas](sus_sus_dev_a5.md). 
+ **Continuar supervisando y mejorando:** realice un seguimiento del uso de energía de los dispositivos para identificar las áreas en las que es necesario mejorar. Utilice nuevas tecnologías o prácticas recomendadas para mejorar los impactos medioambientales de estos dispositivos. 

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

 **Documentos relacionados:** 
+  [What is AWS Device Farm?](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) 
+  [Documentación de WorkSpaces Applications](https://docs.aws.amazon.com/appstream2/) 
+  [NICE DCV](https://docs.aws.amazon.com/dcv/) 
+ [ Tutorial de OTA para actualizar el firmware en dispositivos que ejecutan 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/)

 **Vídeos 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 la optimización de su arquitectura en función de los patrones de acceso y almacenamiento de datos le ayudará a disminuir 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>

 Utilice los patrones de software y arquitectura que mejor se adapten a las características de sus datos y a sus patrones de acceso. Por ejemplo, utilice una [arquitectura de datos moderna en AWS](https://aws.amazon.com/big-data/datalakes-and-analytics/modern-data-architecture/) que le permita usar servicios personalizados 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>
+  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: 
  +  **Tipo de datos:** estructurados, semiestructurados, no estructurados 
  +  **Crecimiento de datos:** limitados, no limitados 
  +  **Durabilidad de datos:** persistentes, efímeros, transitorios 
  +  **Patrones de acceso:** lecturas o escrituras, frecuencia de actualización, con picos o constantes 
+  Utilice los patrones de arquitectura que mejor admitan los patrones de acceso y almacenamiento de datos. 
  + [Patterns for enabling data persistence](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/)(Let’s Architect\$1 Arquitecturas de datos modernas)
  + [ Databases on AWS: The Right Tool for the Right Job ](https://www.youtube.com/watch?v=-pb-DkD6cWg)(Bases de datos de AWS: la herramienta adecuada para el trabajo adecuado.)
+  Use 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)
  + [Format Options for ETL Inputs and Outputs in 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) personalizados para el procesamiento de datos en su arquitectura. Para obtener más información sobre los servicios de análisis personalizados 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 base de datos para garantizar que se realicen 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). 
+  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 registro de entrada en 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) 
+  [Supervisión de la carga de bases de datos con Información sobre rendimiento en Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 
+  [Supervisión de la carga de bases de datos con Información sobre rendimiento en Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 
+ [Clase de almacenamiento de 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/)

 **Vídeos 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)