PERF02-BP02 Comprender las opciones de configuración informática disponibles - AWS Well-Architected Framework

PERF02-BP02 Comprender las opciones de configuración informática disponibles

Cada solución de computación tiene opciones y configuraciones disponibles para admitir las características de su carga de trabajo. Obtenga información sobre cómo complementan su carga de trabajo las diversas opciones y qué opciones de configuración son mejores para su aplicación. Algunos ejemplos de estas opciones son la familia de instancias, los tamaños, las características (GPU, E/S), la ampliación, los tiempos de espera, los tamaños de función, las instancias de contenedor y la simultaneidad.

Resultado deseado: las características de la carga de trabajo, como la CPU, la memoria, el rendimiento de la red, la GPU, las IOPS, los patrones de tráfico y los patrones de acceso a los datos, se documentan y se utilizan para configurar la solución de computación de forma que se ajuste a las características de la carga de trabajo. Cada una de estas métricas, además de las específicas de su carga de trabajo, se registran, se supervisan y, a continuación, se utilizan para optimizar la configuración de la computación para satisfacer mejor los requisitos.

Patrones de uso no recomendados comunes:

  • Se utiliza la misma solución de computación que se utilizaba localmente.

  • No revisar las opciones de computación o la familia de instancias para que se ajusten a las características de la carga de trabajo.

  • Sobredimensionamiento de la computación para garantizar la capacidad de ampliación.

  • Utiliza varias plataformas de administración de la computación para la misma carga de trabajo.

Beneficios de establecer esta práctica recomendada: Familiarícese con las ofertas de computación de AWS para poder determinar la solución correcta para cada una de sus cargas de trabajo. Después de haber seleccionado las ofertas de computación para su carga de trabajo, puede experimentar rápidamente con ellas para determinar lo bien que satisfacen sus necesidades de carga de trabajo. Una solución de computación optimizada para satisfacer las características de su carga de trabajo aumentará su rendimiento, reducirá su coste y aumentará su fiabilidad.

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

Guía para la implementación

Si su carga de trabajo ha estado utilizando la misma opción de computación durante más de cuatro semanas y prevé que las características seguirán siendo las mismas en el futuro, puede utilizar AWS Compute Optimizer para ofrecerle una recomendación basada en sus características de computación. Si AWS Compute Optimizer no es posible debido a la falta de métricas, un tipo de instancia no admitido o un cambio previsible en sus características, debe entonces predecir sus métricas a partir de pruebas de carga y experimentación. 

