JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Carpetas remotas compartidas en la nube con Azure Storage - Guía paso a paso

En este artículo vamos a ver cómo podemos crear una carpeta remota compartida en la nube usando los servicios de Azure, cómo la podemos añadir a diferentes equipos usando incluso Directorio Activo, y cómo podemos hacer copias de seguridad para que no se pierdan datos.

Este tipo de carpetas remotas son iguales a las rutas compartidas de la red local en tu oficina, pero en la nube, por lo que no necesitas mantener un servidor. Como contrapartida generalmente son más lentas al conectarnos a través de Internet y no en una red local (aunque si a las de tu oficina accedes con una VPN, puede que anden a la par).

Tienen, para mi, dos ventajas fundamentales para casos concretos frente a un disco cloud estilo Dropbox, Google Drive o pCloud:

  1. El acceso al archivo es directo mediante el protocolo SMB. Es decir, cuando lees o escribes un archivo estás accediendo directamente a él, y no a una copia que luego se sincroniza. y que puede dar lugar a conflictos
  2. Permite el acceso simultáneo a los mismos archivos (no a copias) por parte de múltiples usuarios.

Estas dos características son importantes cuando se accede a ciertos tipos de información persistida a disco, como bases de datos basadas en archivos (Access o SQLite, por ejemplo) o cuando sea importante tener la misma copia de la información todo el tiempo y no con una demora por sincronización con posibilidad de conflictos.

Tienen varios posibles usos: desde compartir almacenamiento de bajo rendimiento entre servidores (que es realmente para lo que está pensada) hasta usarla en un equipo remoto pequeño como vía de compartir archivos de manera sencilla y sin sincronización, como en cualquier oficina tradicional.

Es evidente que este último caso no es el más común, pero en situaciones como la actual de confinamiento, y con archivos "especiales" que deben usarse de manera directa, y no en una copia que se sincroniza, pueden ser de mucha utilidad.

Vamos a ver paso a paso cómo se pueden crear en Azure y cómo añadirlos a tu sistema.

1.- Crear una cuenta de almacenamiento en Azure

Evidentemente, lo primero que necesitas es disponer de una suscripción de Azure. Con la suscripción gratuita de Azure de 1 año tienes 5GB de almacenamiento en archivos compartidos, pero es más que suficiente para muchas aplicaciones, así que ya estás tardando en dar de alta una 😊

En el portal de Azure debes añadir una nueva cuenta de almacenamiento (Storage Account), que son cuentas que albergan recursos de almacenamiento de varios tipos, como Blobs, Tablas o lo que nos interesa hoy: File Shares o archivos compartidos.

Vete a All services y busca Storage Account:

Creando una cuenta de almacenamiento

Al pulsar este icono te mostrará un listado con todas las cuentas de almacenamiento que tengas (si es que tienes alguna). Puedes usar una existente o crear una nueva. Por orden conviene crear una cuenta diferente para recursos que estén relacionados, por ejemplo con la misma aplicación o para los mismos usos. En este caso vamos a crear una nueva pulsando el botón Add:

Primer paso de la configuración

