Tutorial: Configuración de una aplicación con escalado y balanceo de carga aplicados - Amazon EC2 Auto Scaling

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.

Tutorial: Configuración de una aplicación con escalado y balanceo de carga aplicados

importante

Antes de explorar este tutorial, le recomendamos que consulte primero el siguiente tutorial introductorio: Cree su primer grupo de Auto Scaling.

Registrar el grupo de Auto Scaling con un balanceador de carga Elastic Load Balancing ayuda a configurar una aplicación con balanceo de carga. Elastic Load Balancing funciona con Amazon EC2 Auto Scaling para distribuir el tráfico entrante entre las instancias de Amazon EC2 en buen estado. Esto aumenta la escalabilidad y disponibilidad de la aplicación. Puede habilitar Elastic Load Balancing dentro de varias zonas de disponibilidad para aumentar la tolerancia a errores de sus aplicaciones.

En este tutorial, tratamos los pasos básicos para configurar una aplicación con balanceo de carga al crear el grupo de Auto Scaling. Cuando haya finalizado, la arquitectura debe ser similar a la del diagrama siguiente:

Un grupo de Auto Scaling con un Application Load Balancer.

Elastic Load Balancing admite distintos tipos de equilibradores de carga. Le recomendamos que utilice un Application Load Balancer para este tutorial.

Para obtener más información sobre cómo ingresar un balanceador de carga en la arquitectura, consulte Utilizar Elastic Load Balancing para distribuir el tráfico entre las instancias de un grupo de Auto Scaling.

Requisitos previos

  • Un balanceador de carga y grupo de destino. Asegúrese de elegir las mismas zonas de disponibilidad para el balanceador de carga que tiene previsto utilizar para su grupo de Auto Scaling. Para obtener más información, consulte Introducción a Elastic Load Balancing en la Guía del usuario de Elastic Load Balancing.

  • Un grupo de seguridad para la plantilla o configuración de lanzamiento. El grupo de seguridad debe permitir el acceso desde el balanceador de carga en el puerto del agente de escucha (normalmente el puerto 80 para tráfico HTTP) y el puerto que desea que utilice Elastic Load Balancing para comprobaciones de estado. Para obtener más información, consulte la documentación aplicable:

    Opcionalmente, si las instancias tendrán direcciones IP públicas, puede permitir tráfico SSH si necesita conectarse a las instancias.

  • (Opcional) Un rol de IAM al que se le conceda acceso a AWS su aplicación.

  • (Opcional) Una Amazon Machine Image (AMI) definida como plantilla de origen de las instancias de Amazon EC2. Para crear una, lance una instancia. Especifique el rol de IAM (si ha creado uno) y todos los scripts de configuración que necesite como datos de los usuarios. Conéctese a la instancia y personalícela. Por ejemplo, puede instalar software y aplicaciones, copiar datos y adjuntar volúmenes de EBS adicionales. Pruebe la aplicación en la instancia para asegurarse de que se ha configurado correctamente. Guarde esta configuración actualizada como una AMI personalizada. Puede terminar la instancia si no la necesita más tarde. Las instancias que se lancen desde la nueva AMI personalizada incluirán todas las configuraciones que definió al crearla.

  • Una nube virtual privada (VPC). Este tutorial hace referencia a la VPC predeterminada, pero puede utilizar una propia. Si utiliza supropia VPC, asegúrese de que tiene una subred asignada a cada zona de disponibilidad de la región de en la que esté trabajando. Como mínimo, debe tener dos subredes públicas disponibles para crear el balanceador de carga. También debe tener dos subredes privadas o dos subredes públicas para crear el grupo de Auto Scaling y registrarlo en el balanceador de carga.

Paso 1: Configurar una plantilla de lanzamiento o una configuración de lanzamiento

Utilice una plantilla de lanzamiento o una configuración de lanzamiento para este tutorial.

Seleccione o cree una plantilla de lanzamiento

Si ya tiene una plantilla de lanzamiento que desee utilizar, selecciónela con el siguiente procedimiento.

Para seleccionar una plantilla de lanzamiento existente
  1. Abra la página Launch templates (Plantillas de lanzamiento) de la consola de Amazon EC2.

  2. En la barra de navegación de la parte superior de la pantalla, elija la región donde se creó el balanceador de carga.

  3. Seleccione una plantilla de lanzamiento.

  4. Elija Actions (Acciones), Create an Auto Scaling group (Crear un grupo de Auto Scaling).

