Cómo Instalar Strapi con PostgreSQL en AWS: Guía Completa Paso a Paso

LinuxTutorialesBack-End
Cómo Instalar Strapi con PostgreSQL en AWS: Guía Completa Paso a Paso

21 de noviembre de 2024

Para instalar Strapi con PostgreSQL en AWS, sigue estos pasos detallados:

1. Preparativos Iniciales

  • Cuenta de AWS: Asegúrate de tener una cuenta activa en Amazon Web Services.
  • Herramientas Necesarias: Instala las siguientes herramientas en tu máquina local:

2. Configuración de PostgreSQL en AWS RDS

  • Crear una Instancia de RDS:

    • Accede a la consola de AWS y navega a RDS.
    • Haz clic en "Crear base de datos".
    • Selecciona "PostgreSQL" como motor de base de datos.
    • Elige la opción "Uso gratuito" si es aplicable.
    • Configura los detalles de la instancia, incluyendo nombre de usuario y contraseña.
    • En "Conectividad", asegúrate de que la instancia sea accesible públicamente si planeas conectarte desde fuera de AWS.
  • Configurar Grupos de Seguridad:

    • Navega a "Grupos de seguridad" en la consola de EC2.
    • Crea un nuevo grupo de seguridad o modifica uno existente para permitir el tráfico entrante en el puerto 5432 (PostgreSQL) desde las direcciones IP necesarias.

3. Configuración de una Instancia EC2

  • Lanzar una Instancia EC2:

    • En la consola de EC2, haz clic en "Lanzar instancia".
    • Selecciona una AMI de Ubuntu Server 22.04 LTS.
    • Elige un tipo de instancia adecuado (por ejemplo, t2.small o superior para un rendimiento óptimo).
    • Configura el almacenamiento y las etiquetas según tus necesidades.
    • En "Grupos de seguridad", permite el tráfico entrante en los puertos 22 (SSH), 80 (HTTP) y 443 (HTTPS).
  • Conectar a la Instancia EC2:

    • Usa SSH para conectarte a la instancia:
      ssh -i "ruta/a/tu/clave.pem" ubuntu@tu-direccion-ip-publica
      

4. Instalación de Dependencias en EC2

  • Actualizar el Sistema:

    sudo apt update && sudo apt upgrade -y
    
  • Instalar Node.js y npm:

    curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
    sudo apt install -y nodejs
    
  • Instalar Yarn (opcional):

    npm install -g yarn
    
  • Instalar Git:

    sudo apt install -y git
    

5. Despliegue de Strapi

  • Crear un Nuevo Proyecto de Strapi:

    npx create-strapi-app my-project --quickstart
    
  • Configurar la Conexión a PostgreSQL:

    • Navega al directorio del proyecto:
      cd my-project
      
    • Instala el cliente de PostgreSQL:
      npm install pg
      
    • Edita el archivo config/database.js para incluir la configuración de PostgreSQL:
      module.exports = ({ env }) => ({
        connection: {
          client: 'postgres',
          connection: {
            host: env('DATABASE_HOST', 'tu-endpoint-rds'),
            port: env.int('DATABASE_PORT', 5432),
            database: env('DATABASE_NAME', 'nombre-de-tu-base-de-datos'),
            user: env('DATABASE_USERNAME', 'tu-usuario'),
            password: env('DATABASE_PASSWORD', 'tu-contraseña'),
            ssl: env.bool('DATABASE_SSL', false),
          },
          debug: false,
        },
      });
      
  • Iniciar Strapi:

    npm run develop
    
  • Acceder al Panel de Administración:

    • Abre un navegador y navega a http://tu-direccion-ip-publica:1337/admin para configurar el administrador de Strapi.

6. Configuración de Nginx (Opcional)

Para servir Strapi en los puertos estándar HTTP y HTTPS:

  • Instalar Nginx:

    sudo apt install -y nginx
    
  • Configurar Nginx:

    • Crea un archivo de configuración para tu sitio en /etc/nginx/sites-available/ y crea un enlace simbólico en /etc/nginx/sites-enabled/.
    • Configura el proxy inverso para redirigir el tráfico al puerto 1337 donde se ejecuta Strapi.
  • Reiniciar Nginx:

    sudo systemctl restart nginx
    

7. Configuración de SSL (Opcional)

Para habilitar HTTPS:

  • Instalar Certbot:

    sudo apt install -y certbot python3-certbot-nginx
    
  • Obtener y Configurar Certificados SSL:

    sudo certbot --nginx -d tu-dominio.com -d www.tu-dominio.com
    
  • Renovación Automática de Certificados:

    • Certbot configura automáticamente la renovación automática. Puedes verificarlo con:
      sudo certbot renew --dry-run
      

Siguiendo estos pasos, tendrás Strapi funcionando con PostgreSQL en AWS. Para más detalles, puedes consultar la [documentación oficial de Strapi sobre desplieg