En este primer paso debemos elegir varias cosas:

  • La suscripción a la que queremos asociar el espacio de almacenamiento. Puedes tener más e una (como es mi caso), por ejemplo la personal gratuita y la de la empresa. Es, para entendernos, a quién le van a facturar el coste del servicio (aunque sea a coste 0 porque no te pasas del tamaño gratuito).
  • El grupo de recursos al que asociarlo. Es un contenedor para albergar cosas que tengas relacionadas en tu cuenta de Azure para facilitar su gestión y facturación. Por ejemplo, puedes crear un grupo de recursos para todo lo que utilices para el mismo proyecto: máquinas virtuales, funciones serverless, almacenamiento, bases de datos, redes... de forma que luego lo gestiones conjuntamente de manera más sencilla (para mi una de las grandes ventajas de Azure respecto a AWS, donde es imposible a veces encontrar nada). Puedes crear un nuevo pulsanod en Create new o usar alguno que ya tengas.
  • Nombre de la cuenta de almacenamiento. Puedes ser cualquier cosa que esté libre y que lleve solamente letras minúsculas y números.
  • Ubicación. Generalmente el que quede más cerca de tu ubicación, en especial en este caso que se trata de almacenamiento. En Europa yo suelo elegir la región norte, que son los DC que tienen en Irlanda y que quedan "cerca" de Galicia (que es donde estoy yo) y además en algunos recursos tienen mejores precios que otras zonas.
  • Rendimiento: el estándar es, obviamente, más barato que el Premium (algo así como 4 veces y pico más caro). En el caso de archivos compartidos de red, el estándar es más que suficiente porque la limitación la vas a tener en la red, no en el disco (creo yo). Sale a 5,1 céntimos de euro al mes por Gb (unos 5€ al mes por 100 GB). Baratísimo.
  • Tipo de cuenta: la versión más reciente del almacenamiento (v2 en el momento de escribir esto) es la adecuada. Blob Storage es para dar prioridad a otro tipo de almacenamiento.
  • Replicación: en Azure los datos que guardes en cualquier sitio se replican al menos en 3 sitios en tiempo real por seguridad. Algo muy grave tendría que pasar para que perdieses información. El nivel de redundancia que elijas hará que esa seguridad sea mayor o menor. La que he elegido yo, LRS, replica la información localmente, o sea, en el mismo espacio de almacenamiento (para entendernos, en "3 discos duros"), pero si la información que vas a almacenar es muy importante quizá quieras elegir otro tipo: replicación de zona (ZRS, que replica la info en otras ubicaciones de la misma zona geográfica) o replicación geográfica (GRS, que replica la información en otros data centers de otras partes del mundo: así si hay un terremoto en Irlanda que destruye el Data Center podrías recuperar los datos igual). Luego te contaré cómo hacer copias de seguridad, así que yo creo que con la básica vamos sobrados (y las otras son mucho más caras, claro).
  • Capa de acceso: Hot se usa para archivos que deben estar siempre disponibles, mientras que Cold se utiliza cuando almacenas datos a largo plazo y no tienes que usarlos en cualquier momento, pudiendo permitirte el lujo de esperar un tiempo para acceder a ellos por un precio mucho más barato, claro. Obviamente, en nuestro caso queremos Hot.

En el siguiente paso veremos cómo conectarnos a nuestro recurso de almacenamiento:

Opciones de conectividad

Podemos elegir entre una conexión pública de Azure (lo más habitual para pequeñas aplicaciones, y que he elegido yo), un punto de acceso público pero definida en una red virtual de Azure que previamente hayamos definido (complejidad extra: lo dejo fuera de este post), o una conexión privada que implica tener un enlace privado a Azure y que tiene un coste adicional por el endpoint privado (unos 6,5€ al mes) y por el tráfico intercambiado.

En este caso iremos con el punto de conexión público, que es un URL en Azure. Dado que se necesitan credenciales y que todo el tráfico va cifrado, no parece que haya mucho problema.

Ahora es el turno de la seguridad:

Configuración de seguridad

En este punto marcaremos que sea obligatorio el uso de conexiones seguras (Secure Transfer Required) y podemos dejar las demás opciones por defecto. La segunda, Large File Shares, sólo la marcaremos si queremos crear discos compartidos muy grandes, de varios Terabytes, ya que permite reservar hasta 100 Tb. No es el caso, así que lo dejamos deshabilitado. Podemos cambiarlos después si es necesario.

El siguiente paso Tags, nos lo podemos saltar, pues son simplemente etiquetas para clasificar los recursos.

Finalmente llegamos al paso de revisar y crear, en el que veremos un resumen de todo lo que hemos elegido:

Resumen de selecciones hechas para la creación del recurso

Le pegamos un repaso, y si todo está bien, pulsamos el botón azul Create y ponemos en marcha la creación del recurso.

Cuando termine (tarda unos pocos segundos) se nos ofrece ir al nuevo recurso:

El resumen del proceso

Lo cual haremos pulsando el botón azul (siempre puedes encontrarlo en cualquier momento dentro de Storage Accounts o de All Resources, claro).

2.- Crear una carpeta compartida

Ahora que tenemos el espacio de almacenamiento creado, vamos a crear la carpeta compartida. Al entrar en el espacio de almacenamiento vemos que se nos ofrecen varios tipos de almacenamiento que podemos crear:

  • Containers: antes conocidos como Blobs. Almacenan archivos en forma de objetos binarios grandes (no es un sistema de archivos). Se usan muchas veces para para aplicaciones, pero que pueden ser accedidos desde Internet y crear con ellos una CDN e incluso servir sitios web estáticos con tu propio dominio y todo.
  • File Shares: lo que nos interesa.
  • Tables: para guardar datos tabulares de altísimo rendimiento.
  • Queues: colas para acumular y procesar mensajes, instrucciones, tareas...

Pulsamos sobre File Shares, y nos muestra una lista con los que tengamos (ahora mismo ninguno). Crearemos uno pulsando en el + de la parte superior izquierda:

