

# Eficiencia del rendimiento
<a name="performance-efficiency"></a>

 El pilar de eficiencia del rendimiento incluye la capacidad de utilizar de forma eficaz los recursos de computación para satisfacer los requisitos del sistema, así como el mantenimiento de esta eficiencia a medida que la demanda cambia y las tecnologías evolucionan. 

 El pilar de eficiencia del rendimiento ofrece una visión general de principios de diseño, prácticas recomendadas y preguntas. Puede encontrar recomendaciones de implementación en el [documento técnico Pilar de eficiencia del rendimiento](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp). 

**Topics**
+ [Principios de diseño](perf-dp.md)
+ [Definición](perf-def.md)
+ [Prácticas recomendadas](perf-bp.md)
+ [Recursos](perf-resources.md)

# Principios de diseño
<a name="perf-dp"></a>

 Existen cinco principios de diseño para la eficiencia del rendimiento en la nube: 
+  **Democratizar las tecnologías avanzadas**: facilite a su equipo la implementación de tecnologías avanzadas mediante la delegación de tareas complejas a su proveedor de servicios en la nube. En lugar de pedir a su equipo de TI que aprenda a alojar y ejecutar una nueva tecnología, considere la posibilidad de consumir la tecnología como un servicio. Por ejemplo, las bases de datos NoSQL, la transcodificación de medios y el machine learning son tecnologías que requieren conocimientos especializados. En la nube, estas tecnologías se convierten en servicios que su equipo puede consumir, lo que permite que se centre en el desarrollo de productos, y no en aprovisionar o administrar recursos. 
+  **Adopte un enfoque global en cuestión de minutos**: el despliegue de su carga de trabajo en varias regiones de AWS del mundo le permite ofrecer una menor latencia y una mejor experiencia a sus clientes con un coste mínimo. 
+  **Utilice arquitecturas sin servidor**: las arquitecturas sin servidor eliminan la necesidad de ejecutar y mantener servidores físicos para las actividades de computación tradicionales. Por ejemplo, los servicios de almacenamiento sin servidor pueden servir como sitios web estáticos, con lo que se elimina la necesidad de servidores web y los servicios basados en eventos pueden alojar código. Esto elimina la carga operativa de administrar servidores físicos y puede reducir los costes de transacciones porque los servicios administrados operan a escala de la nube. 
+  **Experimente con más frecuencia**: los recursos virtuales y automatizables permiten realizar pruebas comparativas con rapidez mediante diferentes tipos de instancias, almacenamiento y configuraciones. 
+  **Considere la simpatía mecánica**: conozca cómo se consumen los servicios en la nube y utilice siempre el enfoque tecnológico que mejor se adapte a sus objetivos de carga de trabajo. Por ejemplo, piense en los patrones de acceso a datos al elegir los enfoques de base de datos o de almacenamiento. 

# Definición
<a name="perf-def"></a>

 Existen cuatro áreas de prácticas recomendadas para la eficiencia del rendimiento en la nube: 
+  **Selección** 
+  **Revisión** 
+  **Supervisión** 
+  **Compensaciones** 

 Adopte un enfoque basado en datos para crear una arquitectura de alto rendimiento. Recopile datos sobre todos los aspectos de la arquitectura, desde el diseño de alto nivel hasta la selección y configuración de los tipos de recursos. 

 Revisar periódicamente sus opciones le permitirá tener la seguridad de que aprovecha la continua evolución de la nube de AWS. Con la supervisión se asegura de conocer cualquier desviación del rendimiento esperado. Haga compensaciones en su arquitectura para mejorar el rendimiento, como el uso de la compresión o el almacenamiento en caché, o bien mitigar los requisitos de coherencia. 

# Prácticas recomendadas
<a name="perf-bp"></a>

**Topics**
+ [Selección](perf-sel.md)
+ [Efectúe la revisión.](perf-review.md)
+ [Supervisión](perf-monitoring.md)
+ [Compensaciones](perf-tradeoffs.md)