También puede crear una nueva plantilla de lanzamiento mediante el siguiente procedimiento.

Para crear una plantilla de lanzamiento
  1. Abra la página Launch templates (Plantillas de lanzamiento) de la consola de Amazon EC2.

  2. En la barra de navegación de la parte superior de la pantalla, elija la región donde se creó el balanceador de carga.

  3. Elija Crear plantilla de inicialización.

  4. Escriba un nombre y una descripción para la versión inicial de la plantilla de lanzamiento.

  5. En Application and OS Images (Amazon Machine Image) (Imágenes de aplicaciones y SO [imagen de máquina de Amazon]), elija el ID de la AMI para las instancias. Puede buscar en todas las AMI disponibles o seleccionar una AMI en la lista Recents (Recientes) o Quick Start (Inicio rápido). Si no ve la AMI que necesita, elija Browse more AMIs (Buscar más AMI) para navegar por el catálogo completo de AMI.

  6. En Instance type, seleccione una configuración de hardware de sus instancias que sea compatible con la AMI que ha especificado.

  7. (Opcional) En Key pair (login) (Par de claves [inicio de sesión]), elija el par de claves que va a usar al conectarse a sus instancias.

  8. En Network settings (Configuración de red), expanda Advanced network configuration (Configuración avanzada de red) y proceda del modo siguiente:

    1. Elija Add network interface (Agregar interfaz de red) para configurar la interfaz de red principal.

    2. En Asignar automáticamente una IP pública, especifica si tus instancias reciben direcciones IPv4 públicas. De forma predeterminada, Amazon EC2 asigna una dirección IPv4 pública si la instancia EC2 se lanza en una subred predeterminada o si la instancia se lanza en una subred que se ha configurado para asignar automáticamente una dirección IPv4 pública. Si no necesita conectarse a sus instancias, puede elegir Inhabilitar para evitar que las instancias de su grupo reciban tráfico directamente de Internet. En este caso, recibirán tráfico solo desde el balanceador de carga.

    3. Para Security group ID (ID de grupo de seguridad), especifique un grupo de seguridad para las instancias de la misma VPC que el balanceador de carga.

    4. Para Delete on termination (Eliminar al terminar), elija Yes (Sí). Esto elimina la interfaz de red cuando el grupo de Auto Scaling escala, y termina la instancia a la que la interfaz de red está asociada.

  9. (Opcional) Para distribuir de forma segura credenciales a las instancias, en Advanced details (Detalles avanzados), IAM instance profile (Perfil de instancia de IAM), escriba el Nombre de recurso de Amazon (ARN) de su rol de IAM.

  10. (Opcional) Para especificar los datos de usuario o un script de configuración para las instancias, pegue los datos o el script en Advanced details, User data.

  11. Elija Crear plantilla de inicialización.

  12. En la página de confirmación, elija Create Auto Scaling group (Crear grupo de Auto Scaling).

Seleccionar o crear una configuración de lanzamiento

nota

Desaconsejamos encarecidamente el uso de configuraciones de lanzamiento en aplicaciones nuevas porque se trata de una función antigua que no requiere una inversión planificada. Además, las cuentas nuevas que se creen a partir del 1 de junio de 2023 no tendrán la opción de crear nuevas configuraciones de lanzamiento a través de la consola. Para obtener más información, consulte Configuraciones de lanzamiento.

Para seleccionar una configuración de lanzamiento existente
  1. Abra la página Launch configurations (Configuraciones de lanzamiento) de la consola de Amazon EC2.

  2. En la barra de navegación de la parte superior, elija la región donde se creó el equilibrador de carga.

  3. Seleccione una configuración de lanzamiento.

  4. Elija Actions (Acciones), Create an Auto Scaling group (Crear un grupo de Auto Scaling).

También puede crear una nueva configuración de lanzamiento mediante el siguiente procedimiento.

