Máquinas Virtuales (VM)
y Redes Virtuales (VNet)
en Microsoft Azure
¿Qué es una Máquina virtual (VM) en Azure? 
Una máquina virtual (VM) en Microsoft Azure es un recurso de computación que simula un ordenador físico dentro de la nube. Permite ejecutar sistemas operativos y aplicaciones como si estuvieras usando un servidor o PC real, pero sin necesidad de hardware propio.
Características principales de una VM
- Ejecuta sistemas operativos.
- Se puede escalar (aumentar o reducir recursos como CPU o RAM).
- Es altamente configurable según las necesidades que tengamos.
- Se paga por uso (modelo de pago por consumo).
Usos comunes
- Hospedar aplicaciones web.
- Ejecutar bases de datos.
- Entornos de desarrollo y pruebas.
- Servidores de aplicaciones empresariales.
- Caso de uso ideal: Migrar y mantener aplicaciones o sistemas legacy (antiguos) que necesitan control total y no pueden modernizarse fácilmente.
¿Qué es una Red Virtual (VNet) en Azure? 
Una Virtual Network (VNet) en Azure es una red privada dentro de Azure que permite que los recursos (como máquinas virtuales) se comuniquen entre sí de forma segura.
Es equivalente a una red tradicional dentro de un centro de datos, pero en la nube.
Características principales de una VNet
- Aislamiento total de otras redes.
- Comunicación segura entre recursos de Azure.
- Posibilidad de conectarse a redes locales (on-premise).
- Segmentación mediante sobredes (subnets).
Componentes importantes
- Subnets: subdivisores dentro de la red
- NSG (Network Security Groups): reglas de seguridad para controlar el tráfico.
- VPN Gateway: conexión entre red local y Azure.
- Azure Firewall: protección avanzada de red.
Tipos de conectividad en una VNet
- VNet interna: solo recursos dentro de Azure.
- VNet peering: conexión entre VNets.
- VPN Site-to-Site: conexión con red local.
- ExpressRoute: conexión privada dedicada (alta velocidad).
Relación entre VM y VNet
Las máquinas virtuales (VM) normalmente se crean dentro de una VNet para: - Comunicarse con otras VMs de forma segura. - Controlar el acceso a internet. - Proteger recursos mediante reglas de red.
Sin una VNet, una VM no tendría una red privada adecuada para funcionar en entornos reales.
---- [ PRÁCTICAS ] ----
1. Crear la red en Azure
¿Qué vamos a configurar?
- Tres Subredes Públicas: distribuidas en distintas zonas o preparadas para desplegar recursos en distintas zonas.
- Tres subredes privadas: también distribuidas de forma equivalente, sin exposición directa a internet.
¿Qué debemos tener en cuenta?
- La VNet será la red principal del ejercicio.
- Las subredes públicas podrán alojar máquinas virtuales con IP pública.
- Las subredes privadas no deben tener recursos con IP pública asociada.
- Para el filtrado de tráfico, utiliza un Network Security Group (NSG).
- Opcionalmente, puedes dejar preparada la salida a internet para subredes privadas mediante NAT Gateway, aunque no es obligatoria para este ejercicio si no la vas a usar
1. Diseño de la red antes de comenzar en Azure
-
VNet
- Nombre: vnet-lab
- Rango: 10.0.0.0/16
-
Subredes (6 en total)
| Tipo | Nombre | Rango | Zona |
|---|---|---|---|
| Pública | subnet-public-1 | 10.0.1.0/24 | Zona1 |
| Pública | subnet-public-2 | 10.0.2.0/24 | Zona2 |
| Pública | subnet-public-3 | 10.0.3.0/24 | Zona3 |
| Tipo | Nombre | Rango | Zona |
|---|---|---|---|
| Privada | subnet-private-1 | 10.0.11.0/24 | Zona1 |
| Privada | subnet-private-2 | 10.0.12.0/24 | Zona2 |
| Privada | subnet-private-3 | 10.0.13.0/24 | Zona3 |
2. Crear la VNet (Virtual Network) con sus subredes
Dentro de Azure, buscamos 'Redes Virtuales'
y ahí dentro le damos a crear
Empezamos con los "Datos básicos" donde le asociaremos:
- Un grupo de recursos que crearemos para esta práctica (podemos hacerlo justo abajo donde aparece "Crear nuevo" y simplemente le ponemos un nombre). Todo lo que esté asociado a ese grupo de recursos actuará como un bloque conjunto, si lo eliminamos, eliminaremos todo lo que pertenezca a ese grupo.
- El nombre de nuestra red virtual.
- La región, que es la zona geográfica real donde estan los centros de datos que guardan nuestros servicios contratados en la nube. En nuestro caso '(Europe) West Europe' porque es donde antes suelen publicar las actualizaciones. Estas actualizaciones, en Azure se llaman 'Preview' (vista previa). Pero puedes utilizar cualquier otra según lo que se necesite.
Enlace a los recursos preview según las zonas
Recomendación
puedes ir a echarle un ojo a "Service Health"
Lo siguiente que modificaremos aquí será el "Address space", la "seguridad", por ahora la dejaremos por defecto.
Aquí ya directamente podemos crear las subredes desde este apartado:
Configuramos las Subredes, en principio dejamos todo por defecto, solo modificamos lo que aparece subrayado en amarillo
Repetimos lo mismo con las otras subredes hasta que quede así:
Nos aparecerá esta ventana con un resumen de la configuración, donde confirmamos dandole en 'crear'
Esperamos a que finalice...
Información
En este punto aun las subredes no son privadas ni públicas.
Para que lo sean debemos configurar los recursos que queremos asociar y sobre todo "NSG" donde permitiremos o denegaremos lo que pueden hacer o no esas subredes.
3. Crear y asociar Network Security Group (NSG)
Vamos a crear un grupo de seguridad para las subredes privadas y las subredes públicas:
- nsg-lab-private: para la privada.
- nsg-lab-public: para la pública.
Buscaremos en los recursos de Azure lo siguiente
Una vez ahí le damos a 'crear'
Asignamos los "Datos básicos"
Después directamente le damos a 'Revisar y Crear'
Repetimos con 'nsg-lab-public' y debería de quedarnos una cosa así
Para hacerla Pública
Dentro de "nsg-lab-public" tenemos que agregar estas reglas.
--> Reglas de entrada:
- puerto 22 (para conectarnos por ssh) en nuestra ip .
- puerto 80 para acceder a la web de lo que haremos más adelante
--> Reglas de salida:
No hacen falta
Asociar las Subredes a los NSG
Para ello iremos a las VNets, seleccionamos la que hemos creado y nos vamos a subredes
Elegimos una subred, en mi caso he seleccionado 'subnet-public-1' y la asociamos a 'nsg-lab-public'
Repetimos el proceso con todas las demás subredes hasta que quede así
4. Salida a internet para subredes privadas mediante NAT Gateway (Opcional)
Para hacer q las subredes tengan acceso a internet (NAT) debemos crear una puerta de enlace de traduccción de direcciones de red.
Buscamos lo siguiente:
Le damos a crear una nueva y empezamos a escribir los datos básicos
En IP de salida agregamos la dirección ip pública
Ahora configuramos las redes, aquí vamos a añadir a que red y subred está asociada esta ip
Etiquetas
Otra cosa importante son las etiquetas, pondremos la etiqueta a estos recursos para así poder localizarlos fácilmente.
Aunque ahora mismo solo estoy yo utilizando este espacio, en el momento en el que estemos varias personas puede llegar a ser muy útil saber quien creó cada cosa.
Por último le damos a "Revisar y crear"
Ya tendríamos una dirección pública asociada a esa subred
2. Crear una máquina virtual Linux
Para crearla, necesitaremos el siguiente recurso de Azure:
Una vez ahí en el recurso, le damos a crear uno nuevo
Cuando le demos a crear nos aparecerán várias opciones con sus descripciones, en nuestro caso vamos a elegir "Máquina virtual" que es la opción básica.
Recomendación
Hay ciertas herramientas para calcular precios y ver que tipo de máquina es la más eficiente dependiendo de lo que queramos hacer, aquí tienes más información "Price Calculation"
Asignamos los "Datos Básicos"
El mismo grupo de recursos y región anteriores.
Continuamos con las opciones de disponibilidad
Son formas de evitar que nuestro servicio se caiga, como ahora mismo lo que estamos montando es un laboratorio, no lo vamos a utilizar, así que seleccionamos "No se requiere redundancia de la infraestructura"
Pero, podemos ver que hay más opciones:
-
Zona de disponibilidad:
Aquí eliges una zona física dentro de la región y puedes crear varias VMs en distintas zonas
-
Conjunto de escalas de máquina virtual:
Forma clásica en la que azure separa VMs en:
- Distintos Racks (fault domains)
- Distintos Ciclos de mantenimiento (update domains)
Por lo que no todas las VMs caen a la vez
-
Conjunto de disponibilidad:
Grupo de VMs idénticas que se escalan automáticamente (más complejo)
Continuamos con el "tipo de seguridad"
Elegirémos el más básico el "estandar" pero podemos ver q hay más tipos:
Continuamos con la "imagen" y la "arquitectura de la VM"
¡CUIDADO! Opción peligrosa [Azure Spot]
Tenemos una opción aquí bastante interesante pero ¡OJO, CUIDADO! es peligrosa, es la opción "Azure Spot"
Hay que tener cuidado porque:
- Las máquinas vituales son mucho más baratas
- Pero azure puede quitartelas en cualquier momento
Esto es porque usas capacidad sobrante del datacenter entonces si en algún momento Azure necesita esos recursos puede quitartelos casi sin aviso previo.
Es muy útil para:
- Procesos batch (scripts, cálculos)
- Renderizado
- Machine Learning
- Jobs que puedes reiniciar
Continuamos con el "tamaño"
Seguimos con la "Cuenta de administrador"
que le pondremos la siguiente configuración:
y por último, en los datos básicos, configuramos las "reglas del puerto de entrada"
Asignamos los "Discos"
Todo lo demás lo dejamos por defecto porque no tenemos discos que añadirle que ya estén creados por lo que continuamos al apartado de "Redes"
Hay también un apartado de opciones avanzadas pero tampoco lo usaremos
Asignamos las "Redes"
La añadiremos dentro de la subred pública 1
Asignamos la "Administración"
Donde dejaremos todo por defecto
Asignamos la "Supervisión"
Donde lo único que he modificado ha sido quitar el diagnóstico de arranque ya que estamos haciendo una prueba y gasta dinero de forma innecesaria.
Asignamos las "Opciones avanzadas"
No modificaremos nada así, lo dejaremos tal y como está
Por último le ponemos etiquetas que nos sirven para organizarnos cuando tenermo muchos recursos, en este caso no crearemos ninguna pero es importante saber que están.
Le damos a "Revisar y crear" para finalizar
Nos aparecerá este mensaje, donde descargaremos la clave privaad y crearemos el recurso.
Una vez nos la descarga podemos moverla a donde queramos.
tip: mi recomendación es llevarla a la carpeta .ssh
Y después de esto esperamos a que se termine de configurar y se arranque.
Está todo correcto.
3. Instalar y configurar Nginx en la máquina virtual
Para ello tenemos que acceder a la máquina virtual.
Ten en cuenta que debes tener el NSG con las reglas de entrada en el puerto 22 para el ssh y al crear la máquina, en el acceso, has puesto que ese va a ser tanto el puerto, como el método que utilizarás para acceder.
Para ver como conectar iremos a la máquina y entraremos en la interfaz de "Conectar"
Ahí nos saldrán las instrucciones, como vemos, tenemos el comando ssh que tenemos que lanzar, lo copiamos y cambiamos la ruta donde hemos guardado la clave (.ssh)
Entramos en nuestra terminal del dispositivo y lanzamos en comando que teníamos:
Una vez dentro, instalamos nginx con el siguiente comando
Cuando acabe comprobamos que el servicio está funcionando:
y también comprobaremos que nos deja acceder a la página por defecto de nginx desde el navegador con la IP pública de la máquina.
Nota
Aseguraté de que el tráfico HTTP al puerto 80 está permitido.
Lo puedes mirar en NSG.
Ten en cuenta que no soporta HTTPS, si introduces la dirección IP con "https://IP" no funcionará.
4. Copiar archivos estáticos a la máquina virtual mediante SSH.
Lo que vamos a hacer en nuestro caso es subir el sitio MkDocs que hemos creado anteriormente.
Para obtener el html que tenemos que subir a la VM lo que haremos en un
de esta forma se creará una carpeta llamada con todos los archivos, que será lo que subiremos a la VM.Una vez tenemos los archivos, los subiremos con scp a la máquina
Comprobamos que están en la máquina y los movemos a la carpeta
/var/www/html
donde se alojan los archivos que se muestran en la web.
Además le tendremos que dar permisos para que nginx pueda leerlos
Captura:
Ahora para acceder solo hace falta buscar la IP pública de la máquina en el navegador y tendremos nuestro apuntes en una web funcional
























