# Selección
<a name="perf-sel"></a>

 La solución óptima para una carga de trabajo concreta varía y las soluciones suelen combinar varios enfoques. Las cargas de trabajo de buena arquitectura utilizan varias soluciones y habilitan diferentes funciones para mejorar el rendimiento. 

 Los recursos de AWS están disponibles en muchos tipos y configuraciones, lo que facilita encontrar un enfoque que se ajuste a las necesidades de la carga de trabajo. También puede encontrar opciones que no se logran fácilmente con una infraestructura en las instalaciones. Por ejemplo, un servicio administrado como Amazon DynamoDB ofrece una base de datos NoSQL completamente administrada con una latencia de milisegundos de un solo dígito a cualquier escala. 

 La siguiente pregunta se centra en estas consideraciones para mejorar la eficacia del rendimiento. (Para ver una lista de preguntas sobre la eficiencia del rendimiento y las prácticas recomendadas, consulte el [Apéndice](a-performance-efficiency.md)). 


| RENDIMIENTO 1: ¿Cómo selecciona la arquitectura con el mejor rendimiento? | 
| --- | 
|  A menudo, se requieren varios enfoques para obtener un rendimiento óptimo en una carga de trabajo. Los sistemas de buena arquitectura utilizan varias soluciones y características para mejorar el rendimiento.  | 

 Utilice un enfoque basado en datos para seleccionar los patrones y la implementación para su arquitectura y lograr una solución rentable. Los arquitectos de soluciones de AWS, las arquitecturas de referencia de AWS y los socios de la red de socios de AWS (APN) pueden ayudarle a seleccionar una arquitectura basada en el conocimiento del sector, pero los datos obtenidos a través de la evaluación comparativa o las pruebas de carga serán necesarios para optimizar su arquitectura. 

 Es probable que su arquitectura combine diversos enfoques arquitectónicos diferentes (por ejemplo, basado en eventos, ETL y de canalización). La implementación de su arquitectura utilizará los servicios de AWS específicos para la optimización del rendimiento de la arquitectura. En las siguientes secciones abordaremos los cuatro tipos de recursos principales que hay que tener en cuenta (computación, almacenamiento, base de datos y red). 

# Computación
<a name="perf-compute"></a>

 La selección de recursos de computación que satisfagan sus requisitos, necesidades de rendimiento y proporcionen una gran eficiencia de coste y esfuerzo le permitirá lograr más con el mismo número de recursos. Cuando evalúe las opciones de computación, tenga en cuenta sus requisitos de rendimiento y coste de la carga de trabajo y utilícelos para tomar decisiones informadas. 

 En AWS, la computación está disponible en tres formas, a saber, instancias, contenedores y funciones: 
+  **Instancias** son servidores virtualizados, lo que le permite cambiar sus capacidades con un botón o una llamada a la API. Como las decisiones sobre los recursos en la nube no son fijas, puede experimentar con diferentes tipos de servidores. En AWS, estas instancias de servidor virtual se presentan en diferentes familias y tamaños, y ofrecen una amplia variedad de capacidades, incluidas unidades de estado sólido (SSD) y unidades de procesamiento gráfico (GPU). 
+  **Contenedores** son un método de virtualización del sistema operativo que le permite ejecutar una aplicación y sus dependencias en procesos aislados de recursos. AWS Fargate es un motor de computación sin servidor para contenedores o puede utilizarse Amazon EC2 si necesita controlar la instalación, configuración y administración de su entorno de computación. También puede elegir entre varias plataformas de orquestación de contenedores: Amazon Elastic Container Service (ECS) o Amazon Elastic Kubernetes Service (EKS). 
+  **Funciones** abstraen el entorno de ejecución del código que desea ejecutar. Por ejemplo, AWS Lambda permite ejecutar el código sin implementar, ejecutar una instancia. 

 La siguiente pregunta se centra en estas consideraciones para mejorar la eficacia del rendimiento. 


