
- AWS permite montar servidores privados altamente seguros, gestionando el acceso mediante IAM y Systems Manager sin exponer puertos.
- El diseño de red en VPC y la configuración de grupos de seguridad son fundamentales para controlar el acceso y la escalabilidad.
- La integración de almacenamiento EBS y el uso de Docker facilita desplegar aplicaciones persistentes y listas para producción o laboratorio.
Entrar en el mundo de Amazon Web Services para montar tu propio servidor quizá te imponga respeto al principio, pero te aseguro que, siendo metódico y con una buena guía, crear y proteger tu infraestructura en la nube será mucho más sencillo de lo que imaginas. En los últimos años, AWS se ha consolidado como la referencia número uno para montar soluciones flexibles y seguras, tanto a nivel personal como empresarial, dando acceso a servidores virtuales, almacenamiento, bases de datos y redes privadas virtuales con unos pocos clics.
Lo mejor de todo es que, si se hace bien, podrás tener tu servidor completamente privado, equipado para producción o laboratorio, garantizando que nadie acceda sin tu permiso, aprovechando el Free Tier durante meses sin coste e integrando servicios avanzados como Docker, almacenamiento persistente, y la posibilidad de instalar cualquier aplicación web con facilidad. Aquí vas a encontrar el paso a paso más completo y actualizado en español que te ayudará a entender, configurar y poner a punto un servidor en AWS desde cero, cubriendo todos los aspectos de red, seguridad, acceso, almacenamiento y despliegue de software, para que puedas empezar hoy mismo, incluso si eres principiante.
Índice
- 1 ¿Por qué usar AWS para montar servidores privados?
- 2 Primeros pasos: Cuenta en AWS y Free Tier
- 3 Diseña tu red privada: VPC y subredes
- 4 Configura la seguridad: Grupos de seguridad sin puertas abiertas
- 5 Acceso seguro: permisos IAM y Systems Manager
- 6 Creación y configuración detallada de tu instancia EC2 (el servidor)
- 7 Primer acceso y buenas prácticas de administración
- 8 Instalación y configuración avanzada de Docker en AWS
- 9 Configuración de almacenamiento persistente con EBS
- 10 Preparación para despliegue con Docker Compose
- 11 Crea y da permisos en los directorios de tu volumen de datos
- 12 Accediendo de forma segura a los servicios con Port Forwarding vía SSM
- 13 Configuraciones adicionales y consejos útiles
- 14 ¿Cómo montar un servidor web clásico en EC2: ejemplo con Apache, PHP y MariaDB
- 15 Conexión con base de datos RDS
- 16 Redes avanzadas y control de accesos en AWS (VPC, Endpoint Types, Transfer Family)
- 17 Tips finales y prácticas recomendadas
¿Por qué usar AWS para montar servidores privados?
Amazon Web Services fue pionera en ofrecer servidores virtualizados, escalables y con una seguridad de primer nivel a precios accesibles para cualquier usuario o empresa. Gracias a servicios como EC2, VPC y EBS, cualquier persona puede levantar una infraestructura compleja en minutos, aprovechando la potencia de la nube pero sin perder el control sobre la privacidad, el aislamiento y la gestión detallada de recursos.
Esto es posible porque AWS permite diseñar redes internas (VPC), controlar el acceso a cada puerto con grupos de seguridad específicos, usar credenciales IAM para el acceso centralizado y emplear sistemas como Systems Manager para entrar remotamente en los servidores sin exponer nunca el SSH ni otros puntos vulnerables. De este modo, se consigue una arquitectura robusta, escalable y -si se desea- prácticamente imposible de atacar desde el exterior.
Primeros pasos: Cuenta en AWS y Free Tier
Para empezar necesitas una cuenta en AWS. Si aún no la tienes, créala, ya que la propia plataforma te regala 12 meses de uso gratuito en servicios como EC2 y EBS, suficiente para tener un servidor encendido durante todo el mes y almacenar tus datos, ideal para laboratorios, proyectos personales o pequeñas aplicaciones.
Recuerda revisar bien los límites del Free Tier: EC2 te permite hasta 750 horas/mes en instancias t2.micro o t3.micro (es decir, 1 servidor encendido todo el mes), y EBS te da hasta 30 GB de almacenamiento gratuito.
Diseña tu red privada: VPC y subredes
Tan importante como el servidor es la red que lo rodea; en AWS esto se gestiona con VPC (Virtual Private Cloud). Una VPC es básicamente una red privada y lógica, aislada dentro de la nube pública de AWS, dedicada exclusivamente a tu cuenta y perfecta para desplegar recursos con alto nivel de personalización y seguridad.
Pasos básicos para crear la VPC:
- Accede a VPC desde la consola de AWS y elige la opción «Create VPC».
- Selecciona «VPC and more» para que AWS cree automáticamente subredes, tabla de enrutamiento e Internet Gateway.
- Marca la casilla «Auto-generate», asigna un nombre a la VPC (por ejemplo, N8N para un servidor de flujos) y deja las IPs como vienen por defecto si no tienes necesidades específicas.
- Elije 1 subred pública; es necesaria para que la instancia EC2 pueda salir a internet a instalar paquetes y actualizarse, aunque no expondrás servicios al exterior gracias al grupo de seguridad que configurarás después.
No es necesario configurar NAT Gateway ni VPC Endpoints para el caso de laboratorio, así evitas costes extra; el Internet Gateway ya gestiona la salida a internet. Las opciones de DNS también suelen quedar como vienen por defecto. Haz clic en «Create VPC» y tendrás tu entorno privado listo para seguir.
Configura la seguridad: Grupos de seguridad sin puertas abiertas
El auténtico guardián de tu servidor es el Security Group, una especie de firewall digital que determina qué tráfico puede entrar y salir.
Para maximizar la privacidad y la seguridad:
- Crea un Security Group asignado a tu nueva VPC. Ponle un nombre descriptivo e indícalo como pertenece a la VPC creada.
- En las Inbound rules (reglas de entrada), deja todas en blanco. Sin ninguna regla, ningún tráfico podrá acceder desde fuera, aunque la instancia tenga IP pública. Esto protege tu servidor igual que el firewall de tu casa.
- Las reglas de salida (Outbound) mantenlas abiertas por defecto para que el servidor pueda descargar paquetes, actualizaciones o acceder a otros recursos de AWS.
Ni siquiera el puerto 22 de SSH estará abierto, por lo que ningún atacante podrá intentar acceder por fuerza bruta o explotar vulnerabilidades conocidas del servicio SSH. El acceso lo gestionarás más tarde mediante AWS Systems Manager, que funciona de adentro (el servidor inicia la conexión a AWS, no al revés) y no necesita puertos abiertos.
Acceso seguro: permisos IAM y Systems Manager
La clave de administrar recursos en AWS de forma centralizada y segura es IAM (Identity and Access Management). A través de roles y políticas, decides quién puede hacer qué, y aquí es fundamental preparar el rol que permitirá a tu servidor EC2 integrarse con Systems Manager (SSM).
Pasos para crear y asignar el rol necesario:
- Desde la consola, busca IAM y accede a la sección «Roles».
- Haz clic en «Create Role».
- Elige «AWS Service» y selecciona EC2.
- Asígnale el permiso «AmazonSSMManagedInstanceCore»; es el mínimo imprescindible para que la instancia EC2 se registre en SSM y acepte sesiones seguras.
- Ponle un nombre descriptivo al rol y finaliza la creación.
Si eres usuario de los laboratorios de AWS Academy, probablemente ya tengas un rol llamado LabRole con el permiso adecuado. De lo contrario, el proceso arriba descrito es fácilmente aplicable con una cuenta estándar.
Creación y configuración detallada de tu instancia EC2 (el servidor)
Ya con toda la infraestructura de red y seguridad montada, llega el momento de lanzar tu servidor virtual EC2. Esta es la máquina sobre la cual instalarás servicios, apps u otros componentes, como Docker.
Paso a paso para desplegar la instancia:
- Accede a EC2 en la consola de AWS, selecciona «Launch Instance».
- Ponle nombre a tu servidor, algo reconocible si vas a desplegar varios (por ejemplo, «ServidorN8N»).
- Escoge como sistema operativo una AMI de Ubuntu Server (la opción por defecto) o, si necesitas otro entorno, puedes escoger variantes como Amazon Linux, Red Hat, etc.
- Para ahorrar costes, selecciona el tipo de instancia t3.micro o t2.micro, ambas entran dentro del Free Tier y son suficientes para un laboratorio.
- En «Key pair» selecciona “Proceed without key pair”; no necesitas clave SSH ya que el acceso lo gestionarás con Systems Manager, añadiendo una segunda capa de protección: aunque se abriese el puerto 22, solo podrían entrar quienes tengan la clave, que tú no generas.
- Configura la red a usar: selecciona la VPC, la subred pública y activa el autoasignado de IP pública.
- Selecciona el security group que no tiene ninguna regla de entrada.
- El almacenamiento inicial déjalo por defecto (EBS general), añadirás más adelante volúmenes adicionales si deseas almacenamiento persistente para tus datos o contenedores dockerizados.
- En “Advanced details”, busca “IAM instance profile” y selecciona el rol que has creado antes (el que incluye AmazonSSMManagedInstanceCore).
- Lanza la instancia haciendo clic en «Launch instance».
Una vez lanzada, verifica las opciones de conexión:
- SSH: rechazada por puerto cerrado.
- EC2 Instance Connect: no disponible por el mismo motivo.
- SSM: conexión exitosa utilizando credenciales de AWS identificadas en tu cuenta.
Esto asegura que la única forma de entrar es con acceso IAM y a través del canal seguro de AWS Systems Manager.
Primer acceso y buenas prácticas de administración
Cuando entras con SSM, accedes generalmente con el usuario «agente-ssm». Es recomendable que, para trabajo habitual, crees un usuario nuevo distinto de root y con permisos sudo, así reducirás riesgos y gestionarás mejor los cambios.
Comandos sugeridos tras tu primera conexión por SSM:
sudo -i adduser serveradmin usermod -aG sudo serveradmin su - serveradmin
Luego, actualiza los paquetes de tu sistema:
sudo apt update && sudo apt upgrade
Instalación y configuración avanzada de Docker en AWS
Docker es una herramienta esencial para desplegar aplicaciones de forma rápida, sencilla y aislada en tu servidor. La instalación en Ubuntu es directa, aunque puedes consultar la guía oficial de Docker para métodos avanzados.
Instala Docker y configura el usuario para utilizarlo:
sudo apt install docker.io sudo usermod -aG docker serveradmin
Para aplicar el cambio de grupo sin reiniciar puedes usar:
newgrp docker
Pero es recomendable reiniciar la instancia para asegurarte de que todo está correcto.
Configuración de almacenamiento persistente con EBS
Para que tus datos sean persistentes aunque tu instancia cambie o se elimine, debes usar discos EBS acoplados. Es fundamental si despliegas aplicaciones como bases de datos o servidores de flujos que guardan información importante.
Paso a paso para crear y montar un volumen EBS:
- Desde EC2, accede al apartado «Elastic Block Store (EBS)» y ve a “Volumes”. Haz clic en «Create volume».
- Elige el tamaño (hasta 30 GB gratis en el Free Tier) y selecciona la misma zona de disponibilidad que tu instancia EC2.
- Cuando el volumen esté «available», selecciónalo y cliquea en «Attach volume». Elige el ID de tu instancia EC2 y el nombre de dispositivo que no esté en uso (por ejemplo, /dev/sdd).
- Vuelve a tu instancia EC2, conéctate y verifica que aparece el nuevo disco con:
lsblk
Normalmente aparecerá como /dev/nvme1n1. Si es otro nombre, cámbialo por el tuyo en los siguientes pasos.
- Formatea el disco solo la primera vez:
sudo mkfs.ext4 /dev/nvme1n1
- Crea el punto de montaje:
sudo mkdir -p /mnt/data
- Monta el disco:
sudo mount /dev/nvme1n1 /mnt/data
- Verifica de nuevo con lsblk que esté correctamente montado.
- Para que el disco se monte automáticamente en cada reinicio, añade la línea correspondiente a /etc/fstab:
echo '/dev/nvme1n1 /mnt/data ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
Preparación para despliegue con Docker Compose
Docker Compose te permite gestionar servicios complejos compuestos de varios contenedores. Aquí tienes una estructura orientativa para desplegar, por ejemplo, n8n como servicio de flujos de trabajo, con la posibilidad de añadir otros servicios como bases de datos o servidores de IA.
sudo mkdir -p /opt/n8n_server sudo chown serveradmin:serveradmin /opt/n8n_server sudo nano /opt/n8n_server/docker-compose.yml
Ejemplo de contenido (ajusta rutas, variables y servicios según tus necesidades):
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=127.0.0.1
- N8N_PORT=5678
- N8N_PROTOCOL=http
- WEBHOOK_URL=http://127.0.0.1:5678/
- N8N_SECURE_COOKIE=false
volumes:
- /mnt/data/n8n_data:/home/node/.n8n
Nota sobre seguridad: Para laboratorios está bien desactivar las cookies seguras o abrir puertos en localhost, pero, si planeas usarlo en producción, deberías reforzar esta configuración y exponer los servicios solo bajo HTTPS y, si es posible, detrás de VPC endpoints, VPN o proxy inverso seguro.
Crea y da permisos en los directorios de tu volumen de datos
sudo mkdir /mnt/data/n8n_data/ sudo chown -R 1000:1000 /mnt/data/n8n_data/
Ahora ya puedes levantar tu stack con:
docker-compose up -d docker ps
Desde Docker PS podrás gestionar tus contenedores en ejecución, logs y reinicios.
Accediendo de forma segura a los servicios con Port Forwarding vía SSM
Como tienes todos los puertos bloqueados hacia el exterior, sólo podrás acceder a los servicios internos del servidor haciendo Port Forwarding mediante una sesión SSM.
Pasos para acceder al panel web desde tu equipo local:
- Instala los paquetes necesarios en tu equipo, empezando por AWS CLI y el plugin de sesiones SSM.
- Descarga desde la web oficial de AWS CLI y el plugin SSM Session Manager Plugin.
- Ejecuta estos comandos en tu terminal para verificar que todo funciona correctamente:
aws --version
Recuerda cerrar y abrir una terminal si no detecta los cambios.
- Con el ID de tu instancia EC2 (por ejemplo, i-0abcd1234efgh5678), ejecuta el siguiente comando desde tu equipo (asegurándote que tienes configuradas tus credenciales de AWS CLI):
aws ssm start-session --target i-XXXXXXXXX --document-name AWS-StartPortForwardingSession --parameters "{\"portNumber\":[\"5678\"],\"localPortNumber\":[\"5678\"]}"
Esto abrirá un túnel entre tu equipo y el servidor, permitiéndote acceder en tu navegador a localhost:5678 y administrar tus servicios internos.
De esta forma, ningún usuario externo puede acceder ni aunque conozca la IP pública del servidor. Solo quien tenga permisos IAM y inicie la sesión a través de SSM puede lograrlo.
Configuraciones adicionales y consejos útiles
Elaborar tu infraestructura en AWS tiene muchas más posibilidades según tus necesidades. Aquí algunas recomendaciones basadas en experiencias reales y en la documentación oficial:
- Para acceder a otros puertos o aplicaciones, simplemente modifica «portNumber» y «localPortNumber» en el comando anterior.
- Los grupos de seguridad pueden personalizarse si necesitas abrir servicios web para pruebas rápidas, pero recuerda cerrarlos después.
- El almacenamiento EBS puede ser ampliado, migrado o respaldado fácilmente.
- Si quieres integrar con bases de datos gestionadas, AWS RDS permite conectarlas en la misma VPC y en modo privado, sin exposición a internet.
- Para soluciones más productivas, considera usar balanceadores (ELB), redundancia y roles IAM con mínimo privilegio.
- Informa a los usuarios sobre buenas prácticas en gestión de credenciales IAM y la importancia de seguir el principio del mínimo privilegio. La rotación y monitorización de accesos son esenciales tanto para entornos empresariales como para particulares.
¿Cómo montar un servidor web clásico en EC2: ejemplo con Apache, PHP y MariaDB
¿Quieres desplegar una web clásica tipo LAMP (Linux, Apache, MariaDB/MySQL, PHP)? Es sencillo en EC2 y puedes conectarlo aún a una base de datos RDS para mayor escalabilidad y seguridad.
- Actualiza el sistema operativo:
sudo dnf update -y
- Instala Apache, PHP y MariaDB (o PostgreSQL):
sudo dnf install -y httpd php php-mysqli mariadb105 # O para PostgreSQL sudo dnf install -y httpd php php-pgsql postgresql15
- Verifica la versión instalada:
cat /etc/system-release
- Inicia y habilita Apache:
sudo systemctl start httpd sudo systemctl enable httpd
- Confirma que el grupo de seguridad permite el tráfico HTTP si quieres acceder desde fuera.
- Añade permisos sobre /var/www al usuario ec2-user para gestionar tus archivos fácilmente.
Conexión con base de datos RDS
En escenarios empresariales o con requisitos de rendimiento, conecta tu servidor a una base de datos gestionada en RDS, usando su endpoint y credenciales apropiadas y configurando la conexión en tus scripts o aplicaciones.
Ejemplo en PHP:
Siempre usa las credenciales de forma segura y, si usas autenticación avanzada, recurre a roles IAM con permisos limitados.
Redes avanzadas y control de accesos en AWS (VPC, Endpoint Types, Transfer Family)
Para conexiones internas sin usar Internet pública, AWS permite establecer puntos de acceso (VPC Endpoints), en especial para servicios como SFTP, FTPS o FTP mediante Transfer Family.
- Los endpoints pueden ser accesibles sólo desde tu VPC y usar IPs elásticas para conexiones controladas.
- Las opciones de EndpointType incluyen VPC y VPC_ENDPOINT; recientemente, AWS recomienda EndpointType=VPC para más funcionalidad y menor coste.
- Para modificar un endpoint existente, debes detenerlo, ajustar y reiniciar.
- Las políticas IAM pueden controlar quién crea o elimina estos endpoints, garantizando mayor seguridad en entornos corporativos.
Tips finales y prácticas recomendadas
- Revisa los recursos y actividad con Amazon CloudWatch y habilita los logs adecuados.
- Elimina recursos no utilizados para evitar cargos innecesarios.
- Antes de desplegar aplicaciones sensibles, verifica los roles IAM y los puertos configurados.
- Utiliza etiquetas para gestionar tus recursos eficientemente a largo plazo.
Comenzar con tus servidores en AWS puede parecer desafiante, pero con una buena estrategia podrás tener un entorno aislado, privado, flexible y seguro en poco tiempo, ideal tanto para aprendizaje como para despliegues productivos pequeños. La clave está en comprender bien la arquitectura de red, gestionar correctamente los grupos de seguridad y roles IAM, y aplicar buenas prácticas de administración. Así maximizarás el potencial de la nube, aprovechando tecnologías como Docker, VPC, EBS y servicios gestionados de bases de datos, entre otros recursos de la plataforma AWS.







