Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Lambda Optimization & Tuning

Lino Espinoza
September 24, 2023
28

AWS Lambda Optimization & Tuning

Tips, mejores prácticas y herramientas para lograr que tus lambdas tengan la mejor performance

Lino Espinoza

September 24, 2023
Tweet

Transcript

  1. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados .
  2. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . © 2023, UG Peru Cloud, AWS User Group Perú y sus afiliadas. Todos los derechos reservados . AWS Lambda Optimization & Tuning Level 200 SESSION ID (531842) Tips, mejores prácticas y herramientas para lograr que tus lambdas tengan la mejor performance
  3. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Acerca de mi Lino Espinoza Technical Lead at Kushki, 3x AWS Certified Papá, amante del buen café Amante y evangelista del mundo serverless. Javascript & Typescript lover. <3
  4. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Agenda • AWS Lambda: Lo básico • Mejores prácticas en optimización para AWS Lambda • Tips & Herramientas • Mejores prácticas
  5. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Lambda • Serverless (funciona sin provisionar o administrar infraestructura) • Escalamiento automático • Pagas sólo por la capacidad de cómputo que usas • Soporta varios casos de uso ▪ Procesamiento de data a escala ▪ Web y mobile backends ▪ Cargas de trabajo de ML ▪ Aplicaciones basadas en eventos (EDA)
  6. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Lambda • Está basado en memoria, mientras más memoria consumes, lo mismo con el cpu • AWS te cobra por GB x segundos • Considera que una tamaño pequeño, no necesariamente significa más barato
  7. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Anatomía de una función lambda Handler Event (object) Context (object) Función a ejecutarse después de la invocación Contiene la data enviada durante la invocación de la lambda Metadata para obtener info del runtime (request ID, authorizers, log group, entre otros)
  8. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Ciclo de vida Lambda
  9. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Lambda (Invocation)
  10. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Tip #1 - Usar AWS Xray Habilitar Xray para obtener información de la performance actual de las lambdas const AWSXRay = require('aws-xray-sdk-core'); const AWS = AWSXRay.captureAWS(require('aws-sdk')); // Capture all outgoing https requests AWSXRay.captureHTTPsGlobal(require('https')); const https = require('https'); https://github.com/aws-samples/aws-xray-sdk-node-sample
  11. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Tip #1 - AWS Xray Trace Sample
  12. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Tip #2 AWS Lambda con CPU Graviton2 https://aws.amazon.com/blogs/aws/aws-lambda-functions-powered-by-aws-graviton2-processor -run-your-functions-on-arm-and-get-up-to-34-better-price-performance/
  13. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Oportunidades de optimización Latency Throughput Cost
  14. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Lambda Provisioned Concurrency Concurrency: Es el número de requests que tu función puede manejar al mismo tiempo Reserved Concurrency: Es el máximo número de instancias concurrentes que quieres habilitar para tu función lambda. Esto no incurre en costos. Provisioned Concurrency: Es el número de entornos de ejecución pre-inicializadas que quieres habilitar para tu función lambda. Si incurre en costos.
  15. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Lambda Provisioned Concurrency
  16. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Lambda Power Tuning • Optimización de costos y performance para AWS Lambda (data-driven) • Step Function de fácil disponibilidad y lambda agnostic. • Fácil de integrar en los pipelines de integración y despliegue continuo, • Comparación entre 2 lambdas
  17. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . https://github.com/alexcasalboni/aws-lambda-power-tuning AWS Lambda Power Tuning
  18. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Lambda Power Tuning (Input) { "lambdaARN": "your-lambda-function-arn", "powerValues": [128, 256, 512, 1024], "num": 50, "payload": {} }
  19. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Lambda Power Tuning (Output) { "results": { "power": "128", "cost": 0.0000002083, "duration": 2.906, "stateMachine": { "executionCost": 0.00045, "lambdaCost": 0.0005252, "visualization": "https://lambda-power-tuning.show/#<encoded_data>" } } }
  20. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Lambda Power Tuning (Gráfico)
  21. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Mejores prácticas Evitar funciones monolíticas Optimiza dependencias (imports) Minify, uglify código productivo
  22. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . Mejores prácticas Lambdas para transformar data, no transportar Descarta eventos que no utilizas Lambda Destinations Tuning correcto de las lambdas Cuidado con los retry policies
  23. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . The world is asynchronous Dr. Werner Vogels VP & CTO of Amazon.com
  24. © 2023, UG Peru Cloud, AWS User Group Perú y

    sus afiliadas. Todos los derechos reservados . AWS Serverless User Group Latam