Blog / Article #188
AWS Emulator : la fin de la galère des tests cloud en local

star

13 Novembre 2026
Illustration technique : AWS Emulator : la fin de la galère des tests cloud en local

Avec AWS on adore la flexibilité, la scalabilité, la puissance… et la facture qui va avec. Surtout quand on est en phase de développement ou de test, et qu'on se rend compte qu'une petite erreur de config ou un test un peu trop gourmand a fait flamber les coûts. Ça m'est arrivé plus d'une fois de me dire : « Mais pourquoi cette Lambda a tourné 10 000 fois en boucle ?! » et de voir la note s'alourdir inutilement. Sans parler de la latence ou de la complexité de devoir déployer pour chaque petit changement. Bref, le cauchemar des tests AWS en local, je connais.

Mais ça, c'était avant. Enfin, ça sera avant, car l'outil dont je vais vous parler, l'AWS Emulator, est arrivé sur le marché le 11 novembre 2026. Oui, je sais, c'est un peu futuriste, mais l'information est sortie et elle est passionnante. Il promet de changer la donne pour nous, les développeurs qui voulons tester nos applications cloud sans jamais quitter notre machine locale. Et sans les frais cachés qui vont avec.

AWS Emulator : un émulateur officiel, développé par des IA

L'AWS Emulator, c'est un émulateur local des API AWS. Concrètement, il permet de simuler plus de 200 services AWS à travers plus de 400 modèles d'API directement sur votre machine. L'idée, c'est de pouvoir développer et tester des applications qui interagissent avec S3, Lambda, SQS, et tout le bazar, sans avoir besoin d'un compte AWS actif ni de déployer quoi que ce soit sur le cloud réel. Le gros avantage ? Une boucle de feedback ultra-rapide et l'assurance de ne pas dépenser un centime pour des tests unitaires ou d'intégration.

Ce qui est vraiment fascinant avec cet outil, c'est son origine. Il est carrément développé et maintenu par des agents IA autonomes d'AWS ! Ces agents écrivent des tests, trouvent des problèmes et corrigent le code sans révision humaine directe. Les ingénieurs AWS définissent les spécifications et les garde-fous, mais le gros du travail est fait par l'IA. C'est quand même dingue de se dire que l'outil qui va nous aider à développer est lui-même le fruit d'une IA. Bienvenue dans le futur, je suppose.

Mise en place rapide : avec Docker, c'est la vie

Pour l'installation, si vous êtes sur Linux (x86_64 ou aarch64), vous pouvez passer par les paquets RPM ou Debian. Par exemple, pour Debian/Ubuntu :

curl -fsSLo aws-emulator.deb https://downloads.aws.com/aws-emulator/packages/aws-emulator/LTS/latest/aws-emulator_amd64.deb && sudo apt-get install -y ./aws-emulator.deb

Mais pour moi, le plus simple, surtout si vous êtes sur macOS ou Windows, c'est de passer par Docker. Par contre, et c'est un point à noter : AWS ne publie pas d'image pré-construite. Il faut la construire vous-même à partir d'un Dockerfile que vous trouverez dans la documentation officielle. Une fois que vous avez ce Dockerfile, la commande est classique :

docker build -t aws-emulator .

Ensuite, pour lancer l'émulateur, c'est tout aussi simple. L'émulateur écoute par défaut sur 127.0.0.1:9297. Dans un conteneur Docker, il est recommandé de le lier à 0.0.0.0 pour qu'il soit accessible depuis l'hôte, puis de publier le port. Voici une commande de base pour démarrer l'émulateur, en désactivant l'authentification pour faciliter les tests locaux (attention en CI/CD, l'authentification SigV4 peut être utile) :

docker run -p 9297:9297 aws-emulator -b 0.0.0.0 --auth off --telemetry off

J'ajoute --telemetry off parce que, même si les données sont anonymes, je préfère garder le contrôle sur ce qui sort de ma machine, surtout en local.

En pratique : tester vos services sans douleur

Une fois l'émulateur lancé, le cœur du problème est de dire à vos SDKs AWS ou à votre CLI de ne pas parler au vrai cloud, mais à votre émulateur local. Ça se fait via quelques variables d'environnement. Voici celles que j'utilise habituellement :

export AWS_ENDPOINT_URL=https://127.0.0.1:9297export AWS_SHARED_CREDENTIALS_FILE=~/.aws/emulator/9297/emulator_credentialsexport AWS_CONFIG_FILE=~/.aws/emulator/9297/configexport AWS_EC2_METADATA_DISABLED=trueexport AWS_DISABLE_HOST_PREFIX_INJECTION=trueexport AWS_REGION=us-east-1