Para crear una configuración de lanzamiento
  1. Abra la página Launch configurations (Configuraciones de lanzamiento) de la consola de Amazon EC2. Cuando se le pida confirmación, elija Ver configuraciones de lanzamiento para confirmar que desea ver la página Configuraciones de lanzamiento.

  2. En la barra de navegación de la parte superior, elija la región donde se creó el equilibrador de carga.

  3. Elija Crear una configuración de lanzamiento, e ingrese un nombre para la configuración de lanzamiento.

  4. Para Amazon Machine Image (AMI), ingrese el ID de la AMI de sus instancias como criterio de búsqueda.

  5. En el paso Instance Type (Tipo de instancias), seleccione la configuración de hardware de la instancia.

  6. En Additional configuration (Configuración adicional), preste atención a los campos siguientes:

    1. (Opcional) Para distribuir de forma segura credenciales a la instancia EC2, para perfil de instancias de IAM, seleccione su rol de IAM. Para obtener más información, consulte Rol de IAM para aplicaciones que se ejecuten en instancias de Amazon EC2.

    2. (Opcional) Para especificar los datos de usuario o un script de configuración para la instancia, pegue los datos o el script en Advanced details (Detalles avanzados), User data (Datos de usuario.

    3. (Opcional) En Advanced Details (Detalles avanzados), IP Address Type (Tipo de dirección IP), mantenga el valor predeterminado. Al crear el grupo de Auto Scaling, puede asignar una dirección IP pública a instancias del grupo de Auto Scaling mediante subredes que tengan habilitado el atributo de direccionamiento de IP públicas, como las subredes predeterminadas de la VPC predeterminada. Alternativamente, si no necesita conectarse a sus instancias, puede elegir Do not assign a public IP address to any instances (No asignar una dirección IP pública a ninguna instancia) para evitar que las instancias del grupo reciban tráfico directamente desde internet. En este caso, recibirán tráfico solo desde el balanceador de carga.

  7. Para Grupos de seguridad, elija un grupo de seguridad existente de la misma VPC que el balanceador de carga. Si mantiene la opción Create a new security group (Crear un nuevo grupo de seguridad) seleccionada, se configura una regla SSH predeterminada para instancias Amazon EC2 que ejecutan Linux. Se configura una regla de RDP predeterminada para instancias de Amazon EC2 que ejecutan Windows.

  8. Para Key pair (login) (Par de claves [inicio de sesión]), elija una opción en Key pair options (Opciones de par de claves).

    Si ya ha configurado un par de claves de la instancia de Amazon EC2, puede elegirlo aquí.

    Si aún no tiene un par de claves de instancia de Amazon EC2, elija Create a new key pair (Crear un nuevo par de claves) y asígnele un nombre fácil de reconocer. Elija Download Key Pair (Descargar par de claves) para descargar el par de claves en su equipo.

    importante

    No elija Proceed without a key pair (Continuar si un par de claves) si necesita establecer conexión con las instancias.

  9. Seleccione la casilla de confirmación y, a continuación, elija Create launch configuration.

  10. Seleccione el cuadro de verificación situada junto al nombre de la nueva configuración de lanzamiento y elija Actions (Acciones), Create Auto Scaling Group (Crear grupo de Auto Scaling).

Paso 2: Crear un grupo de Auto Scaling)

Utilice el siguiente procedimiento para continuar donde lo dejó después de crear o seleccionar la plantilla o la configuración de lanzamiento.

