En este módulo, aprenderás cómo desplegar tu aplicación Flask en Amazon Web Services (AWS). AWS es una de las plataformas de nube más populares y ofrece una amplia gama de servicios que pueden ayudarte a escalar y gestionar tu aplicación web de manera eficiente.

  1. Configuración Inicial

1.1 Creación de una Cuenta en AWS

Antes de comenzar, necesitas una cuenta de AWS. Si no tienes una, puedes registrarte en AWS.

1.2 Instalación de AWS CLI

La AWS Command Line Interface (CLI) es una herramienta unificada para gestionar tus servicios de AWS. Puedes instalarla siguiendo las instrucciones en la documentación oficial.

# En macOS
brew install awscli

# En Windows
choco install awscli

# En Linux
sudo apt-get install awscli

1.3 Configuración de AWS CLI

Después de instalar la CLI, configúrala con tus credenciales de AWS.

aws configure

Se te pedirá que ingreses tu AWS Access Key ID, AWS Secret Access Key, Default region name y Default output format.

  1. Despliegue en EC2

2.1 Creación de una Instancia EC2

Amazon Elastic Compute Cloud (EC2) proporciona capacidad de computación escalable en la nube.

  1. Inicia sesión en la consola de AWS.
  2. Navega a EC2 y haz clic en "Launch Instance".
  3. Selecciona una Amazon Machine Image (AMI). Para este tutorial, usaremos Amazon Linux 2.
  4. Elige un tipo de instancia. La t2.micro es suficiente para aplicaciones pequeñas y está incluida en el nivel gratuito de AWS.
  5. Configura los detalles de la instancia. Puedes dejar la configuración predeterminada.
  6. Agrega almacenamiento. La configuración predeterminada suele ser suficiente.
  7. Configura el grupo de seguridad. Asegúrate de permitir el tráfico HTTP (puerto 80) y SSH (puerto 22).
  8. Revisa y lanza la instancia. Se te pedirá que crees o selecciones un par de claves para conectarte a tu instancia.

2.2 Conexión a la Instancia EC2

Usa SSH para conectarte a tu instancia EC2.

ssh -i "your-key-pair.pem" ec2-user@your-ec2-public-dns

2.3 Configuración del Servidor

Instala las dependencias necesarias en tu instancia EC2.

# Actualiza los paquetes
sudo yum update -y

# Instala Python3 y pip
sudo yum install python3 -y

# Instala virtualenv
sudo pip3 install virtualenv

2.4 Despliegue de la Aplicación Flask

  1. Sube tu aplicación a la instancia. Puedes usar scp o cualquier otra herramienta de transferencia de archivos.
scp -i "your-key-pair.pem" -r /path/to/your/flask-app ec2-user@your-ec2-public-dns:/home/ec2-user/
  1. Configura tu aplicación.
cd flask-app
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
  1. Configura Gunicorn para servir tu aplicación.
pip install gunicorn
gunicorn --bind 0.0.0.0:8000 wsgi:app

2.5 Configuración de Nginx

Nginx actuará como un proxy inverso para Gunicorn.

# Instala Nginx
sudo amazon-linux-extras install nginx1.12 -y

# Inicia Nginx
sudo service nginx start

# Configura Nginx
sudo vim /etc/nginx/nginx.conf

Agrega la siguiente configuración en el archivo nginx.conf:

server {
    listen 80;
    server_name your-ec2-public-dns;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Reinicia Nginx para aplicar los cambios.

sudo service nginx restart

  1. Conclusión

En este módulo, has aprendido cómo desplegar una aplicación Flask en AWS utilizando una instancia EC2. Has configurado el entorno, subido tu aplicación, y configurado Gunicorn y Nginx para servir tu aplicación. Este es un paso crucial para llevar tu aplicación a producción y hacerla accesible a los usuarios.

Resumen

  • Configuración Inicial: Creación de cuenta en AWS, instalación y configuración de AWS CLI.
  • Despliegue en EC2: Creación y configuración de una instancia EC2, instalación de dependencias, despliegue de la aplicación Flask.
  • Configuración de Nginx: Configuración de Nginx como proxy inverso para Gunicorn.

Próximos Pasos

En el siguiente módulo, aprenderás sobre el monitoreo y la optimización del rendimiento de tu aplicación Flask en producción.

Curso de Desarrollo Web con Flask

Módulo 1: Introducción a Flask

Módulo 2: Conceptos Básicos de Flask

Módulo 3: Formularios y Entrada de Usuario

Módulo 4: Integración de Bases de Datos

Módulo 5: Autenticación de Usuarios

Módulo 6: Conceptos Avanzados de Flask

Módulo 7: APIs RESTful con Flask

Módulo 8: Despliegue y Producción

Módulo 9: Pruebas y Mejores Prácticas

Módulo 10: Extensiones y Ecosistema de Flask

© Copyright 2024. Todos los derechos reservados