

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: Implemente una aplicación de Python en Elastic Beanstalk
<a name="python-quickstart"></a>

En este QuickStart tutorial se explica el proceso de creación de una aplicación de Python y de su implementación en un AWS Elastic Beanstalk entorno.

**No válido para uso en producción**  
Los ejemplos se presentan solo con fines de demostración. No utilice aplicaciones de ejemplo en producción.

**Topics**
+ [Sus AWS inscrita](#python-quickstart-aws-account)
+ [Requisitos previos](#python-quickstart-prereq)
+ [Paso 1: crear una aplicación Python](#python-quickstart-create-app)
+ [Paso 2: ejecutar la aplicación a nivel local](#python-quickstart-run-local)
+ [Paso 3: implementar la aplicación Python con la CLI de EB](#python-quickstart-deploy)
+ [Paso 4: ejecutar la aplicación en Elastic Beanstalk](#python-quickstart-run-eb-ap)
+ [Paso 5: Eliminar](#go-tutorial-cleanup)
+ [AWS recursos para su aplicación](#python-quickstart-eb-resources)
+ [Siguientes pasos](#python-quickstart-next-steps)
+ [Implementar con la consola de Elastic Beanstalk](#python-quickstart-console)

## Sus AWS inscrita
<a name="python-quickstart-aws-account"></a>

Si aún no es AWS cliente, debe crear una AWS cuenta. Registrarse le permite acceder a Elastic Beanstalk y a otros AWS servicios que necesite.

Si ya tienes una AWS cuenta, puedes pasar a. [Requisitos previos](#python-quickstart-prereq)

### Crea un AWS inscrita
<a name="python-quickstart-aws-account-procedure"></a>

#### Regístrese para un Cuenta de AWS
<a name="sign-up-for-aws"></a>

Para empezar AWS, necesitas un Cuenta de AWS. Para obtener información sobre cómo crear un Cuenta de AWS, consulte [ Cómo empezar a utilizar un Cuenta de AWS](https://docs.aws.amazon.com/accounts/latest/reference/getting-started.html) en la Guía de *AWS Account Management referencia*.

## Requisitos previos
<a name="python-quickstart-prereq"></a>

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 ](https://docs.microsoft.com/en-us/windows/wsl/install-win10) para obtener una Windows-integrated versión de Ubuntu y Bash.

### CLI DE EB
<a name="python-quickstart-prereq.ebcli"></a>

En este tutorial también se utiliza la interfaz de línea de comandos de Elastic Beanstalk (CLI de EB). Para obtener detalles sobre la instalación y configuración de la CLI de EB, consulte [Instalación de la CLI de EB con el script de configuración (recomendado)](eb-cli3.md#eb-cli3-install) y [Configuración de la CLI de EB](eb-cli3-configuration.md).

### Marco de Python y Flask
<a name="python-quickstart-prereq.runtime"></a>

Confirme que tiene una versión de Python con `pip` instalado mediante los siguientes comandos.

```
~$ python3 --version
Python 3.N.N
>~$ python3 -m pip --version
pip X.Y.Z from ... (python 3.N.N)
```

Si alguno de los comandos anteriores devuelve “*Python no se encontró*”, ejecute los siguientes comandos que utilizan `python` en lugar de `python3`. La configuración de los alias y los enlaces simbólicos puede variar según el sistema operativo y las personalizaciones individuales, por lo que es posible que el comando `python3` no funcione en el equipo.

```
~$ python --version
Python 3.N.N
>~$ python -m pip --version
pip X.Y.Z from ... (python 3.N.N)
```

Si no tiene Python instalado en su máquina local, puede descargarlo desde la página [Descargas de Python](https://www.python.org/downloads/) en el sitio web de Python. Para obtener una lista de versiones de lenguaje Python compatibles con Elastic Beanstalk, consulte [Plataformas Python compatibles](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.python) en la guía *Plataformas de AWS Elastic Beanstalk *. El sitio web *Descargas de Python* proporciona un enlace a la Guía de desarrolladores de Python, donde encontrará instrucciones de instalación y configuración.

**nota**  
El paquete `pip` de Python se incluye de forma predeterminada en Python 3.4 o versiones posteriores.

Si el resultado indica que tiene una versión compatible de Python, pero no `pip`, consulte la página [Instalación](https://pip.pypa.io/en/stable/installation/) en el sitio web *pip.pypa.io*. Proporciona una guía para instalar pip en un entorno de Python que no lo tiene.



Para confirmar que se ha instalado Flask, ejecute el comando siguiente:

```
~$ pip list | grep Flask
```

Si Flask no está instalado, ejecute el siguiente comando para instalarlo:

```
~$ pip install Flask
```

## Paso 1: crear una aplicación Python
<a name="python-quickstart-create-app"></a>

Cree el directorio del proyecto.

```
~$ mkdir eb-python
~$ cd eb-python
```

Creación de un ejemplo de “Hola, Elastic Beanstalk” Aplicación Python que implementará con Elastic Beanstalk.

En el directorio que acaba de crear, cree un archivo de texto llamado `application.py` con el contenido siguiente:

**Example `~/eb- .py python/application`**  

```
from flask import Flask
application = Flask(__name__)

@application.route('/')
def hello_elastic_beanstalk():
        return 'Hello Elastic Beanstalk!'
```

Cree un archivo de texto llamado `requirements.txt` con la siguiente línea. Este archivo contiene los paquetes de `pip` necesarios para ejecutar la aplicación.

**Example `~/eb-.txt python/requirements`**  

```
Flask
```

## Paso 2: ejecutar la aplicación a nivel local
<a name="python-quickstart-run-local"></a>

Para implementar la aplicación localmente, ejecute el siguiente comando.

```
~/eb-python$ export FLASK_APP=application.py && flask run --port 5000
```

Debería ver una salida similar a esta:

```
Serving Flask app 'application.py'
Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Running on http://127.0.0.1:5000
Press CTRL+C to quit
127.0.0.1 - - [01/Jan/1970 00:00:00] "GET / HTTP/1.1" 200 -
```

Vaya a `http://localhost:5000` en un navegador web. El navegador web debería mostrar “Hola, Elastic Beanstalk”.

## Paso 3: implementar la aplicación Python con la CLI de EB
<a name="python-quickstart-deploy"></a>

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

 

**Cómo crear un entorno e implementar la aplicación Python**

1. Inicialice el repositorio de la CLI de EB con el comando **eb init**.

   ```
   ~/eb-python$ eb init -p python-3.9 python-tutorial --region {{us-east-2}}
   ```

   Este comando crea una aplicación llamada `python-tutorial` y configura el repositorio local para crear entornos con la versión de la plataforma de Python proporcionada.

1. (Opcional) Ejecute de nuevo **eb init** para configurar un par de claves predeterminadas de forma que pueda usar SSH para conectarse a la instancia de EC2 donde se ejecuta la aplicación.

   ```
   ~/eb-python$ 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**.

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

   ```
   ~/eb-python$ eb create python-env
   ```

   Elastic Beanstalk tarda aproximadamente cinco minutos en crear el entorno.

## Paso 4: ejecutar la aplicación en Elastic Beanstalk
<a name="python-quickstart-run-eb-ap"></a>

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

```
~/eb-python$ eb open
```

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

## Paso 5: Eliminar
<a name="go-tutorial-cleanup"></a>

Cuando termine de trabajar con la aplicación, puede terminar el entorno. Elastic Beanstalk termina todos los recursos asociados a su entorno. AWS 

Utilice el comando siguiente de la CLI de EB para terminar su entorno de Elastic Beanstalk.

```
~/eb-python$ eb terminate
```

## AWS recursos para su aplicación
<a name="python-quickstart-eb-resources"></a>

Acaba de crear una aplicación de instancia única. Sirve como una aplicación de muestra sencilla con una sola instancia de EC2, por lo que no requiere equilibrio de carga ni escalado automático. Para las aplicaciones de instancia única, Elastic Beanstalk crea los siguientes recursos: AWS 
+ **EC2 instance (Instancia de EC2)**: máquina virtual de Amazon EC2 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.
+ **Instance security group (Grupo de seguridad de la instancia)**: grupo de seguridad de Amazon EC2 configurado para permitir el tráfico entrante en el puerto 80. Este recurso permite que el tráfico HTTP procedente del equilibrador de carga llegue a la instancia de EC2 en la que se ejecuta la 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 supervisan 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 escalado automático aumenta o reduce los recursos.
+ **CloudFormation stack**: Elastic Beanstalk se utiliza CloudFormation para lanzar los recursos de su entorno y propagar los cambios de configuración. Los recursos se definen en una plantilla que puede verse en la [consola de CloudFormation](https://console.aws.amazon.com/cloudformation).
+  **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
<a name="python-quickstart-next-steps"></a>

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 una tarea muy rápida, ya que no se requiere aprovisionar ni reiniciar instancias EC2. También puede explorar el nuevo entorno con la consola de Elastic Beanstalk. Para ver los pasos detallados, consulte [Explore your environment](GettingStarted.md#GettingStarted.Explore) en el capítulo *Getting started* de esta guía.

**Probar más tutoriales**  
Si desea probar otros tutoriales con diferentes aplicaciones de muestra, consulte los siguientes:  
[Implementación de una aplicación Flask en Elastic Beanstalk](create-deploy-python-flask.md)
[Implementación de una aplicación Django en Elastic Beanstalk](create-deploy-python-django.md)

Después de que implemente una aplicación de muestra o dos y esté listo para empezar a desarrollar y poner en funcionamiento las aplicaciones de Python de forma local, consulte [Configuración del entorno de desarrollo de Python para Elastic Beanstalk](python-development-environment.md). 

## Implementar con la consola de Elastic Beanstalk
<a name="python-quickstart-console"></a>

También puede utilizar la consola de Elastic Beanstalk para lanzar la aplicación de muestra. Para ver los pasos detallados, consulte [Create an example application](GettingStarted.md#GettingStarted.CreateApp) en el capítulo *Getting Started* de esta guía.