Por qué elegir AWS EC2 en lugar de alojamiento compartido: control total del servidor para configuraciones personalizadas, escalabilidad a medida que crece el proyecto, mayor credibilidad profesional ante clientes y una valiosa experiencia en infraestructura cloud.
Tecnologías empleadas: Backend Laravel 12, Frontend Tailwind CSS, Servidor Ubuntu 22.04 en AWS EC2 t2.micro, Servidor web Nginx, Base de datos SQLite ideal para portfolios, SSL con Lets Encrypt gratuito
Paso 1 - Creación de la instancia EC2: lanzar instancia t2.micro en el free tier, configurar security groups para HTTP 80, HTTPS 443 y SSH 22. Conectar vía SSH para continuar la configuración.
Paso 2 - Configuración del servidor: actualizar sistema con sudo apt update && sudo apt upgrade -y. Instalar PHP 8.3 y extensiones necesarias como php8.3-fpm php8.3-mysql php8.3-xml php8.3-curl php8.3-zip. Instalar Nginx con sudo apt install nginx. Instalar Composer con curl -sS https://getcomposer.org/installer | php y mover composer.phar a /usr/local/bin/composer.
Paso 3 - Despliegue de Laravel: clonar repositorio con git clone https://github.com/tuusuario/portfolio.git /var/www/portfolio. Instalar dependencias con composer install --optimize-autoloader --no-dev. Ajustar permisos sudo chown -R www-data:www-data /var/www/portfolio && sudo chmod -R 755 /var/www/portfolio && sudo chmod -R 775 /var/www/portfolio/storage y ejecutar php artisan key:generate si aplica.
Paso 4 - Configuración de Nginx: crear bloque de servidor apuntando a /var/www/portfolio/public, usar try_files $uri $uri/ /index.php?$query_string y configurar fastcgi_pass unix:/var/run/php/php8.3-fpm.sock junto a include fastcgi_params. Reiniciar nginx y php-fpm tras cambios.
Paso 5 - SSL con Lets Encrypt: instalar certbot sudo apt install certbot python3-certbot-nginx y obtener certificado con sudo certbot --nginx -d tudominio.com. Lets Encrypt gestiona la autorrenovación a través de systemd timers de certbot.
Despliegue automático: integrar Webhooks de GitHub y crear un endpoint seguro que al recibir push en la rama main ejecute git pull origin main y limpie caches de Laravel con php artisan config:clear php artisan cache:clear. Es recomendable proteger el webhook con un secreto y verificar firmas en el servidor.
Seguridad y endurecimiento: aplicar headers de seguridad como X-Content-Type-Options nosniff, X-Frame-Options DENY y X-XSS-Protection 1; configurar permisos de archivos estrictos; nunca versionar archivos .env; usar contraseñas fuertes; mantener actualizaciones regulares y restringir acceso SSH con claves y firewall.
Optimizaciones de rendimiento: habilitar OPcache editando /etc/php/8.3/fpm/php.ini y seteando opcache.enable=1; optimizar el autoloader de Composer con composer install --optimize-autoloader --no-dev; cachear configuraciones y rutas de Laravel con php artisan config:cache php artisan route:cache php artisan view:cache.
Monitorización y mantenimiento: vigilar logs de Laravel en /var/www/portfolio/storage/logs/laravel.log y logs de Nginx en /var/log/nginx/error.log; configurar alertas y backups regulares mediante cron jobs para la base de datos SQLite o exportación periódica; realizar snapshots AMI para recuperación rápida.
Estrategia de backups y despliegue: copias regulares de la base de datos, versionado de código con Git, snapshots de servidor y, si se necesita mayor resiliencia, integración con servicios de CI/CD y balanceo de carga.
Coste estimado: EC2 t2.micro gratuito el primer año en el free tier, luego alrededor de 9 USD al mes; dominio aproximadamente 12 USD al año; SSL gratuito con Lets Encrypt. Para portfolios el coste es muy bajo, especialmente durante el primer año.
Resultados típicos: tiempos de carga por debajo de 2 segundos, calificación A+ en SSL, diseño responsive, despliegues automáticos y métricas con Google Analytics. Ejemplo de portafolio desplegado siguiendo estos pasos sirve como referencia de rendimiento y buenas prácticas.
Buenas prácticas y recomendaciones: empezar simple con t2.micro para portfolios, automatizar despliegues y renovaciones SSL, priorizar la seguridad con headers y permisos, monitorizar logs y rendimiento, y planificar escalado cuando sea necesario.
Errores comunes a evitar: permisos de archivos mal configurados, security groups abiertos incorrectamente, omitir instalación de certificado SSL y no supervisar registros de errores.
Próximos pasos cuando se necesita escalar: integrar CDN como CloudFront, migrar base de datos a RDS para mayor rendimiento, añadir balanceo de carga para tráfico alto y adoptar pipelines CI/CD con AWS CodePipeline o herramientas equivalentes.
Sobre Q2BSTUDIO: somos Q2BSTUDIO, empresa especializada en desarrollo de software, aplicaciones a medida, inteligencia artificial aplicada a empresas, ciberseguridad y servicios cloud. Ofrecemos soluciones completas que incluyen diseño y desarrollo de aplicaciones a medida, integración de agentes IA y proyectos de inteligencia de negocio con herramientas como Power BI. Si buscas migrar infraestructuras o desplegar en la nube contamos con experiencia en servicios cloud AWS y Azure y en soluciones de inteligencia artificial para empresas.
Palabras clave integradas naturalmente: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.
Si ya has desplegado aplicaciones Laravel en AWS comparte los retos que encontraste. En Q2BSTUDIO podemos ayudarte a optimizar despliegues, seguridad y escalado para que tu portfolio o aplicación de negocio funcione de forma fiable y segura.
Etiquetas: laravel aws deployment portfolio webdev php nginx ssl