Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Consideraciones sobre el diseño
En esta sección, se describen las decisiones de diseño y las opciones de configuración importantes para la solución Distributed Load Testing on AWS, incluidas las aplicaciones compatibles, los tipos de pruebas, las opciones de programación y las consideraciones de implementación.
Aplicaciones compatibles
Esta solución permite probar aplicaciones basadas en la nube y aplicaciones locales siempre que tenga conectividad de red desde su cuenta de AWS a su aplicación. La solución es compatible con las API que utilizan protocolos HTTP o HTTPS.
Tipos de pruebas
Las pruebas de carga distribuidas en AWS admiten varios tipos de pruebas: pruebas de punto final HTTP simples, JMeter, K6 y Locust.
nota
La solución distribuye JMeter, K6 y Locust como componentes de terceros sin modificaciones. Para conocer las consideraciones de seguridad, las opciones de aplicación de parches y la información sobre licencias, consulte los marcos de pruebas. Third-party
Pruebas sencillas de puntos finales HTTP
La consola web proporciona una interfaz de configuración de puntos finales HTTP que permite probar cualquier punto final HTTP o HTTPS sin necesidad de escribir scripts personalizados. Defina la URL del punto final, seleccione el método HTTP (GET, POST, PUT, DELETE, etc.) en un menú desplegable y, si lo desea, añada encabezados de solicitud y cargas útiles de cuerpo personalizados. Esta configuración te permite probar las API con tokens de autorización personalizados, tipos de contenido o cualquier otro encabezado HTTP y cuerpo de solicitud que requiera tu aplicación.
Al configurar un punto final HTTP, la solución convierte la configuración en un plan de pruebas que se ejecuta mediante el binario JMeter de Apache incluido a través del marco Taurus. Las pruebas simples de HTTP Endpoint no aceptan un archivo de prueba, por lo que no pueden anular el binario o los complementos de JMeter incluidos. Si necesita ejecutar pruebas de punto final HTTP con un JMeter parcheado, utilice el tipo de prueba JMeter en su lugar. Para conocer las consideraciones de seguridad, consulte Apache JMeter.
Pruebas de JMeter
Al crear un escenario de prueba mediante la consola web, puede cargar un script de prueba de JMeter. La solución carga el script en el depósito S3 del escenario. Cuando se ejecutan las tareas de Amazon ECS, descargan el script JMeter de S3 y ejecutan la prueba.
importante
Si bien su script de JMeter puede definir la simultaneidad (usuarios virtuales), las tasas de transacción (TPS), los tiempos de aceleración y otros parámetros de carga, la solución anulará estas configuraciones con los valores que especifique en la pantalla Traffic Shape durante la creación de la prueba. La configuración de Traffic Shape controla el recuento de tareas, la simultaneidad (usuarios virtuales por tarea), la duración del aumento y el tiempo de espera de la ejecución de la prueba.
Si tiene archivos de entrada de JMeter, puede comprimirlos junto con el script de JMeter. Puede elegir el archivo zip al crear un escenario de prueba.
Si desea incluir complementos, cualquier archivo.jar que esté incluido en un subdirectorio /plugins del archivo zip incluido se copiará en el directorio de extensiones de JMeter y estará disponible para las pruebas de carga.
nota
Si incluye archivos de entrada de JMeter en su archivo de script de JMeter, debe incluir la ruta relativa de los archivos de entrada en su archivo de script de JMeter. Además, los archivos de entrada deben estar en la ruta relativa. Por ejemplo, si los archivos de entrada y el archivo de script de JMeter están en el home/user directorio/y usted hace referencia a los archivos de entrada del archivo de script de JMeter, la ruta de los archivos de entrada debe estar. /INPUT_FILES. Si usa/home/user/INPUT_FILES en su lugar, la prueba fallará porque no podrá encontrar los archivos de entrada.
Si incluye los complementos de JMeter, los archivos.jar deben estar agrupados en un subdirectorio denominado /plugins dentro de la raíz del archivo zip. En relación con la raíz del archivo zip, la ruta a los archivos jar debe ser. /plugins/BUNDLED_PLUGIN.jar.
Para obtener más información sobre cómo utilizar los scripts de JMeter, consulte el Manual del usuario de JMeter
Pruebas de K6
La solución admite las pruebas basadas en el marco K6. Puede cargar el archivo de prueba K6 junto con cualquier archivo de entrada necesario en un archivo de almacenamiento. La consola web muestra un mensaje de confirmación de licencia al crear una nueva prueba de K6; para obtener información sobre la licencia y la seguridad, consulte Grafana K6.
importante
Si bien su script K6 puede definir la simultaneidad (usuarios virtuales), las etapas, los umbrales y otros parámetros de carga, la solución anulará estas configuraciones con los valores que especifique en la pantalla Traffic Shape durante la creación de la prueba. La configuración de Traffic Shape controla el recuento de tareas, la simultaneidad (usuarios virtuales por tarea), la duración de la aceleración y la duración de la espera durante la ejecución de la prueba.
Pruebas de langostas
La solución es compatible con las pruebas basadas en el marco Locust. Puede cargar el archivo de prueba de Locust junto con los archivos de entrada necesarios en un archivo de almacenamiento.
importante
Si bien su script de Locust puede definir la simultaneidad (número de usuarios), la velocidad de aparición y otros parámetros de carga, la solución anulará estas configuraciones con los valores que especifique en la pantalla Traffic Shape durante la creación de la prueba. La configuración de Traffic Shape controla el recuento de tareas, la simultaneidad (usuarios virtuales por tarea), la duración de la aceleración y la duración de la espera durante la ejecución de la prueba.
Programar pruebas
La solución ofrece tres opciones de temporización de ejecución para ejecutar pruebas de carga:
-
Ejecutar ahora: ejecuta la prueba de carga inmediatamente después de la creación
-
Ejecutar una vez: ejecute la prueba en una fecha y hora específicas en el futuro
-
Ejecute según un cronograma: cree pruebas recurrentes utilizando expresiones cron para definir el cronograma
Al seleccionar Ejecutar una vez, se especifica el tiempo de ejecución en formato de 24 horas y la fecha de ejecución en la que debe empezar a ejecutarse la prueba de carga.
Al seleccionar Ejecutar según una programación, puede introducir manualmente una expresión cron o seleccionar uno de los patrones cron más comunes (por ejemplo, cada hora, todos los días a una hora específica, los días de la semana o todos los meses). La expresión cron utiliza un formato de programación detallado con campos para los minutos, las horas, el día del mes, el mes, el día de la semana y el año. También debe especificar una fecha de caducidad, que defina cuándo debe dejar de ejecutarse la prueba programada. Para obtener más información sobre cómo funciona la programación, consulte la sección Flujo de trabajo de programación de pruebas de esta guía.
nota
-
Duración de la prueba: tenga en cuenta la duración total de las pruebas al programarlas. Por ejemplo, una prueba con un tiempo de preparación de 10 minutos y un tiempo de espera de 40 minutos tardará aproximadamente 80 minutos en completarse.
-
Intervalo mínimo: asegúrese de que el intervalo entre las pruebas programadas sea superior a la duración estimada de la prueba. Por ejemplo, si la prueba dura unos 80 minutos, prográmela para que no se ejecute con más frecuencia que cada 3 horas.
-
Limitación horaria: el sistema no permite programar las pruebas con una diferencia de solo una hora, incluso si la duración estimada de la prueba es inferior a una hora.
Pruebas simultáneas
Esta solución crea un CloudWatch panel de Amazon para cada prueba que muestra el resultado combinado de todas las tareas que se ejecutan en el clúster de Amazon ECS en tiempo real. El CloudWatch panel muestra el tiempo medio de respuesta, el número de usuarios simultáneos, el número de solicitudes satisfactorias y el número de solicitudes fallidas. La solución agrega cada métrica por segundo y actualiza el panel cada minuto.
Administración de usuarios
Durante la configuración inicial, debe proporcionar un nombre de usuario y una dirección de correo electrónico que Amazon Cognito utiliza para concederle acceso a la consola web de la solución. La consola no proporciona administración de usuarios. Para añadir usuarios adicionales, debe utilizar la consola de Amazon Cognito. Para obtener más información, consulte Administración de usuarios en grupos de usuarios en la Guía para desarrolladores de Amazon Cognito.
Para migrar los usuarios existentes a los grupos de usuarios de Amazon Cognito, consulte el blog de AWS Approaches para migrar usuarios a los grupos de usuarios de Amazon Cognito
Federación de proveedores de identidades
El grupo de usuarios de Amazon Cognito de la solución admite la federación con proveedores de identidad externos (IdPs) mediante los protocolos SAML 2.0 u OpenID Connect (OIDC). La federación permite a los usuarios iniciar sesión en la consola web con sus credenciales corporativas u organizativas existentes en lugar de con sus credenciales. Cognito-native Los usuarios federados reciben los mismos permisos de acceso que los usuarios creados directamente en el grupo de usuarios de Cognito.
La solución ya implementa el grupo de usuarios, el dominio, el cliente de aplicaciones y la interfaz de usuario alojada de Cognito. Para habilitar la federación, solo necesita registrar su proveedor de identidad y habilitarlo en el cliente de aplicaciones existente.
Si implementa la integración opcional del servidor MCP, los usuarios federados también pueden acceder al servidor MCP con las mismas credenciales del grupo de usuarios de Cognito.
Requisitos previos
Antes de configurar la federación, necesita lo siguiente:
-
Un proveedor de identidad externo que admita SAML 2.0 u OIDC
-
Acceso de administrador para configurar el IDP externo (para configurar los URI de redireccionamiento o las URL de ACS)
-
El ID del grupo de usuarios de Cognito de la solución (disponible en los recursos de la CloudFormation pila o en la consola de Amazon Cognito)
-
El prefijo de dominio de Cognito de la solución (disponible en las salidas de la CloudFormation pila o en la consola de Cognito en Integración de aplicaciones > Dominio)
Paso 1: Configure su proveedor de identidad
Configure su proveedor de identidad externo con los siguientes valores para que pueda comunicarse con el grupo de usuarios de Cognito de la solución.
Para los proveedores de identidades SAML:
-
ID de entidad SP:
urn:amazon:cognito:sp:_<UserPoolId>_ -
URL DE ACS:
\https://<cognito-domain>.auth.<region>.amazoncognito.com/saml2/idpresponse
Para los proveedores de identidad del OIDC:
-
URI de redireccionamiento:
\https://<cognito-domain>.auth.<region>.amazoncognito.com/oauth2/idpresponse
Para obtener más información sobre lo que necesita su IdP, consulte Añadir proveedores de identidad de SAML a un grupo de usuarios o Añadir proveedores de identidad de OIDC a un grupo de usuarios en la Guía para desarrolladores de Amazon Cognito.
Paso 2: Registrar el proveedor de identidad en Cognito
Añada su proveedor de identidad externo al grupo de usuarios de Cognito existente en la solución mediante la consola de Amazon Cognito.
Para obtener instrucciones paso a paso, consulte Añadir el inicio de sesión en un grupo de usuarios a través de un tercero en la Guía para desarrolladores de Amazon Cognito.
Paso 3: Configurar las asignaciones de atributos
Configure las asignaciones de atributos entre las afirmaciones de su proveedor de identidad y los atributos del grupo de usuarios de Cognito. Como mínimo, asigne la notificación por correo electrónico del usuario del proveedor externo al atributo Cognitoemail. Considere también la posibilidad de mapearlos name o nickname si su proveedor de identidad los proporciona.
Para obtener instrucciones, consulte Especificar las asignaciones de atributos de proveedores de identidad para su grupo de usuarios en la Guía para desarrolladores de Amazon Cognito.
Paso 4: Habilite el proveedor de identidad en el cliente de la aplicación
En la consola de Amazon Cognito, busque el cliente de aplicaciones creado por la solución y active su nuevo proveedor de identidad en la configuración de la interfaz de usuario alojada.
Para obtener instrucciones, consulte Configuración de un cliente de aplicaciones para grupos de usuarios en la Guía para desarrolladores de Amazon Cognito.
nota
La solución ya configura las URL de devolución y cierre de sesión del cliente de la aplicación, los ámbitos de OAuth y el dominio de la interfaz de usuario alojada. No es necesario que modifique esta configuración, solo habilite su proveedor de identidad en el cliente de la aplicación existente.
importante
La solución omite intencionadamente la SupportedIdentityProviders propiedad de la configuración del cliente de la CloudFormation aplicación. Esto le permite añadir proveedores de identidad después de la implementación sin activar CloudFormation la detección de desviaciones. Si esta propiedad se estableciera en la plantilla, cualquier cambio manual de IdP realizado a través de la consola o la CLI se sobrescribiría en la siguiente actualización de la pila, lo que revertiría el cliente de la aplicación a solo los proveedores que figuran en la plantilla.
Como se omite esta propiedad, CloudFormation no rastrea ni administra qué proveedores de identidad están habilitados en el cliente de la aplicación. Después de configurar la federación, usted es responsable de administrar el contenido del cliente SupportedIdentityProviders de la aplicación. Para supervisar los cambios no autorizados, habilite el CloudTrail registro de AWS y cree EventBridge reglas de Amazon para alertar CreateIdentityProvider y realizar llamadas a la UpdateUserPoolClient API dirigidas al grupo de usuarios de Cognito de la solución.
nota
-
Añadir un proveedor de identidad externo no elimina la posibilidad de que Cognito-native los usuarios existentes inicien sesión con sus credenciales actuales.
-
Los usuarios federados están sujetos a las mismas restricciones de disponibilidad regional que el grupo de usuarios de Cognito. Para obtener más información, consulte Implementación regional.
-
Pruebe el inicio de sesión federado con un grupo pequeño de usuarios antes de implementarlo en su organización.
Inhabilitar o eliminar el usuario predeterminado de Cognito
Tras configurar la federación, es posible que desee deshabilitar o eliminar el usuario predeterminado que se creó durante la implementación de la pila. Esto es opcional: el usuario predeterminado sigue trabajando junto con el inicio de sesión federado.
Para deshabilitar a un usuario, vaya al grupo de usuarios de Cognito de la solución en la consola de Amazon Cognito, seleccione la pestaña Usuarios, elija el usuario y, a
Para obtener más información, consulte Administración y búsqueda de cuentas de usuario en la Guía para desarrolladores de Amazon Cognito.
Implementación regional
Esta solución utiliza Amazon Cognito, que solo está disponible en regiones específicas de AWS. Por lo tanto, debe implementar esta solución en una región en la que Amazon Cognito esté disponible. Para obtener la disponibilidad de servicios más reciente por región, consulte la lista de servicios regionales de AWS