Para crear un grupo de Auto Scaling
  1. En la página Choose launch template or configuration (Elegir una plantilla o configuración de lanzamiento), para el nombre del grupo de Auto Scaling, ingrese un nombre para su grupo de Auto Scaling.

  2. [Solo plantilla de lanzamiento] En Launch template (Plantilla de lanzamiento), elija si el grupo de Auto Scaling utiliza el valor predeterminado, la última versión o una versión específica de la plantilla de lanzamiento para escalado horizontal.

  3. Elija Siguiente.

    Aparece la página Choose instance launch options (Elegir opciones de lanzamiento de instancias), que le permite elegir la configuración de red de la VPC que desea que utilice el grupo de Auto Scaling y le ofrece opciones para lanzar instancias bajo demanda e instancias de spot (si elige una plantilla de lanzamiento).

  4. En la sección Network (Red), en VPC, elija la VPC que haya utilizado para el equilibrador de carga. Si elige la VPC predeterminada, se configura automáticamente para proporcionar conectividad a Internet a las instancias. Esta VPC incluye una subred pública en cada zona de disponibilidad de la región.

  5. En Availability Zones and subnets (Zonas de disponibilidad y subredes), elija una o más subredes de cada zona de disponibilidad que desee incluir, en función de las zonas de disponibilidad en las que se encuentre el equilibrador de carga. Para obtener más información, consulte Consideraciones a la hora de elegir subredes de VPC.

  6. [Solo plantilla de lanzamiento] En la sección Instance type requirements (Requisitos del tipo de instancia), utilice la configuración predeterminada para simplificar este paso. (No anule la plantilla de lanzamiento). En este tutorial, solo lanzará instancias bajo demanda con el tipo de instancia especificado en la plantilla de lanzamiento.

  7. Elija Next (Siguiente) para ir a la página Configure advanced options (Configuración de opciones avanzadas).

  8. En la sección Load balancing (Equilibrador de carga), elija Attach to an existing load balancer (Adjuntar a un equilibrador de carga existente) para adjuntar el grupo a un equilibrador de carga ya existente. Puede elegir Choose from your load balancer target groups (Elegir entre los grupos de destino del equilibrador de carga) o Choose from Classic Load Balancers (Elegir entre los Classic Load Balancer). A continuación, puede elegir el nombre de un grupo de destino para el Application Load Balancer o el Network Load Balancer que creó, o bien elegir el nombre de un Classic Load Balancer.

  9. (Opcional) Para utilizar las comprobaciones de estado de Elastic Load Balancing, para Health checks (Comprobaciones de estado), elija ELB en Health check type (Tipo de comprobación de estado).

  10. Cuando haya terminado de configurar el grupo de Auto Scaling, elija Skip to review (Omitir para revisar).

  11. En la página Review (Revisar), revise los detalles del grupo de Auto Scaling. Si desea realizar cambios, haga clic en Edit. Cuando termine, elija Create Auto Scaling group (Crear grupo de Auto Scaling).

Después de crear el grupo de Auto Scaling con el balanceador de carga asociado, el balanceador de carga registra automáticamente nuevas instancias a medida que se conectan. Solo tiene una instancia en este punto, por lo que no hay mucho que registrar. Sin embargo, puede agregar más instancias actualizando la capacidad deseada del grupo. Para step-by-step obtener instrucciones, consulteCambio de la capacidad deseada de su grupo de escalado automático.

Paso 3: Verificar que el balanceador de carga está adjunto

Para verificar que el balanceador de carga está adjunto
  1. Desde la página Auto Scaling groups (Grupos de Auto Scaling) de la consola de Amazon EC2, seleccione la casilla de verificación situada junto al grupo de Auto Scaling.

  2. En la pestaña Details (Detalles), en Load balancing (Balanceador de carga), se muestran los grupos de destino del balanceador de carga asociado o balanceadores de carga clásicos.

  3. En la pestaña Activity (Actividad) en Activity history (Historial de actividad), puede comprobar que las instancias se hayan lanzado correctamente. La columna Status (Estado) indica si el grupo de Auto Scaling ha lanzado las instancias correctamente. Si las instancias no se lanzan, puede encontrar ideas de solución de problemas para problemas de lanzamiento de instancias comunes en Solución de problemas de Amazon EC2 Auto Scaling.

  4. En la pestaña Instance management (Administración de instancias), en Instances (Instancias), puede comprobar que las instancias estén listas para recibir tráfico. Inicialmente, las instancias están en estado Pending. Cuando una instancia está lista para recibir tráfico, su estado es InService. La columna Health status (Estado) muestra el resultado de la comprobación de estado de Amazon EC2 Auto Scaling correspondiente a su instancia. Aunque una instancia pueda estar marcada en buen estado, el balanceador de carga solo enviará tráfico a instancias que pasen las comprobaciones de estado del balanceador de carga.

  5. Verifique que las instancias estén registradas en el balanceador de carga. Abra la página Grupos de destino de la consola de Amazon EC2. Seleccione el grupo de destino y elija la pestaña Targets (Destinos). Si el estado de las instancias es initial, es probable que se deba a que todavía están en proceso de registrarse o están siendo sometidas a comprobaciones de estado. Cuando el estado de las instancias sea healthy, están listas para utilizarse.

Paso 4: Siguientes pasos

