Cloud

Utiliser Mountpoint pour AWS S3

  • 13 septembre 2023
  • 3 min. à lire
AWS a annoncé la disponibilité générale des mountpoint S3, découvrez qu'est ce que c'est et comment les utiliser

AWS a annoncé la disponibilité générale des mountpoint S3 en août 2023, découvrez leur fonctionnement et comment les utiliser.

Que sont les mountpoint pour Amazon S3

Né à la suite de nombreux retours clients d’AWS, “Mountpoint for Amazon S3” est un client open-source pour Linux maintenu et proposé gratuitement par Amazon Web Services.

Son objectif est simple et pourtant très puissant, le mountpoint S3 permet de monter un bucket S3 de la même façon qu’on le ferait avec un file system local.

Développé en Rust, ce client agit comme un bridge système qui permet d’utiliser les opérations fichiers comme read ou open nativement. Mountpoint traduit alors les opérations fichiers systèmes en requêtes API AWS S3 natives telles que nous pourrions les utiliser au travers de la CLI du cloud provider (Command Line Interface).

Comment utiliser Mountpoint ?

Installation

L’installation est simple, Mountpoint est disponible au format RPM et peut être installé sur une EC2 Linux. Vous avez simplement besoin de fetch RPM et de l’installer en utilisant yum :

$ wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm
$ sudo yum install ./mount-s3.rpm

Pour les distributions basées Debian vous pouvez également l’installer avec apt-get.

Configuration

Une fois installé, vous pouvez configurer votre mountpoint comme ceci :

mount-s3 MY-BUCKET /path/to/mount

De cette façon, vous “mappez” votre bucket distant avec un répertoire local pour pouvoir opérer vos commandes sur les fichiers, le mountpoint fait le reste.

Utilisation

Une fois l’installation et configuration faites, vous pouvez utiliser ce répertoire comme bon vous semble, vos scripts et applications peuvent fonctionner normalement avec une donnée pourtant distante sur votre bucket.

$ cd /path/to/mount 
$ ls -l | head 
total 0 
drwxr-xr-x 2 yannraffin yannraffin 0 Sep 7 10:14 dataset 
drwxr-xr-x 2 yannraffin yannraffin 0 Sep 7 10:14 output 
drwxr-xr-x 2 yannraffin yannraffin 0 Sep 7 10:14 logs 
drwxr-xr-x 2 yannraffin yannraffin 0 Sep 7 10:14 build 

En termes de sécurité et de gestion des accès, tout ce que vous connaissez sur AWS et S3 s’applique. Mountpoint se “contente” (et c’est déjà pas mal) de traduire les appels sytèmes en appel API, vous devez alors gérer vos accès IAM pour pouvoir accéder au bucket, et configurer vos éventuelles bucket policies et/ou ACL le cas échéant.

La gestion des accès est la même que celle de la CLI AWS, y compris les priorités d’accès (role, variables d’env, fichier de config, etc…).

Limitations actuelles (09/2023)

Le projet est à retrouver sur Github sur cette url :

https://github.com/awslabs/mountpoint-s3/tree/main

A ce jour, le système ne propose pas de compatibilité Windows, mais une issue Github existe et ce point est en réflexion sur la roadmap du projet.

Aussi, les mountpoints ont été pensés pour des applications très demandeuses en lecture et lorsque la performance doit primer sur le reste. C’est pour cela que Mountpoint-S3 ne respecte pas entièrement le standard POSIX pour les opérations fichiers (principalement pour les écritures).

Mountpoint est optimisé pour la lecture séquentielle de fichiers volumineux et effectue automatiquement plusieurs requêtes simultanées à S3 pour améliorer le débit lorsque les lectures sont séquentielles.

La prise en charge des écritures ne se fait uniquement pour les nouveaux fichiers et elles doivent être effectuées de manière séquentielle. Si vous essayez d’ouvrir un fichier existant avec un accès en écriture, l’opération d’ouverture échouera avec une erreur d’autorisation.

Par défaut, Mountpoint n’autorise pas la suppression d’objets existants avec des commandes comme rm. Pour activer la suppression, transmettez l’indicateur —allow-delete à Mountpoint au moment de la configuration. Les opérations de suppression suppriment immédiatement l’objet de S3, même si le fichier est en cours de lecture.

Enfin, vous ne pouvez pas renommer un fichier existant à l’aide de Mountpoint.

C’est assez simple à résumer, toute action qui ne se traduirait pas simplement par une opération S3 n’est pas supportée. Vous pourrez retrouver ces limitations détaillées dans le SEMANTICS.md du répo : https://github.com/awslabs/mountpoint-s3/blob/main/doc/SEMANTICS.md

Conclusion

Ce projet est extrêmement utile et prometteur par sa simplicité d’utilisation mais aussi sa puissance. Ce type de solution ouvre désormais la porte à de nouvelles architectures qui nécessitaient souvent un file system partagé un peu inutilement (lorsque le système réalisait 80 à 90% de lecture et pas d’écriture sur des fichiers existants ou d’écriture concurrente).

Qui plus est, ce dispositif de mountpoint n’ajoute aucun surcoût complémentaire à votre utilisation du cloud (uniquement la facturation classique S3).

Yann Raffin

Yann Raffin

Cloud AWS Instructor 7x Certified | Data & AI

Nous sommes spécialisés dans la création de solutions technologiques innovantes qui aident les entreprises à rester compétitives et à prospérer.

tracking-thumb