| RENDIMIENTO 2: ¿Cómo selecciona su solución de computación? | 
| --- | 
| La solución de computación óptima para cada carga de trabajo depende del diseño de las aplicaciones, de los patrones de uso y de las opciones de configuración. Las arquitecturas pueden usar diferentes soluciones de informática para varios componentes y habilitar diferentes funciones que mejoren el rendimiento. Seleccione las soluciones de informática incorrectas para una arquitectura puede disminuir la eficiencia del rendimiento. | 

 Al diseñar su uso de informática, debe aprovechar los mecanismos de elasticidad disponibles para garantizar que tenga capacidad suficiente para mantener el rendimiento a medida que la demanda cambie. 

# Storage (Almacenamiento)
<a name="perf-storage"></a>

 El almacenamiento en la nube es un componente esencial de la computación en la nube que contiene la información utilizada en su carga de trabajo. El almacenamiento en la nube, por lo general, es más fiable, escalable y seguro que los sistemas de almacenamiento en las instalaciones tradicionales. Seleccione entre los servicios de almacenamiento de objetos, bloques y archivos, así como las opciones de migración de datos a la nube para su carga de trabajo. 

 En AWS, el almacenamiento está disponible en tres formas, a saber, objeto, bloque y archivo: 
+  **Almacenamiento de objetos** proporciona una plataforma escalable y duradera para que se pueda acceder a los datos desde cualquier lugar de Internet para el contenido generado por el usuario, el archivo activo, la computación sin servidor, el almacenamiento de macrodatos o la copia de seguridad y recuperación. Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos que ofrece una escalabilidad, una disponibilidad de datos, una seguridad y un rendimiento líderes en el sector. Amazon S3 se ha diseñado para ofrecer una durabilidad del 99,999999999 % (11 nueves) y almacena los datos de millones de aplicaciones de empresas de todo el mundo. 
+  **El almacenamiento de bloques** proporciona un almacenamiento de alta disponibilidad, coherente y de baja latencia para cada host virtual y es análogo al almacenamiento de conexión directa (DAS) o a una red de área de almacenamiento (SAN). Amazon Elastic Block Store (Amazon EBS) se ha diseñado para cargas de trabajo que requieren un almacenamiento persistente al que pueden acceder las instancias de EC2 y que le ayuda a optimizar las aplicaciones con la capacidad de almacenamiento, el rendimiento y el coste adecuados. 
+  **El almacenamiento de archivos** proporciona acceso a un sistema de archivos compartido en varios sistemas. Las soluciones de almacenamiento de archivos como Amazon Elastic File System (EFS) son ideales para casos de uso como grandes repositorios de contenido, entornos de desarrollo, almacenes de medios o directorios domésticos de usuario. Amazon FSx facilita y rentabiliza el lanzamiento y la ejecución de sistemas de archivos populares para poder aprovechar los completos conjuntos de características y el rápido rendimiento de los sistemas de archivos de código abierto y con licencia comercial más utilizados. 

 La siguiente pregunta se centra en estas consideraciones para mejorar la eficacia del rendimiento. 


| RENDIMIENTO 3: ¿Cómo selecciona su solución de almacenamiento? | 
| --- | 
|  La solución de almacenamiento óptima para un sistema varía según el tipo de método de acceso (bloque, archivo u objeto), patrones de acceso (aleatorio o secuencial), rendimiento requerido, frecuencia de acceso (en línea, fuera de línea, archivo), frecuencia de actualización (WORM, dinámico), y restricciones de disponibilidad y durabilidad. Los sistemas Well-Architected utilizan varias soluciones de almacenamiento y habilitan diferentes características para mejorar el rendimiento y utilizar los recursos de manera eficiente.  | 

 Cuando seleccione una solución de almacenamiento, será fundamental asegurarse de que coincida con sus patrones de acceso para obtener el rendimiento deseado. 

