❌

Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Floci - L'émulateur AWS open source qui tourne en local

Si vous développez pour AWS, il y a de bonnes chances que LocalStack tourne déjà quelque part dans votre docker-compose ou votre CI. C'est un peu l'outil incontournable pour tester ses buckets S3 et ses fonctions Lambda sans avoir à toucher au vrai cloud. Sauf que depuis mars dernier, ses nouvelles versions exigent un compte LocalStack et un jeton d'authentification, CI comprise, et surtout l'édition Community n'est plus prise en charge.

Ouin !

Et comme si ça ne suffisait pas, l'offre gratuite qui reste interdit totalement l'usage commercial. Donc si vous l'utilisez dans le cadre de votre travail, faudra passer à la caisse. Alors, oui, ne pas respecter la licence ou se figer sur une ancienne image reste possible, mais déjà, ça ne se fait pas, et ensuite, niveau faille de sécu, ce n'est pas top.

Mais c'est là qu'arrive en sauveur Floci, un émulateur AWS local sous licence MIT qui se présente comme un remplaçant direct de LocalStack, sans avoir besoin de se créer un compte ou un jeton et surtout sans offre payante planquée dedans.

Maintenant, le principe reste le même puisque vous pointez dessus l'AWS CLI (Floci écoute sur le port 4566), vos SDK, Terraform, OpenTofu ou le CDK, avec la région de votre choix et des identifiants bidon, et vos commandes habituelles tomberont sur votre machine au lieu de partir chez Amazon.

Le plus simple pour démarrer, c'est sa CLI qu'on peut déployer avec Homebrew (il y a aussi un script pour Linux et un pour Windows) :

brew install floci-io/floci/floci
floci start
eval $(floci env)
aws s3 mb s3://my-bucket

Ensuite, faites un floci start pour lancer l'émulateur dans un conteneur et lui monter le socket Docker de votre machine. Floci s'appuie sur de vrais conteneurs dès que la fidélité l'exige ce qui fait que Lambda tourne dans l'image d'exécution officielle d'AWS, RDS lance un vrai PostgreSQL, MySQL ou MariaDB, ElastiCache un Valkey, et c'est pareil pour ECS, EC2 ou EKS.

J'ai fait l'essai sur mon Mac avec un bucket S3, une table DynamoDB et une petite fonction Lambda en Python, et tout a répondu du premier coup à la CLI AWS. La Lambda a juste mis six secondes à répondre au premier appel, puis moins d'une seconde au suivant.

Pour voir ce qui se passe ensuite, une console web est dispo localhost:4566/_floci/ui, avec vos ressources rangées par service.

La console web de Floci sur localhost, après un essai sur S3, DynamoDB et Lambda

Notez aussi que si vous venez de LocalStack, la bascule se résume simplement dans le nom de l'image puisque Floci traduit tout seul les variables d'environnement de LocalStack, exécute sans modification les scripts d'init rangés dans /etc/localstack/init/ et répond même sur /_localstack/health. Cela veut dire qu'une CI qui attend ce signal ne voit pas la différence et ça c'est super cool pour migrer vite fait bien fait.

Et si vos scripts appellent aws ou boto3, prenez l'image floci/floci:latest-compat, qui embarque les deux.

Par contre, méfiez-vous du volume de données, car LocalStack range tout par défaut dans /var/lib/localstack et Floci dans /app/data. Donc dans le docker compose, pointez bien votre volume sur /app/data sinon, vous perdrez vos fichiers au premier restart du docker.

Après n'oubliez pas non plus que Floci imite le comportement d'AWS, et pas sa sécurité. En effet, par défaut, il n'applique aucune politique IAM, donc si vous voulez vérifier qu'un rôle trop resserré bloque bien une action, il faudra activer la variable FLOCI_SERVICES_IAM_ENFORCEMENT_ENABLED. Et certains services ne sont également que des façades. Par exemple Bedrock Runtime renvoie des réponses factices et Transcribe termine ses tâches aussitôt, sans jamais traiter l'audio, donc oui, votre code peut les appeler, mais le résultat ne sera pas au rendez-vous, ce qui est tout à fait normal.

Pour le reste, les données sont stockées en mémoire par défaut et s'effaceront à l'arrêt, ce qui est pile poil ce qu'on veut en CI. Vous pouvez quand même le paramétrer pour que ça s'écrive sur le disque si vous voulez...

Voilà, à essayer sur une branche de votre CI si vous voulez vous débarrasser de débrancher LocalStack pour de bon !

Source : Floci sur GitHub

NetBird – Créez un réseau privé sécurisé hyper facilement

Après vous avoir présenté WirePiUS ou encore Netmaker qui permettent de créer facilement des réseaux VPN basés sur Wireguard, je tiens aujourd’hui à vous présenter NetBird.

Ce logiciel libre qui s’installe sur un serveur en moins de 5 min, va vous permettre de créer un réseau privé sécurisé pour votre organisation ou simplement votre petit chez vous.

L’idée, vous l’aurez compris, c’est de pouvoir connecter plusieurs sites éloignés ou simplement partager des fichiers volumineux et confidentiels avec vos collègues en toute sécurité. Ainsi, la plateforme Netbird combine un VPN Wireguard sans configuration, un système de contrôle d’accès centralisé et utilise WebRTC ICE, STUN et TURN pour établir des connexions entre machines.

Bien sûr, la double authentification est de la partie comme vous pouvez le voir sur la vidéo ci-dessous :

Pour installer NetBird, il vous faudra Docker avec docker-compose et jq + curl installés.

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  • Une machine Linux avec au moins 1 CPU et 2 Go de RAM.
  • La machine doit être accessible publiquement sur les ports TCP 80 et 443 et UDP : 3478, 49152-65535.
  • Un nom de domaine public pointant vers la machine.
  • Docker installé sur la machine avec le plugin docker-compose (guide d’installation de Docker).
  • jq installé. jq est généralement disponible dans les dépôts officiels et peut être installé avec la commande
    sudo apt install jq 
    ou 
    sudo yum install jq
  • curl installé. curl est généralement disponible dans les dépôts officiels et peut être installé avec la commande 
    sudo apt install curl 
    ou
    sudo yum install curl

Téléchargez et exécutez le script d’installation :

export NETBIRD_DOMAIN=votre-domaine-public.com; curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started-with-zitadel.sh | bash

Ce script téléchargera et exécutera l’installation de NetBird sur votre machine. Il vous demandera de saisir le nom de domaine public que vous souhaitez utiliser pour NetBird.

Puis pour démarrer le service NetBird:

docker-compose up -d

Cette commande démarrera tous les conteneurs Docker nécessaires à l’exécution de NetBird.

Une fois l’installation terminée, vous pouvez gérer les ressources NetBird via docker-compose. Par exemple, pour redémarrer le service NetBird, vous pouvez exécuter la commande suivante :

docker-compose restart netbird

Vous pourrez alors accéder à l’interface utilisateur Web de NetBird via votre nom de domaine public.

Génial non ? Ça n’a jamais été aussi simple d’avoir son réseau privé virtuel et bien sûr hautement sécurisé. Suffit d’une petite box Linux et roule ma poule.

Vous aurez plus d’infos sur Netbird ici.

❌