EL proceso de creación de la carpeta compartida

Como ves, se crea en un instante. Estará vacía y en este caso tendrá una capacidad máxima de 10 Gib.

Puedes navegar a su interior desde ahí, pulsando sobre ella. Podrás carpetas y subir archivos desde el portal de Azure, y también cambiar la cuota máxima de almacenamiento que le otorgarás a la unidad compartida.

Espacio compartido visto en el portal de Azure

Ahora mismo lo que nos interesa es conectarnos a ella. Vamos a verlo.

3.- Conectarse a la unidad desde los equipos

Básicamente tenemos dos opciones para conectarnos a la unidad remota:

1.- Usando las credenciales de acceso al espacio de almacenamiento.

Se trata de dos claves complejas que podemos utilizar para acceder al espacio. Podemos conectarnos usando un script que nos proporciona Azure al pulsar sobre el botón Connect de la figura anterior:

Scripts para conectarnos a la carpeta compartida

Como vemos tenemos las instrucciones para hacerlo desde Windows, Linux y macOS. En el caso de Windows se trata de un script de PowerShell que permite enviárselo a los usuarios, que hagan doble-clic y que se les adjunte de manera persistente.

De todos modos es interesante aprender a añadirlo a mano, usando las claves de almacenamiento que podemos encontrar en la sección Access keys de las propiedades del espacio de almacenamiento:

Claves de acceso

IMPORTANTE: estas claves servirán para acceder a TODO lo que tengamos en el espacio de almacenamiento y no sólo a los archivos compartidos, así que mucho ojo con ellas. Si es para compartir con poca gente de confianza o usarla solo nosotros no hay problema, pero no hay que perderlas de vista. Es recomendable que si las usas para conectarte a unidades compartidas, en este espacio de almacenamiento tengas tan solo la unidad que te interesa compartir con la gente a la que se la pases. Debes usar la primera (¿Por qué tenemos dos claves de almacenamiento en Azure?).

Para conectarnos a mano sólo hay que ir al explorador de archivos de Windows, pulsar en Map Network Drive. En el diálogo que aparece debemos meter la ruta de la siguiente manera:

\\EspacioAlmacenamiento.file.core.windows.net

Sustituyendo el EspacioAlmacenamiento del principio por el nombre que le hemos dado al nuestro en el primer paso, en nuestro caso:

\\pruebaazurefs.file.core.windows.net

Debemos marcar la opción de usar otras credenciales, sino se usarán las nuestras propias del sistema, que obviamente no sirven. Al pulsar en Conectar se abre un diálogo de autenticación. Ahí debemos meter como usuario Azure\pruebaazurefs (nuevamente el nombre del espacio de almacenamiento), y de clave la primera clave de las dos disponibles que acabamos de ver:

El proceso de conectar la carpeta compartida

Con esto aparecerá un nueva unidad con la letra elegida (en nuestro caso la X:\) en el explorador de archivos y podremos conectarnos a la carpeta remota para gestionar archivos a voluntad. ¡Prueba conseguida! 😊

2.- Usando usuarios y grupos de Azure Active Directory

Además del método anterior, sencillo y directo pero poco escalable, existe la opción de poder utilizar usuarios y grupos de Azure AD para conceder los permisos de la unidad. Esto es muy útil si nuestra organización ya hace uso de Directorio Activo o de Office 365 (que por debajo usa Azure AD para la gestión de usuarios). También, por supuesto, si tenemos un Directorio Activo de Windows en la oficina y está replicado a Azure AD para autenticación híbrida.

Para ello tienes que habilitar el soporte de Azure AD desde la cuenta de almacenamiento, en el apartado de Configuración (a mi me hubiera parecido más evidente meterlo en seguridad, pero bueno):

Habilitar Azure AD en configuración

Le das a habilitar y luego grabas (en la barra de la parte de arriba).

OJO: antes de hacerlo, deberás asegurarte de que tienes un Azure AD habilitado en la suscripción de Azure en la que has creado el almacenamiento. Lógicamente, porque en caso contrario no habrá directorio contra el que trabajar. Se producirá un error y te avisará en caso de que no lo hayas creado con anterioridad. No voy a entrar aquí a ver cómo se crea y se gestiona un directorio de Azure AD porque sería tema para un artículo completo, pero lo básico es bastante intuitivo. Por cierto, los directorios de Azure AD tienen una capa gratuita muy generosa (medio millón de objetos) que se incluye en tu cuenta gratuita también. ¡Ah!, si tienes Office 365 ya tienes uno que puedes usar (eso sí, si está asociado a tu suscripción).