# Base de datos
<a name="perf-db"></a>

 La nube ofrece servicios de bases de datos personalizadas que resuelven los diferentes problemas que presenta su carga de trabajo. Puede elegir entre numerosos motores de bases de datos personalizadas, entre los que se incluyen bases de datos relacionales, de valor clave, de documentos, en memoria, de grafos, de series temporales y de libro mayor. Al elegir la mejor base de datos para resolver un problema específico o un grupo de problemas, puede dejar de lado las bases de datos monolíticas únicas y enfocarse en crear aplicaciones que satisfagan las necesidades de rendimiento de sus clientes. 

 En AWS, puede elegir entre varios motores de bases de datos personalizadas, entre los que se incluyen bases de datos relacionales, de valor clave, de documentos, en memoria, de grafos, de series temporales y de libro mayor. Con las bases de datos de AWS, no tendrá que preocuparse de las tareas de administración de las bases de datos, como el aprovisionamiento de los servidores, la aplicación de revisiones, la instalación, la configuración, las copias de seguridad o la recuperación. AWS supervisa continuamente sus clústeres para mantener sus cargas de trabajo en funcionamiento con un almacenamiento de autorreparación y un escalado automatizado, para que pueda centrarse en el desarrollo de aplicaciones de mayor valor. 

 La siguiente pregunta se centra en estas consideraciones para mejorar la eficacia del rendimiento. 


| RENDIMIENTO 4: ¿Cómo selecciona una solución de base de datos? | 
| --- | 
|  La solución de base de datos óptima para un sistema varía según los requisitos de disponibilidad, constancia, tolerancia de partición, latencia, durabilidad, escalabilidad y capacidad de consulta. Muchos sistemas utilizan diferentes soluciones de bases de datos para varios subsistemas y habilitan diferentes características para mejorar el rendimiento. Seleccionar la solución de base de datos y las características incorrectas para un sistema puede conducir a una menor eficiencia de rendimiento.  | 

 El enfoque de base de datos de su carga de trabajo tiene un impacto significativo en la eficiencia del rendimiento. A menudo es un área que se elige de acuerdo con los valores predeterminados de la organización y no a través de un enfoque basado en datos. Al igual que con el almacenamiento, es fundamental tener en cuenta los patrones de acceso de su carga de trabajo, así como considerar si otras soluciones que no sean de base de datos podrían resolver el problema de manera más eficiente (como el uso de una base de datos de grafos, de series temporales o de almacenamiento en memoria). 

# Red
<a name="perf-network"></a>

 Dado que la red se encuentra entre todos los componentes de la carga de trabajo, puede tener un gran impacto, tanto positivo como negativo, en el rendimiento y el comportamiento de la carga de trabajo. También hay cargas de trabajo que dependen en gran medida del rendimiento de la red, como la computación de alto rendimiento (HPC), en la que un profundo conocimiento de la red es importante para aumentar el rendimiento del clúster. Debe determinar los requisitos de la carga de trabajo en cuanto a ancho de banda, latencia, fluctuación y rendimiento. 

 En AWS, las redes se virtualizan y están disponibles en diversos tipos y configuraciones. Esto facilita la adaptación de los métodos de red a sus necesidades. AWS ofrece características de producto (por ejemplo, redes mejoradas, instancias optimizadas para Amazon EBS, aceleración de la transferencia de Amazon S3 y Amazon CloudFront dinámico) para optimizar el tráfico de red. AWS también ofrece características de red (por ejemplo, enrutamiento de latencia de Amazon Route 53, puntos de conexión de Amazon VPC, AWS Direct Connect y AWS Global Accelerator) para reducir la distancia o las fluctuaciones de red. 

 La siguiente pregunta se centra en estas consideraciones para mejorar la eficacia del rendimiento. 


