QuickStart: Implementar una aplicación de Docker en Elastic Beanstalk - AWS Elastic Beanstalk

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.

QuickStart: Implementar una aplicación de Docker en Elastic Beanstalk

Este QuickStart tutorial explica el proceso de crear una aplicación de Docker e implementarla en un AWS Elastic Beanstalk entorno.

nota

Este QuickStart tutorial está destinado a fines de demostración. No utilice la aplicación creada en este tutorial para el tráfico de producción.

Sus AWS cuenta

Si aún no eres un AWS cliente, necesitas crear un AWS account. El registro le permite acceder a Elastic Beanstalk y otros AWS servicios que necesita.

Si ya tienes un AWS cuenta a la que puedes pasarRequisitos previos.

Inscríbase en una Cuenta de AWS

Si no tienes un Cuenta de AWS, complete los pasos siguientes para crear uno.

Para suscribirse a una Cuenta de AWS
  1. Abrir https://portal.aws.amazon.com/billing/registro.

  2. Siga las instrucciones que se le indiquen.

    Parte del procedimiento de registro consiste en recibir una llamada telefónica e indicar un código de verificación en el teclado del teléfono.

    Cuando te registras en una Cuenta de AWS, un Usuario raíz de la cuenta de AWSse crea. El usuario root tiene acceso a todos Servicios de AWS y los recursos de la cuenta. Como práctica recomendada de seguridad, asigne acceso administrativo a un usuario y utilice únicamente el usuario raíz para realizar tareas que requieren acceso de usuario raíz.

AWS te envía un correo electrónico de confirmación una vez finalizado el proceso de registro. En cualquier momento, puede ver la actividad de su cuenta actual y administrarla accediendo a https://aws.amazon.com/y seleccionando Mi cuenta.

Creación de un usuario con acceso administrativo

Después de suscribirse a una Cuenta de AWS, asegure su Usuario raíz de la cuenta de AWS, habilitar AWS IAM Identity Center y cree un usuario administrativo para no utilizar el usuario root en las tareas diarias.

Proteja su Usuario raíz de la cuenta de AWS
  1. Inicie sesión en la AWS Management Consolecomo propietario de la cuenta seleccionando el usuario root e introduciendo su Cuenta de AWS dirección de correo electrónico. En la siguiente página, escriba su contraseña.

    Para obtener ayuda para iniciar sesión con un usuario root, consulte Iniciar sesión como usuario root en la AWS Sign-In Guía del usuario.

  2. Activa la autenticación multifactorial (MFA) para tu usuario root.

    Para obtener instrucciones, consulte Habilitar un MFA dispositivo virtual para su Cuenta de AWS usuario root (consola) en la Guía IAM del usuario.

Creación de un usuario con acceso administrativo
  1. Habilite IAM Identity Center.

    Para obtener instrucciones, consulte Habilitar AWS IAM Identity Center en la AWS IAM Identity Center Guía del usuario.

  2. En IAM Identity Center, conceda acceso administrativo a un usuario.

    Para ver un tutorial sobre el uso de Directorio de IAM Identity Center como fuente de identidad, consulte Configurar el acceso de los usuarios con la configuración predeterminada Directorio de IAM Identity Center en la AWS IAM Identity Center Guía del usuario.

Iniciar sesión como usuario con acceso de administrador
  • Para iniciar sesión con su usuario de IAM Identity Center, utilice el inicio de sesión URL que se envió a su dirección de correo electrónico cuando creó el usuario de IAM Identity Center.

    Para obtener ayuda para iniciar sesión con un usuario de IAM Identity Center, consulte Iniciar sesión en AWS acceda al portal en el AWS Sign-In Guía del usuario.

Concesión de acceso a usuarios adicionales
  1. En IAM Identity Center, cree un conjunto de permisos que siga la práctica recomendada de aplicar permisos con privilegios mínimos.

    Para obtener instrucciones, consulte Crear un conjunto de permisos en AWS IAM Identity Center Guía del usuario.

  2. Asigne usuarios a un grupo y, a continuación, asigne el acceso de inicio de sesión único al grupo.

    Para obtener instrucciones, consulte Añadir grupos en la AWS IAM Identity Center Guía del usuario.

Requisitos previos