Ahora que ha completado este tutorial, puede obtener más información:

  • Amazon EC2 Auto Scaling determina si una instancia está en buen estado en función de las comprobaciones de estado que utiliza su grupo de escalado automático. Si habilitas las comprobaciones de estado del balanceador de cargas y una instancia no pasa las comprobaciones de estado, tu grupo de Auto Scaling considera que la instancia no está en buen estado y la reemplaza. Para obtener más información, consulte Comprobaciones de estado.

  • Puede ampliar la aplicación a una zona de disponibilidad adicional de la misma región para aumentar la tolerancia a errores en caso de interrupción del servicio. Para obtener más información, consulte Agregar zonas de disponibilidad.

  • Puede configurar el grupo de Auto Scaling para que utilice una política de escalado de seguimiento de destino. Esto aumenta o disminuye automáticamente el número de instancias a medida que cambie la demanda de las instancias. Esta permite que el grupo gestione los cambios en la cantidad de tráfico que recibe la aplicación. Para obtener más información, consulte Políticas de escalado de seguimiento de destino.

Paso 5: Eliminar

Cuando haya acabado con los recursos que creó para este tutorial, debería considerar la posibilidad de eliminarlos para evitar incurrir en gastos innecesarios.

Para eliminar el grupo de Auto Scaling
  1. Abra la página grupos de escalado automático en la consola de Amazon EC2.

  2. Seleccione la casilla situada junto al grupo de escalado automático.

  3. Elija Eliminar.

  4. Cuando se le pida la confirmación, escriba delete para confirmar la eliminación del grupo de escalado automático especificado y, a continuación, elija Delete (Eliminar).

    Un icono de carga en la columna Name (Nombre) indica que el grupo de Auto Scaling se está eliminando. Una vez eliminado, las columnas Desired (Deseadas), Min (Mín.) y Max (Máx.) muestran instancias de 0 para el grupo de Auto Scaling. Se tarda unos minutos en terminar la instancia y eliminar el grupo. Actualice la lista para ver el estado actual.

Omita el procedimiento siguiente si desea mantener su plantilla de lanzamiento.

Para eliminar la plantilla de lanzamiento
  1. Abra la página Launch templates (Plantillas de lanzamiento) de la consola de Amazon EC2.

  2. Seleccione la plantilla de lanzamiento.

  3. Elija Actions, Delete template.

  4. Cuando se le pida la confirmación, escriba Delete para confirmar la eliminación de la plantilla de lanzamiento especificada y, a continuación, elija Delete (Eliminar).

Omita el procedimiento siguiente si desea mantener su configuración de lanzamiento.

Para eliminar su configuración de lanzamiento
  1. Abra la página Launch configurations (Configuraciones de lanzamiento) de la consola de Amazon EC2.

  2. Seleccione la configuración de lanzamiento.

  3. Seleccione Actions, Delete launch configuration.

  4. Cuando se le pida confirmación, seleccione Eliminar.

Omita el siguiente procedimiento si desea mantener el balanceador de carga para usarlo en el futuro.

Para eliminar el equilibrador de carga
  1. Abra la página de Load Balancers (Balanceadores de carga) en la consola de Amazon EC2.

  2. Seleccione el balanceador de carga y elija Actions (Acciones), Delete (Eliminar).

  3. Cuando se le indique que confirme, seleccione Yes, Delete (Sí, borrar).

Para eliminar los grupos de destino
  1. Abra la página Grupos de destino de la consola de Amazon EC2.

  2. Elija el grupo de destino y elija Actions (Acciones), Delete (Eliminar).

  3. Cuando se le indique que confirme, seleccione Yes, Delete (Sí, borrar).

Con AWS CloudFormationél, puedes crear y aprovisionar despliegues de AWS infraestructura de forma predecible y repetitiva, mediante archivos de plantilla para crear y eliminar un conjunto de recursos juntos como una sola unidad (una pila). Para más información, consulte la Guía del usuario de AWS CloudFormation.

Para ver un tutorial que muestra cómo usar una plantilla de pila para aprovisionar un grupo de escalado automático y un Equilibrador de carga de aplicación, consulte Tutorial: Creación de una aplicación con escalado y equilibrio de carga en la Guía del usuario de AWS CloudFormation . Utilice el tutorial y la plantilla de ejemplo como punto de partida para crear plantillas similares para satisfacer sus necesidades.