Pasos de implementación:

  1. ¿Realiza la ejecución en instancias EC2 o contenedores con el tipo de lanzamiento EC2?

    1. ¿Su carga de trabajo puede utilizar las GPU para aumentar el rendimiento?

      1. Las instancias de computación acelerada son instancias basadas en GPU que proporcionan el mayor rendimiento para el entrenamiento de machine learning, la inferencia y la computación de alto rendimiento.

    2. ¿Su carga de trabajo ejecuta aplicaciones de inferencia de machine learning?

      1. AWS Inferentia (Inf1): las instancias Inf1 se crean para admitir aplicaciones de inferencia de machine learning. Con las instancias Inf1, los clientes pueden ejecutar aplicaciones de inferencia de machine learning a gran escala, como el reconocimiento de imágenes, reconocimiento de voz, procesamiento de lenguaje natural, personalización y detección de fraude. Puede crear un modelo en uno de los marcos populares de machine learning, como TensorFlow, PyTorch o MXNet y utilizar instancias de GPU, para entrenar su modelo. Después de que su modelo de machine learning se haya entrenado para satisfacer sus necesidades, puede desplegar el modelo en instancias Inf1 mediante AWS Neuron, un kit de desarrollo de software (SDK) especializado que consiste en un compilador, un módulo de tiempo de ejecución y herramientas de perfilado que optimizan el rendimiento de la inferencia de machine learning de los chips Inferentia.

    3. ¿Su carga de trabajo se integra con el hardware de bajo nivel para mejorar el rendimiento? 

      1. Matrices de puertas programables en campo (FPGA): con FPGA, puede optimizar las cargas de trabajo mediante la ejecución personalizada y acelerada por hardware de las cargas de trabajo más exigentes. Puede definir sus algoritmos utilizando lenguajes de programación generales compatibles como C o Go, o bien lenguajes orientados a hardware como Verilog o VHDL.

    4. ¿Tiene al menos cuatro semanas de métricas y puede predecir que su patrón de tráfico y sus métricas se mantendrán más o menos igual en el futuro?

      1. Uso Compute Optimizer para obtener una recomendación de machine learning sobre qué configuración de computación se ajusta mejor a sus características de computación.

    5. ¿El rendimiento de su carga de trabajo está limitado por las métricas de CPU? 

      1. Las instancias optimizadas para la computación son ideales para las cargas de trabajo que requieren procesadores de alto rendimiento. 

    6. ¿El rendimiento de su carga de trabajo está limitado por las métricas de memoria? 

      1. Las instancias optimizadas para memoria ofrecen grandes cantidades de memoria para admitir cargas de trabajo que hacen un uso intensivo de la memoria.

    7. ¿El rendimiento de su carga de trabajo está limitado por IOPS?

      1. Las instancias optimizadas para almacenamiento están diseñadas para cargas de trabajo que requieren un alto acceso secuencial de lectura y escritura (IOPS) al almacenamiento local.

    8. ¿Las características de su carga de trabajo representan una necesidad equilibrada en todas las métricas?

      1. ¿La CPU de su carga de trabajo necesita ampliares para hacer frente a los picos de tráfico?

        1. Las instancias de rendimiento ampliable son similares a las instancias optimizadas para computación, salvo que ofrecen la posibilidad de ampliar la base de referencia de CPU fija identificada en una instancia optimizada para la computación.

      2. Las instancias de uso general proporcionan un equilibrio de todas las características para admitir diversas cargas de trabajo.

    9. ¿Su instancia de computación se ejecuta en Linux y está limitada por el rendimiento de la red en la tarjeta de interfaz de red?

      1. Efectúe la revisión. la pregunta de rendimiento 5, práctica recomendada 2: Evaluar las características de las redes disponibles para encontrar el tipo y la familia de instancias adecuados para satisfacer sus necesidades de rendimiento.

    10. ¿Su carga de trabajo necesita instancias coherentes y predecibles en una zona de disponibilidad específica a la que pueda comprometerse durante un año? 

      1. Instancias reservadas confirma las reservas de capacidad en una zona de disponibilidad específica. Las instancias reservadas son ideales para la potencia de computación requerida en una zona de disponibilidad específica. 

    11. ¿Su carga de trabajo tiene licencias que requieren un hardware dedicado?

      1. Hosts dedicados admiten las licencias de software existentes y le ayudan a cumplir los requisitos de cumplimiento.

    12. ¿Su solución de computación se amplía y requiere un procesamiento síncrono?

      1. Las instancias bajo demanda le permiten utilizar la capacidad de computación por horas o por segundos sin compromiso a largo plazo. Estas instancias son adecuadas para la ampliación por encima de las necesidades de la base de referencia de rendimiento.

    13. ¿Su solución de computación no tiene estado, tiene tolerancia a los errores y es asíncrona? 

      1. Instancias de spot le permiten aprovechar la capacidad de instancia no utilizada para sus cargas de trabajo sin estado y tolerantes a errores. 

  2. ¿Ejecuta contenedores en Fargate?

    1. ¿El rendimiento de su tarea está limitado por la memoria o la CPU?

      1. Use el tamaño de tarea para ajustar su memoria o CPU.

    2. ¿Se está viendo afectado su rendimiento por las ampliaciones de los patrones de tráfico?

      1. Use la configuración de Auto Scaling para establecer la correspondencia con los patrones de tráfico.

  3. ¿Su solución de computación está en Lambda?

    1. ¿Tiene al menos cuatro semanas de métricas y puede predecir que su patrón de tráfico y sus métricas se mantendrán más o menos igual en el futuro?

      1. Uso Compute Optimizer para obtener una recomendación de machine learning sobre qué configuración de computación se ajusta mejor a sus características de computación.

    2. ¿No tiene suficientes métricas para utilizar AWS Compute Optimizer?

      1. Si no tiene métricas disponibles para usar Compute Optimizer, utilice Ajuste de potencia de AWS Lambda para seleccionar la mejor configuración.

    3. ¿El rendimiento de su función está limitado por la memoria o la CPU?

      1. Configure su memoria de Lambda para cumplir las métricas de necesidades de rendimiento.

    4. ¿Se agota el tiempo de ejecución de su función al ejecutarse?

    5. ¿El rendimiento de sus funciones está limitado por las ampliaciones de actividad y la simultaneidad? 

      1. Configure las opciones de simultaneidad para cumplir los requisitos de rendimiento.

    6. ¿Su función se ejecuta de forma asíncrona y se producen errores en los reintentos?

      1. Configure la duración máxima del evento y el límite máximo de reintentos en las opciones de configuración asíncrona .

Nivel de esfuerzo para el plan de implementación: 

Para establecer esta práctica recomendada, debe conocer sus características y métricas de computación actuales. Reunir esas métricas, establecer una línea de referencia y luego usar esas métricas para identificar la opción de computación ideal es un nivel de esfuerzo de bajo to moderado . La mejor forma de validarlo es mediante pruebas de carga y experimentación.

Recursos

Documentos relacionados:

Vídeos relacionados:

Ejemplos relacionados: