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.
Implementar contenedores mediante Elastic Beanstalk
Creada por Thomas Scott (AWS) y Jean-Baptiste Guillois () AWS
Entorno: producción | Tecnologías: contenedores y microservicios CloudNative; Modernización | |
AWSservicios: AWS Elastic Beanstalk |
Resumen
En la nube de Amazon Web Services (AWS), AWS Elastic Beanstalk admite Docker como plataforma disponible, de modo que los contenedores se puedan ejecutar con el entorno creado. Este patrón muestra cómo implementar contenedores mediante el servicio Elastic Beanstalk. La implementación de este patrón utilizará el entorno de servidor web basado en la plataforma Docker.
Para usar Elastic Beanstalk para implementar y escalar aplicaciones y servicios web, debe cargar el código y la implementación se gestiona automáticamente. También se incluyen el aprovisionamiento de capacidad, el equilibrio de carga, el escalado automático y la supervisión del estado de las aplicaciones. Cuando usa Elastic Beanstalk, puede tomar el AWS control total de los recursos que crea en su nombre. No se aplican cargos adicionales por utilizar Elastic Beanstalk. Solo paga por los AWS recursos que se utilizan para almacenar y ejecutar sus aplicaciones.
Este patrón incluye instrucciones para la implementación mediante la AWSinterfaz de línea de comandos CLI (EB) de Elastic Beanstalk y la consola de administración. AWS
Casos de uso
Los casos de uso de Elastic Beanstalk incluyen los siguientes:
Implementar un entorno prototipo para hacer una demostración de una aplicación frontend. (Este patrón usa un Dockerfile como ejemplo).
Implemente y API gestione API las solicitudes de un dominio determinado.
Implemente una solución de orquestación mediante Docker-Compose (
docker-compose.yml
no se utiliza como ejemplo práctico en este patrón).
Requisitos previos y limitaciones
Requisitos previos
Una AWS cuenta
AWSEB instalado CLI localmente
Instalación de Docker en un equipo local
Limitaciones
En el plan gratuito, hay un límite de 100 extracciones de Docker cada 6 horas por dirección IP.
Arquitectura
Pila de tecnología de destino
Instancias de Amazon Elastic Compute Cloud (AmazonEC2)
Grupo de seguridad
Equilibrador de carga de aplicación
Grupo de escalado automático
Arquitectura de destino
Automatizar y escalar
AWSElastic Beanstalk puede escalar automáticamente en función del número de solicitudes realizadas. AWSLos recursos creados para un entorno incluyen un Application Load Balancer, un grupo de Auto Scaling y una o más instancias de AmazonEC2.
El balanceador de carga se encuentra frente a las EC2 instancias de Amazon, que forman parte del grupo Auto Scaling. Amazon EC2 Auto Scaling inicia automáticamente EC2 instancias de Amazon adicionales para adaptarse al aumento de la carga de la aplicación. Si la carga de la aplicación disminuye, Amazon EC2 Auto Scaling detiene las instancias, pero mantiene al menos una instancia en ejecución.
Activadores de escalado automáticos
El grupo Auto Scaling del entorno de Elastic Beanstalk utiliza CloudWatch dos alarmas de Amazon para iniciar las operaciones de escalado. Los desencadenadores predeterminados adaptan su capacidad cuando el tráfico de la red saliente promedio de cada instancia es superior a 6 MB o inferior a 2 MB durante un periodo de cinco minutos. Para utilizar Amazon EC2 Auto Scaling de forma eficaz, configure los activadores adecuados para su aplicación, tipo de instancia y requisitos de servicio. Puede escalar en función de varias estadísticas, como la latencia, la E/S del disco, CPU la utilización y el recuento de solicitudes. Para obtener más información, consulte Límites de escalado automático.
Herramientas
AWSservicios
AWSLa interfaz de línea de comandos (AWSCLI) es una herramienta de código abierto que te ayuda a interactuar con AWS los servicios mediante comandos en el shell de la línea de comandos.
AWSLa interfaz de línea de comandos (EBCLI) de EB es un cliente de línea de comandos que puede usar para crear, configurar y administrar entornos de Elastic Beanstalk.
Elastic Load Balancing permite distribuir el tráfico entrante de las aplicaciones o de la red entre varios destinos. Por ejemplo, puede distribuir el tráfico entre instancias, contenedores y direcciones IP de Amazon Elastic Compute Cloud (AmazonEC2) en una o más zonas de disponibilidad.
Otros servicios
Docker
agrupa el software en unidades estandarizadas denominadas contenedores que incluyen bibliotecas, herramientas del sistema, código y tiempo de ejecución.
Código
El código de este patrón está disponible en el repositorio de aplicaciones de muestra de GitHub clúster
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Clone el repositorio remoto. |
| Desarrollador de aplicaciones, AWS administrador, AWS DevOps |
Inicialice el proyecto Docker de Elastic Beanstalk. |
| Desarrollador de aplicaciones, AWS administrador, AWS DevOps |
Ejecute el proyecto localmente. |
| Desarrollador de aplicaciones, AWS administrador, AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Ejecute el comando de implementación |
| Desarrollador de aplicaciones, AWS administrador, AWS DevOps |
Acceda a la versión implementada. | Una vez finalizado el comando de implementación, acceda al proyecto mediante el comando | Desarrollador de aplicaciones, AWS administrador, AWS DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Implemente la aplicación mediante el navegador. |
| Desarrollador de aplicaciones, administrador, AWS AWS DevOps |
Acceda a la versión implementada. | Tras la implementación, acceda a la aplicación implementada y elija la que URL se proporciona. | Desarrollador de aplicaciones, AWS administrador, AWS DevOps |
Recursos relacionados
Información adicional
Ventajas de utilizar Elastic Beanstalk
Aprovisionamiento automático de infraestructura
Administración automática de la plataforma subyacente
Parches y actualizaciones automáticos para dar soporte a la aplicación
Escalado automático de la aplicación
Posibilidad de personalizar el número de nodos
Posibilidad de acceder a los componentes de la infraestructura si es necesario
Facilidad de implementación en comparación con otras soluciones de implementación de contenedores