Ces variables sont cruciales. AWS_ENDPOINT_URL pointe directement vers votre émulateur. Les fichiers de credentials et config sont générés par l'émulateur lui-même dans un sous-répertoire de ~/.aws/emulator/ (nommé d'après le port, ici 9297). Les deux dernières, AWS_EC2_METADATA_DISABLED et AWS_DISABLE_HOST_PREFIX_INJECTION, sont parfois nécessaires pour éviter que certains SDKs ne tentent des requêtes vers le vrai AWS ou n'injectent des préfixes d'hôte qui casseraient la simulation.

Avec ça, si vous avez un projet PHP/Laravel qui utilise le SDK AWS pour interagir avec S3 ou Lambda, il va maintenant parler à votre émulateur. Par exemple, pour S3, vous pouvez créer des buckets, y uploader des fichiers, les lister… tout ça sur votre machine, sans un octet envoyé vers Amazon. Pour Lambda, l'émulateur simule l'invocation de fonctions, même s'il ne sandbox pas votre code. C'est parfait pour valider l'intégration de votre application avec ces services.

Un point à retenir : les clés d'accès générées par l'émulateur ne fonctionnent qu'avec cette instance spécifique de l'émulateur. Chaque redémarrage, c'est un nouvel état et de nouvelles clés. L'état est en mémoire, donc tout est perdu à l'arrêt. Pour des tests propres, c'est parfait : on repart sur une base vierge à chaque fois.

Au-delà du développement : l'intégration dans votre CI/CD

L'intérêt de l'AWS Emulator ne s'arrête pas à votre machine de développement. L'intégrer dans votre pipeline CI/CD, c'est un peu la cerise sur le gâteau. Imaginez : vos tests d'intégration qui dépendent de services AWS tournent en quelques secondes, sans latence réseau, sans coût, et de manière totalement isolée. Fini les surprises sur la facture AWS à cause d'une CI/CD un peu trop zélée ou mal configurée.

Il suffit de lancer l'émulateur comme un service Docker au début de votre pipeline, de configurer les variables d'environnement pour vos tests, et le tour est joué. C'est rapide, fiable et ça permet une validation précoce des interactions avec les services AWS.

Comparaison avec les alternatives : LocalStack et Moto

L'AWS Emulator n'est pas le seul sur le marché. Avant lui, il y avait des solutions bien connues. La principale, c'est LocalStack. C'est un peu le dinosaure du genre, très complet, avec beaucoup de services émulés. Mais LocalStack a récemment mis sa version gratuite derrière une exigence de compte et l'a limitée à un usage non commercial. Ça change la donne pour les projets persos ou open-source.

Il y a aussi Moto, une bibliothèque Python qui simule AWS, avec un mode serveur autonome. C'est solide, mais parfois un peu moins complet sur certains services.

Plus récemment, d'autres alternatives open-source ont émergé, comme MiniStack, qui promet plus de 60 services et un support multi-compte/multi-région, ou Floci, qui se positionne comme un remplacement direct de LocalStack et supporte 128 services. Elles ont l'air très intéressantes et méritent un coup d'œil.

Alors, pourquoi l'AWS Emulator ? Déjà, c'est l'outil officiel. Ça donne une certaine légitimité et une promesse de fidélité aux API réelles, même si elle est variable selon le service. Le fait qu'il soit maintenu par des IA est un argument de poids sur la capacité d'AWS à le faire évoluer rapidement. Mais attention, il a des limites : il n'évalue pas les politiques IAM comme le vrai AWS, gère un seul compte et une seule région, et ne simule pas les comportements avancés comme le throttling ou les pannes. Il n'est clairement pas fait pour la production ou les tests de sécurité IAM. C'est un outil de développement et de test d'intégration, pas un clone parfait du cloud.

Verdict : un outil indispensable pour tout développeur AWS

Pour moi, l'AWS Emulator est un ajout majeur dans la boîte à outils de tout développeur qui bosse avec AWS. La promesse de tests rapides, sans frais et en local est trop belle pour être ignorée. Fini la frustration de devoir déployer pour un petit tweak ou de voir la facture gonfler pour des tests qui auraient pu rester sur ma machine. Même avec ses limites, pour le développement local et l'intégration continue, c'est un game changer.

Alors oui, il y a des alternatives, et certaines sont très bonnes. Mais la solution officielle, développée par les mêmes qui font le cloud, ça a un poids. Je suis curieux de voir comment il va évoluer et s'il va devenir aussi omniprésent que Docker dans nos environnements de développement. En tout cas, moi, je suis déjà conquis par l'idée.

Pour aller plus loin, vous pouvez consulter le dépôt GitHub officiel de l'AWS Emulator : https://github.com/aws/aws-emulator. Et pour l'annonce, l'article sur le blog d'AWS News est une bonne source : https://aws.amazon.com/blogs/aws/test-your-applications-against-aws-locally-with-aws-emulator/.

Publié le 13/11/2026 · 7 min de lecture Partager X LinkedIn

← Précédent Qwen code dans le terminal : l'ia qui code sans envoyer ta vie à la nsa Suivant → Json dans votre homelab : `jq`, le couteau suisse pour arrêter de galérer avec vos données