| RENDIMIENTO 5: ¿Cómo configura la solución de red? | 
| --- | 
|  La solución de red óptima para una carga de trabajo varía según los requisitos de latencia, rendimiento, fluctuaciones y ancho de banda. Las limitaciones físicas, como los recursos de usuario o locales, determinan las opciones de ubicación. Estas limitaciones pueden compensarse con las ubicaciones periféricas o la ubicación de los recursos.  | 

 Debe tener en cuenta la ubicación al desplegar la red. Puede elegir colocar los recursos cerca del lugar en que se usarán para reducir la distancia. Utilice las métricas de red para realizar cambios en la configuración de red a medida que evolucione la carga de trabajo. Su rendimiento puede mejorar significativamente si aprovecha las regiones, los grupos de ubicación y los servicios periféricos. Las redes basadas en la nube se pueden reconstruir o modificar rápidamente, de modo que hacer evolucionar su arquitectura de red con el tiempo resulta necesario para mantener la eficiencia del rendimiento. 

# Efectúe la revisión.
<a name="perf-review"></a>

 Las tecnologías de la nube evolucionan rápidamente y debe asegurarse de que los componentes de la carga de trabajo utilizan las últimas tecnologías y enfoques para mejorar continuamente el rendimiento. Debe evaluar y considerar continuamente los cambios en los componentes de la carga de trabajo para asegurarse de que cumple sus objetivos de rendimiento y coste. Las nuevas tecnologías, como el machine learning y la inteligencia artificial (IA), pueden permitirle rediseñar las experiencias de los clientes e innovar en todas las cargas de trabajo empresariales. 

 Aproveche la innovación continua en AWS impulsada por la necesidad del cliente. Lanzamos regularmente regiones, ubicaciones de borde, servicios y características nuevas. Cualquiera de estos lanzamientos podría mejorar positivamente la eficiencia de rendimiento de su arquitectura. 

 La siguiente pregunta se centra en estas consideraciones para mejorar la eficacia del rendimiento. 


| RENDIMIENTO 6: ¿Cómo desarrolla la carga de trabajo para aprovechar las nuevas versiones? | 
| --- | 
|  Cuando se diseñan cargas de trabajo, hay opciones limitadas entre las que se puede elegir. Sin embargo, con el tiempo, estarán disponibles nuevas tecnologías y enfoques que podrían mejorar el rendimiento de su carga de trabajo.  | 

 El funcionamiento deficiente de las arquitecturas suele ser el resultado de un proceso de revisión del rendimiento inexistente o interrumpido. Si el rendimiento de su arquitectura es deficiente, la implementación de este proceso de revisión de rendimiento le permitirá aplicar el ciclo de mejora continua (PDCA) de Deming para impulsar la mejora iterativa. 

# Supervisión
<a name="perf-monitoring"></a>

 Después de haber implementado la carga de trabajo, necesitará supervisar su rendimiento para poder remediar cualquier problema antes que afecte a sus clientes. Deberían usarse las métricas de monitoreo para generar alarmas cuando se interrumpan los umbrales. 

 Amazon CloudWatch es un servicio de supervisión y observabilidad que le proporciona datos e información procesable para supervisar su carga de trabajo, responder a los cambios de rendimiento en todo el sistema, optimizar la utilización de recursos y obtener una visión unificada del estado operativo. CloudWatch recopila datos de supervisión y operativos en forma de registros, métricas y eventos de las cargas de trabajo que se ejecutan en AWS y en los servidores locales. AWS X-Ray ayuda a los desarrolladores a analizar y depurar las aplicaciones distribuidas de producción. Con AWS X-Ray, puede obtener información sobre el rendimiento de su aplicación y descubrir las causas raíz e identificar los cuellos de botella de rendimiento. Puede usar esta información para reaccionar rápidamente y mantener la ejecución de su carga de trabajo sin problemas. 

 La siguiente pregunta se centra en estas consideraciones para mejorar la eficacia del rendimiento. 


