- Herramientas para desarrolladores›
- Amazon CodeGuru›
- Preguntas frecuentes
Preguntas frecuentes de Amazon CodeGuru
Aspectos generales
¿Qué es Amazon CodeGuru?
CodeGuru tiene dos componentes: Amazon CodeGuru Security y el Generador de perfiles de Amazon CodeGuru. CodeGuru Security es una herramienta basada en el machine learning (ML) y el análisis de programas que encuentra vulnerabilidades de seguridad en su código de aplicación. CodeGuru Security también busca credenciales codificadas. CodeGuru Profiler optimiza el rendimiento de las aplicaciones que se ejecutan en la fase de producción e identifica las líneas de código más costosas, lo que reduce los costos operativos de forma significativa.
¿Cómo se puede comenzar a utilizar Amazon CodeGuru?
CodeGuru ya está disponible de manera general. Puede comenzar ahora mismo en la consola de Amazon CodeGuru.
¿En qué regiones de AWS se encuentra disponible Amazon CodeGuru?
Para ver la lista de las regiones de AWS admitidas, consulte la tabla de regiones de AWS, que contiene información acerca de la infraestructura global de AWS. Para obtener más información, consulte Regiones y puntos de conexión en la Referencia general de AWS.
Amazon CodeGuru Security
¿Qué es Amazon CodeGuru Security?
CodeGuru Security es una herramienta de escaneo de código basada en ML y análisis de programas que encuentra vulnerabilidades de seguridad en su código de aplicación.
¿Qué lenguajes de programación se admiten?
CodeGuru Security actualmente admite el escaneo de Java, Python, JavaScript, TypeScript, C#, CloudFormation, Terraform, Go y Ruby.
¿Qué tipo de problemas detecta CodeGuru Security?
CodeGuru Security detecta los diez problemas principales del Open Worldwide Application Security Project (OWASP), los 25 problemas principales del Common Weakness Enumeration (CWE), inyección de registros, secretos y el uso seguro de las API y SDK de AWS. Consulte la biblioteca de detectores de Amazon CodeGuru para obtener más información sobre las vulnerabilidades detectadas por CodeGuru Security.
¿Cómo se puede comenzar a utilizar CodeGuru Security?
Visite la consola de CodeGuru para integrar CodeGuru Security en su ciclo de vida como desarrollador. Se puede integrar en herramientas de integración y entrega continuas (CI/CD), exploración de repositorios y entornos de desarrollo integrados (IDE).
¿De qué manera CodeGuru Security tiene acceso al código?
CodeGuru Security necesita acceso de solo lectura a su código para generar recomendaciones. Su confianza, privacidad y la seguridad de su contenido son nuestra máxima prioridad. Implementamos los controles adecuados, incluido el cifrado durante el transporte, para evitar el acceso no autorizado a su contenido o su divulgación y garantizar que nuestro uso cumpla con nuestros compromisos con usted. También admitimos las claves KMS del administrador de clientes (CMCMK) para el cifrado. Consulte las Preguntas frecuentes acerca de la privacidad de datos para obtener más información.
¿CodeGuru Security se queda con una copia del código?
No, CodeGuru Security no almacena el código fuente.
¿Cómo se entrena a CodeGuru Security de modo que ofrezca recomendaciones inteligentes?
CodeGuru Security se entrena mediante la minería de reglas y modelos de ML supervisados que utilizan una combinación de regresión logística y redes neuronales. Por ejemplo, durante la formación para detectar la exposición de información confidencial, realiza un análisis completo del código que abarca todas las rutas de código que utilizan el recurso o la información confidencial, crea un conjunto de características que las representan y luego las utiliza como entradas para los modelos de regresión logística y las redes neuronales convolucionales (CNN).
¿Qué integraciones admite CodeGuru Security?
CodeGuru Security está integrado con el escaneo de código de Amazon Inspector para Lambda. Próximamente habrá integraciones adicionales con repositorios y herramientas de CI/CD.
Amazon CodeGuru Profiler
¿Qué es el generador de perfiles de Amazon CodeGuru?
Amazon CodeGuru Profiler ayuda a los desarrolladores y operadores de TI a comprender fácilmente el comportamiento del tiempo de ejecución de las aplicaciones, mejorar el rendimiento y reducir los costos de infraestructura. Amazon CodeGuru Profiler analiza el perfil de tiempo de ejecución de la aplicación y proporciona recomendaciones inteligentes y visualizaciones que guían a los desarrolladores para que puedan mejorar el rendimiento de las partes más relevantes del código.
¿Qué es un grupo de generación de perfiles?
Un grupo de generación de perfiles es una agrupación lógica que usted crea. Representa el límite de una aplicación. Por ejemplo, en una arquitectura de microservicios, un grupo de generación de perfiles combinaría los perfiles de los microservicios que se le han asignado y generaría un perfil para todos ellos.
Ya tengo un proceso completo de registro integrado en el código. ¿Tengo que generar perfiles de todas maneras?
Registrar el tiempo de ejecución solo funciona para un conjunto limitado de situaciones porque el registro solo puede monitorear la latencia (no el uso de la CPU). Además, la implementación requiere de bastante tiempo debido a que los desarrolladores tienen que registrar todas las funciones de una aplicación (sin que ello impacte el rendimiento de la aplicación), lo que deja a los desarrolladores sin las herramientas que necesitan para monitorear y resolver los problemas de las aplicaciones de forma efectiva en la fase de producción. Aquí es donde la generación de perfiles resulta útil: Amazon CodeGuru Profiler está diseñado para recopilar datos acerca de todo lo que ocurrió en el comportamiento de esa aplicación, independientemente de la situación. CodeGuru Profiler utiliza una base de conocimiento de las ineficiencias de rendimiento más comunes para detectar automáticamente patrones de código en la aplicación en funcionamiento que afectan su rendimiento. De tal forma, los desarrolladores pueden seguir las recomendaciones proporcionadas para solucionar los problemas.
¿En qué se diferencia el generador de perfiles de Amazon CodeGuru de las herramientas de administración de rendimiento de aplicaciones tradicionales y de los generadores de perfiles independientes?
Las herramientas de gestión de rendimiento de aplicaciones tradicionales brindan datos útiles acerca del monitoreo, el seguimiento y el rendimiento de las aplicaciones. Amazon CodeGuru Profiler complementa estas capacidades de las herramientas de gestión de rendimiento de aplicaciones al proporcionar visualización de los datos de tiempo de ejecución de la aplicación, así como recomendaciones prácticas para los problemas de rendimiento que detecta. También utiliza el aprendizaje automático para detectar anomalías en el perfil de la aplicación y alertar sobre ellas, para lo que señala las líneas del código anómalas. Amazon CodeGuru Profiler permite ver fácilmente las partes del código que presentan una mayor oportunidad para la optimización del rendimiento, así como ahorros potenciales, y recibir orientación para abordarlas sin necesidad de tener un conocimiento amplio en ingeniería de rendimiento. Amazon CodeGuru Profiler genera perfiles para las instancias EC2, los contenedores y las plataformas de informática sin servidor, incluida AWS Lambda, como así también aquellas en las instalaciones. Además, algunos generadores de perfiles independientes están diseñados para funcionar solo en entornos de prueba, mientras que Amazon CodeGuru Profiler está diseñado para funcionar de forma permanente en la fase de producción, durante las cargas de tráfico de producción y sin afectar el funcionamiento de la aplicación. Esto es útil cuando se trata de solucionar problemas operativos en la etapa de producción, incluidos casos en los que se utilizan alojamientos sin sistema operativo.
¿Sobre qué tipos de aplicaciones se pueden generar perfiles?
Amazon CodeGuru Profiler funciona con aplicaciones alojadas en Amazon EC2, aplicaciones en contenedores que se ejecutan en Amazon ECS y Amazon EKS, así como aplicaciones sin servidor que se ejecutan en AWS Fargate y AWS Lambda. Además, puede ejecutar el Generador de perfiles de Amazon CodeGuru a nivel local
¿Cómo afecta el generador de perfiles de CodeGuru al rendimiento de las aplicaciones alojadas en AWS Lambda?
El agente de Amazon CodeGuru Profiler utiliza los recursos (CPU, memoria) asignados a las funciones de AWS Lambda. Está ajustado para que tenga un impacto mínimo en el rendimiento de la aplicación mientras se ejecuta como un subproceso en curso. Si la aplicación consume la mayoría de los recursos en la función de AWS Lambda, considere aumentar los recursos para permitir que el agente funcione correctamente.
¿Qué lenguajes de programación admite?
Actualmente, CodeGuru Profiler admite Java, Python (versión preliminar) y lenguajes de JVM, como Scala y Kotlin.
¿Cómo funciona el generador de perfiles de Amazon CodeGuru?
El generador de perfiles de Amazon CodeGuru tiene tres partes: un agente, el servicio de generador de perfiles y recomendaciones inteligentes. El agente se inicia con la aplicación en la línea de comandos y se ejecuta como un subproceso en curso como parte de la aplicación. Toma datos de cada una de las instancias de su servicio que ejecutan el agente y los envía al servicio de generador de perfiles cada cinco minutos, donde se agrupan. Amazon CodeGuru Profiler publica los datos del perfil en gráficos de llama interactivos que permiten visualizar el rendimiento de la aplicación. Amazon CodeGuru Profiler también analiza los datos incluidos en perfiles de manera permanente y los compara con las prácticas recomendadas de ingeniería de rendimiento y de Amazon, y envía recomendaciones inteligentes de forma proactiva cuando se detectan problemas de rendimiento. También utiliza el machine learning para analizar de forma continua los datos de tiempo de ejecución de la aplicación y genera alertas cuando detecta anomalías en el perfil de la aplicación, además de señalar las líneas del código anómalas.
¿Para qué recursos genera perfiles el Generador de perfiles de Amazon CodeGuru y cuáles son los lenguajes admitidos?
CodeGuru Profiler genera perfiles para la CPU (CPU activa y tiempo real) y la memoria (resumen de montón) de Java y de otros lenguajes de JVM, y CPU (tiempo real) para aplicaciones de Python.
¿Puedo obtener información de la CPU y de la memoria de la misma aplicación?
Sí, una vez que habilita la generación de perfiles de memoria y comienza a generarlos, CodeGuru Profiler recopilará la información de la CPU y de la memoria para su aplicación. Solo necesita un grupo de generación de perfiles para obtener datos de la CPU y la memoria para una aplicación determinada.
¿Qué tipo de información de generación de perfiles de memoria proporciona el generador de perfiles de Amazon CodeGuru?
CodeGuru Profiler ofrece información de resumen del montón. El resumen del montón ofrece una vista consolidada del uso de la memoria por tipo de objeto (p. ej., string, int, char[]) y tipos personalizados durante un período predeterminado (por lo general, de 5 minutos). CodeGuru Profiler realiza un seguimiento tanto de los tamaños agregados de los objetos como de su recuento. Estas métricas se presentan en un gráfico de línea de tiempo, por lo que puede identificar con facilidad las tendencias y los picos de uso de memoria por tipo de objeto.
¿Qué puedo hacer con la información del resumen del montón?
El resumen del montón es útil para dos situaciones. Primero, puede detectar fugas de memoria potenciales. Una curva de uso de memoria en crecimiento constante de uno o más tipos de objetos puede indicar una fuga, lo que a su vez puede generar errores de falta de memoria y bloqueos de aplicación. El segundo caso es cuando quiere optimizar el espacio ocupado en la memoria de su aplicación. En este caso, el desglose del uso de la memoria por tipo de objeto lo ayudará a saber dónde prestar atención. Por ejemplo, si sabe que una alta e inesperada cantidad de memoria se ha asociado a un tipo de objeto específico, puede enfocar sus tareas de análisis y optimización en las partes de su aplicación que sean responsables de asignar y de hacer referencia a los objetos de este tipo.