Para seguir los procedimientos de esta guía, necesitará un shell o un terminal de línea de comando donde pueda ejecutar los comandos. Los comandos aparecen en listas y van precedidos del símbolo del sistema ($) y del nombre del directorio actual, si es aplicable.

~/eb-project$ this is a command this is output

En Linux y macOS, puede utilizar el administrador de shell y paquetes preferido. En Windows, puede instalar el subsistema de Windows para Linux para obtener una versión de Ubuntu y Bash integrada en Windows.

EB CLI

En este tutorial se utiliza la interfaz de línea de comandos (EB) de Elastic Beanstalk. CLI Para obtener información detallada sobre la instalación y configuración del EBCLI, consulte y. Instalación de la interfaz de línea de comandos de Elastic Beanstalk Configuración de la CLI de EB

Docker

Para seguir este tutorial, necesitará una instalación local de Docker que funcione. Para obtener más información, consulte Descripción de Docker en la página de documentos de Docker.

Compruebe que el daemon de Docker esté en funcionamiento ejecutando el siguiente comando.

~$ docker info

Paso 1: Cree una aplicación y un contenedor de Docker

Para este ejemplo, creamos una imagen de Docker de la aplicación Flask de muestra a la que también se hace referencia en. Implementación de una aplicación Flask en Elastic Beanstalk

La aplicación consta de dos archivos:

  • app.py— el archivo Python que contiene el código que se ejecutará en el contenedor.

  • Dockerfile— el Dockerfile para crear la imagen.

Coloca ambos archivos en la raíz de un directorio.

~/eb-docker-flask/ |-- Dockerfile |-- app.py

Añada los siguientes contenidos a suDockerfile.

ejemplo ~/eb-docker-flask/Dockerfile
FROM python:3.12 COPY . /app WORKDIR /app RUN pip install Flask==3.0.2 EXPOSE 5000 CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

Agregue los siguientes contenidos a su app.py archivo.

ejemplo ~/eb-docker-flask/app.py
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello Elastic Beanstalk! This is a Docker application'

Construye tu contenedor de Docker etiquetando la imagen con. eb-docker-flask

~/eb-docker-flask$ docker build -t eb-docker-flask

Paso 2: ejecuta tu aplicación localmente

Usa el comando docker build para crear tu imagen de contenedor localmente, etiquetando la imagen con. eb-docker-flask El punto (.) al final del comando especifica que la ruta es un directorio local.

~/eb-docker-flask$ docker run -dp 127.0.0.1:5000:5000 eb-docker-flask .

Ejecute su contenedor con el comando docker run. El comando imprimirá el ID del contenedor en ejecución. La -d opción ejecuta el docker en modo de fondo. La -p opción expone la aplicación en el puerto 5000. Elastic Beanstalk envía el tráfico al puerto 5000 de la plataforma Docker de forma predeterminada.

~/eb-docker-flask$ docker run -dp 127.0.0.1:5000:5000 eb-docker-flask container-id

Navegue hasta en su http://127.0.0.1:5000/ navegador. Debería ver el texto «¡Hola, Elastic Beanstalk! Esta es una aplicación de Docker».

Ejecute el comando docker kill para terminar el contenedor.

~/eb-docker-flask$ docker kill container-id

Paso 3: Implemente su aplicación Docker con el EB CLI

Ejecute los siguientes comandos para crear un entorno de Elastic Beanstalk para esta aplicación.

Para crear un entorno e implementar su aplicación Docker
  1. Inicialice su CLI repositorio de EB con el eb init comando.

    ~/eb-docker-flask$ eb init -p docker docker-tutorial us-east-2 Application docker-tutorial has been created.

    Este comando crea una aplicación denominada docker-tutorial y configura el repositorio local para crear entornos con la versión más reciente de la plataforma Docker.

  2. (Opcional) eb init Vuelve a ejecutarlo para configurar un key pair predeterminado que puedas usar SSH para conectarte a la EC2 instancia que ejecuta tu aplicación.

    ~/eb-docker-flask$ eb init Do you want to set up SSH for your instances? (y/n): y Select a keypair. 1) my-keypair 2) [ Create new KeyPair ]

    Seleccione un par de claves si ya tiene uno o siga las instrucciones para crear uno. Si no ve el símbolo del sistema o más adelante necesita cambiar la configuración, ejecute eb init -i.

  3. Cree un entorno e implemente la aplicación en él con eb create. Elastic Beanstalk crea automáticamente un archivo zip para la aplicación y lo inicia en el puerto 5000.

    ~/eb-docker-flask$ eb create docker-tutorial

    Elastic Beanstalk tarda unos cinco minutos en crear el entorno.