| RENDIMIENTO 7: ¿Cómo supervisa los recursos para garantizar el rendimiento? | 
| --- | 
|  El rendimiento del sistema puede degradarse con el tiempo. Supervise el rendimiento del sistema para identificar este deterioro y remediar factores internos o externos, como el sistema operativo o la carga de aplicaciones.  | 

 Garantizar que no se produzcan falsos positivos es la clave de una solución de supervisión eficaz. Los desencadenadores automáticos evitan errores humanos y pueden reducir el tiempo que lleva solucionar los problemas. Planifique los días de juego, donde se realizan simulaciones en el entorno de producción, para probar su solución de alarma y asegurarse de que reconoce correctamente los problemas. 

# Compensaciones
<a name="perf-tradeoffs"></a>

 Cuando diseñe soluciones, piense en las compensaciones para garantizar un enfoque óptimo. Dependiendo de su situación, podría ceder coherencia, durabilidad y espacio de tiempo o latencia para ofrecer un mayor rendimiento. 

 Mediante AWS, puede globalizarse en pocos minutos y desplegar recursos en varias ubicaciones de todo el mundo para estar más cerca de sus usuarios finales. También puede agregar dinámicamente réplicas de solo lectura a los almacenes de información (como los sistemas de bases de datos) para reducir la carga en la base de datos principal. 

 La siguiente pregunta se centra en estas consideraciones para mejorar la eficacia del rendimiento. 


| RENDIMIENTO 8: ¿Cómo utiliza las compensaciones para mejorar el rendimiento? | 
| --- | 
|  A la hora de diseñar soluciones, la determinación de las compensaciones le permite seleccionar un enfoque óptimo. A menudo, puede mejorar el rendimiento si intercambia la consistencia, durabilidad y espacio para el tiempo y latencia.  | 

 Según vaya aplicando cambios a la carga de trabajo, recopile y evalúe métricas para determinar el efecto de esos cambios. Mida el impacto en el sistema y en el usuario final para comprender cómo las compensaciones afectan a la carga de trabajo. Utilice un enfoque sistemático, como las pruebas de carga, para averiguar si la compensación mejora el rendimiento. 

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

 Consulte los siguientes recursos para obtener más información sobre nuestras prácticas recomendadas en la eficiencia del rendimiento. 

## Documentación
<a name="perf-doc"></a>
+  [Optimización del rendimiento en Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/PerformanceOptimization.html?ref=wellarchitected-wp) 
+  [Rendimiento del volumen en Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSPerformance.html?ref=wellarchitected-wp) 

## Documento técnico
<a name="perf-wp"></a>
+  [Pilar de eficiencia del rendimiento](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html?ref=wellarchitected-wp) 

## Vídeo
<a name="perf-video"></a>
+  [AWS re:Invent 2019: Amazon EC2 foundations (Fundamentos de Amazon EC2) (CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Leadership session: Storage state of the union (Sesión de liderazgo: situación actual del almacenamiento) (STG201-L)](https://www.youtube.com/watch?v=39vAsGi6eEI&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Leadership session: AWS purpose-built databases (Sesión de liderazgo: bases de datos personalizadas de AWS) (DAT209-L)](https://www.youtube.com/watch?v=q81TVuV5u28&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Connectivity to AWS and hybrid AWS network architectures (Conectividad con AWS y arquitecturas de redes de AWS híbridas) (NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Powering next-gen Amazon EC2: Deep dive into the Nitro system (Impulso de Amazon EC2 de nueva generación: profundización en el sistema Nitro) (CMP303-R2)](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected-wp) 
+  [AWS re:Invent 2019: Scaling up to your first 10 million users (Escalado vertical hasta sus primeros 10 millones de usuarios) (ARC211-R)](https://www.youtube.com/watch?v=kKjm4ehYiMs&ref=wellarchitected-wp) 