0% encontró este documento útil (0 votos)
8 vistas5 páginas

Gcloud Python

Este documento detalla el proceso de despliegue de una aplicación web Flask con PostgreSQL en Google Cloud Platform utilizando Nginx como proxy inverso. Incluye pasos para crear una instancia en Compute Engine, instalar dependencias, subir el código, configurar PostgreSQL, y establecer Gunicorn y Nginx como servicios. También se mencionan notas importantes sobre la gestión de la IP externa y la posibilidad de automatizar el proceso.

Cargado por

Satori Tamayochi
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas5 páginas

Gcloud Python

Este documento detalla el proceso de despliegue de una aplicación web Flask con PostgreSQL en Google Cloud Platform utilizando Nginx como proxy inverso. Incluye pasos para crear una instancia en Compute Engine, instalar dependencias, subir el código, configurar PostgreSQL, y establecer Gunicorn y Nginx como servicios. También se mencionan notas importantes sobre la gestión de la IP externa y la posibilidad de automatizar el proceso.

Cargado por

Satori Tamayochi
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Despliegue en Google Cloud: Flask + PostgreSQL + Nginx

🎯 Objetivo:
Llevar tu aplicación web (Python, Flask, PostgreSQL) a un servidor en la nube usando
Google Cloud Platform (GCP) .

Requisitos previos
 Cuenta en Google Cloud Console
 Tener activo el proyecto con los $300 USD de crédito
 Conocimiento básico de terminal Linux
 Tu código listo localmente (el que ya implementaste en Ubuntu)

1. Crear una instancia en Compute Engine


Paso 1: Ir a Compute Engine
• En Google Cloud Console → Menú ☰ → Compute Engine → Instancias de VM

Paso 2: Crear nueva VM


Haz clic en Crear instancia y configura así:

Nombre flask-app-server
Región / Zona Selecciona algo cerca de ti ([Link]-central1-a)
Máquina e2-micro(gratuito dentro del límite)
Imagen Debian 12oUbuntu 22.04 LTS
Acceso HTTP/HTTPS Marca ambas opciones
✅ e2-micro está dentro del Tier Gratuito de GCP.

Paso 3: Crear
Una vez creada, copia la IP externa asignada. La usarás para acceder desde internet.

2. Conectar a la máquina vía SSH


Puedes usar directamente el botón SSH en la consola de GCP o conectarte desde tu terminal local:
bash
ssh -i ~/.ssh/tu_clave usuario@tu_ip_externa
3. Instalar dependencias necesarias
bash
sudo apt update && sudo apt upgrade -y

sudo apt install python3 python3-pip python3-venv nginx postgresql


postgresql-contrib git -y

4. Subir tu código a la VM
Tienes varias formas:

Opción A: Usar Git


Si ya tienes tu proyecto en GitHub o GitLab:
bash
git clone [Link]
cd tuproyecto

Opción B: Subir archivos manualmente


Usa scp desde tu PC local:
bash

scp -r ./mi_app_web usuario@tu_ip_externa:/home/usuario/

5. Configurar entorno Python


bash
cd mi_app_web
python3 -m venv venv
source venv/bin/activate
pip install -r [Link]

Si no tienes [Link], instala manualmente:

bash

pip install flask gunicorn psycopg2-binary

6. Configurar PostgreSQL
bash

sudo -u postgres psql

Dentro de psql:
sql
CREATE DATABASE tu_basedatos;
CREATE USER tu_usuario WITH PASSWORD 'tu_contraseña';
ALTER ROLE tu_usuario SET client_encoding TO 'utf8';
ALTER ROLE tu_usuario SET default_transaction_isolation TO 'read committed';
ALTER ROLE tu_usuario SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE tu_basedatos TO tu_usuario;
\q

Edite su archivo [Link] o [Link] con las credenciales correctas.

7. Probar la aplicación con Gunicorn


bash

gunicorn --bind [Link]:5000 app:app

Desde tu navegador visita:

[Link]

Presiona Ctrl+C para detener.

8. Configurar Gunicorn como servicio systemd


Crea el archivo:
bash

sudo nano /etc/systemd/system/[Link]

Contenido:
ini
[Unit]
Description=Gunicorn instance for Flask App
After=[Link]
[Service]
User=tu_usuario
Group=www-data
WorkingDirectory=/home/tu_usuario/mi_app_web
Environment="PATH=/home/tu_usuario/mi_app_web/venv/bin"
ExecStart=/home/tu_usuario/mi_app_web/venv/bin/gunicorn --workers 3 --bind
unix:[Link] -m 007 app:app

[Install]
WantedBy=[Link]

Guarda y ejecuta:
bash
sudo systemctl daemon-reload
sudo systemctl start flaskapp
sudo systemctl enable flaskapp

9. Configurar Nginx como proxy inverso


bash

sudo nano /etc/nginx/sites-available/flaskapp

Contenido:
nginx
server {
listen 80;
server_name tu_ip_externa;

location / {
proxy_pass [Link]
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Activa la configuración:
bash
sudo ln -s /etc/nginx/sites-available/flaskapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
✅ ¡Listo!
Ahora puedes acceder a tu aplicación desde cualquier lugar:
1
[Link]

📝 Notas importantes
• Tu IP externa puede cambiar si apagas la VM. Para evitar esto, reserva una IP estática en:
• Menú ☰ → Redes VPC → Direcciones IP externas → Reservar IP estática
• Puedes automatizar el proceso con scripts o incluso con Docker si lo deseas.

También podría gustarte