Paso 4: Ejecute la aplicación en Elastic Beanstalk

Cuando finalice el proceso de creación del entorno, abra su sitio web con. eb open

~/eb-docker-flask$ eb open

¡Enhorabuena! ¡Ha implementado una aplicación de Docker con Elastic Beanstalk! Se abre una ventana del navegador con el nombre de dominio creado para su aplicación.

Paso 5: Eliminar

Puede cerrar el entorno cuando termine de trabajar con la aplicación. Elastic Beanstalk termina todos AWS recursos asociados a su entorno.

Para finalizar el entorno de Elastic Beanstalk con el EB, ejecute CLI el siguiente comando.

~/eb-docker-flask$ eb terminate

AWS recursos para su aplicación

Acabas de crear una aplicación de instancia única. Sirve como una aplicación de muestra sencilla con una sola EC2 instancia, por lo que no requiere balanceo de carga ni escalado automático. Para aplicaciones de instancia única, Elastic Beanstalk crea lo siguiente: AWS recursos:

  • EC2instancia: una máquina EC2 virtual de Amazon configurada para ejecutar aplicaciones web en la plataforma que elija.

    Cada plataforma ejecuta un conjunto distinto de software, archivos de configuración y scripts compatibles con una determinada versión de lenguaje, marco y contenedor web (o una combinación de ellos). La mayoría de las plataformas utilizan Apache o nginx como un proxy inverso que procesa el tráfico web delante de la aplicación web, reenvía las solicitudes a esta, administra los recursos estáticos y genera registros de acceso y errores.

  • Grupo de seguridad de instancias: un grupo EC2 de seguridad de Amazon configurado para permitir el tráfico entrante en el puerto 80. Este recurso permite que el HTTP tráfico del balanceador de cargas llegue a la EC2 instancia que ejecuta tu aplicación web. De forma predeterminada, el tráfico no está permitido en otros puertos.

  • Bucket de Amazon S3: ubicación de almacenamiento para el código fuente, los registros y otros artefactos que se crean al utilizar Elastic Beanstalk.

  • CloudWatch Alarmas de Amazon: dos CloudWatch alarmas que monitorean la carga de las instancias de su entorno y se activan si la carga es demasiado alta o demasiado baja. Cuando se activa una alarma, en respuesta, el grupo de Auto Scaling aumenta o reduce los recursos.

  • AWS CloudFormation stack: Elastic Beanstalk utiliza AWS CloudFormation para lanzar los recursos de su entorno y propagar los cambios de configuración. Los recursos se definen en una plantilla que puede ver en AWS CloudFormation consola.

  • Nombre de dominio: un nombre de dominio que se dirige a su aplicación web en el formulario subdomain.region.elasticbeanstalk.com.

Elastic Beanstalk administra todos estos recursos. Cuando termina su entorno, Elastic Beanstalk termina todos los recursos que este contiene.

Siguientes pasos

Una vez que disponga de un entorno que ejecute una aplicación, podrá implementar una nueva versión de la aplicación o una aplicación distinta en cualquier momento. La implementación de una nueva versión de la aplicación es muy rápida porque no requiere aprovisionar ni reiniciar las instancias. EC2 También puede explorar su nuevo entorno con la consola de Elastic Beanstalk. Para ver los pasos detallados, consulte Explore su entorno en el capítulo Introducción de esta guía.

Una vez que haya implementado una o dos aplicaciones de muestra y esté listo para empezar a desarrollar y ejecutar aplicaciones Docker de forma local, consultePreparar la imagen de Docker para su implementación en Elastic Beanstalk.

Implemente con la consola de Elastic Beanstalk

También puede usar la consola de Elastic Beanstalk para iniciar la aplicación de muestra. Para ver los pasos detallados, consulte Crear una aplicación de ejemplo en el capítulo Introducción de esta guía.