Una vez habilitado y asignados los permisos, los usuarios utilizarían sus propias credenciales para acceder a los archivos compartidos. Mucho más escalable y fácil de gestionar y mantener.

Copias de seguridad

Otro aspecto importante del uso de carpetas compartidas en la nube son las copias de seguridad. Gracias a ellas si algún usuario borra algo importante podremos recuperar los archivos.

Los File Shares permiten crear lo que se llaman snapshots, al igual que en las máquinas virtuales. Se trata de instantáneas de cómo estaba la unidad en un momento determinado. Las podemos crear manualmente cuando queramos yendo al apartado con ese nombre en una unidad compartida:

Apartado Snapshots

Son operaciones muy rápidas. Se nos cobrarán al mismo precio que el almacenamiento de la carpeta compartida, y sólo por lo que realmente estemos ocupando.

De todos modos hacerlos a mano no es operativo para tener copias de seguridad, claro está, sólo para tener una copia antes de realizar alguna operación compleja que podría destruir información importante.

Para hacer copias de seguridad debemos utilizar los Recovery Services, en concreto los Vault:

Añadir un Vault desde todos los servicios

Su uso es muy sencillo: básicamente crear un nuevo Vault y luego crear un nuevo backup dentro de éste.

En el Vault sólo hay que elegir en qué zona geográfica lo queremos hacer (debe ser la misma que usamos para la carpeta compartida) y darle un nombre:

Creando un Vault

Puede que tarde un ratito en aparecer aunque Azure nos diga que ya esta creado.

Una vez creado añadimos una copia de seguridad, en la que elegiremos el tipo de servicio del que queremos hacer la copia de seguridad y estableceremos la periodicidad (las secuencias las he acortado porque en algunos puntos dura bastante más):

Proceso de creación de copia de seguridad

Importante: si no metes al menos un archivo en la carpeta compartida, el backup tiene dificultades para seleccionarla y no te dejará definir la copia de seguridad (seguramente porque mientras no le metes algo Azure no inicializa el espacio de almacenamiento). Así que sube cualquier archivo o crea una carpeta antes de hacer lo anterior.

Una vez creado el elemento de Backup podrás encontrar las distintas copias de seguridad almacenadas bajo el mismo, dentro del apartado File Shares, aunque hay que dar unos cuantos pasos:

Acceso a las copias de seguridad

En esta animación se ve que todavía no hay ninguna hecha y que te avisa de que se va a hacer próximamente, pero luego tendrás los diferentes snapshots que podrás restablecer o descargar si lo necesitas.

Algo a mencionar es que borrar estos Vaults luego es un infierno. Debes eliminar todo lo que tengan dentro y hay muchas más cosa de las que parece: los backups, las planificaciones, desasignar recursos... Un lío. Pero bueno, funcionan muy bien.

En resumen

Las carpetas compartidas en la nube de Azure nos proporcionan con facilidad una manera de compartir archivos a través del protocolo SMB de la misma manera que si estuviésemos en la red local de una oficina, pero a través de Internet. Nos permiten olvidarnos de mantener servidores de archivos, VPNs, copias de seguridad y disponibilidad. Y todo por un precio ridículo (incluso gratuitamente si compartimos pocos datos).

En el caso de utilizar máquinas virtuales para aplicaciones, nos dan la posibilidad de tener almacenamiento compartido entre todos los servidores, con acceso simultáneo a los archivos.

Si tenemos un Directorio Activo, un Azure AD o un directorio de Office 365, podemos además establecer permisos a usuarios y grupos de la misma manera que lo haríamos en un servidor de archivo Windows de toda la vida.

En esta guía hemos visto cómo se crean y se administran, y cómo podemos hacer sus copias de seguridad.

¡Espero que te resulte útil!

¿Este post te ha ayudado?, ¿has aprendido algo nuevo? Pues ¡ayúdame a ayudar a otros! No te costará nada y puedes conseguir premio. Es muy importante. Pulsa para saber más...
José Manuel Alarcón José Manuel Alarcón
Fundador de campusMVP.es, el proyecto de referencia en formación on-line para programadores en lengua española. Autor de varios libros y cientos de artículos. Galardonado como MVP de Microsoft desde 2004. Gallego de Vigo, amante de la ciencia y la tecnología, la música y la lectura. Ayudando a la gente en Internet desde 1996.
Descarga GRATIS mi último libro (no técnico): "Tres Monos, Diez Minutos".
Banner

Agregar comentario