đ LocalStack : Se former sur AWS en Local
Qu'est-ce que LocalStack ?
LocalStack est un simulateur de services cloud AWS qui s'exécute entiÚrement dans un conteneur Docker sur votre machine. Il permet de reproduire les API de services majeurs (S3, Lambda, DynamoDB, SQS, etc.) sans jamais se connecter à Internet ni aux serveurs d'Amazon.
Pourquoi l'utiliser pour se former ?
- GratuitĂ© totale : Pas de facturation surprise en fin de mois ou pas car maintenant LocalStack est devenu payant et on peut seulement bĂ©nĂ©ficier de 14 ou 45 jours de Trial Mode đą.
- Vitesse : Déploiements instantanés puisque tout est local.
- Sécurité : Vous pouvez faire des erreurs, supprimer des ressources ou tester des scripts "sales" sans conséquence.
- Mode hors-ligne : Travaillez dans le train ou sans connexion.
Comment le mettre en place ?
C'est trÚs simple si vous avez déjà Docker installé. Voici la méthode la plus propre utilisant Docker Compose.
Pour installer LocalStack pour AWS, il faut tout de mĂȘme s'incrire sur le cloud et crĂ©er un compte avec un billing trial de 45 jours. Pour cela consulte le guide d'installation et le guide du auth token.
1. Le fichier docker-compose.yml
Créez un dossier pour votre projet et placez-y ce fichier :
services:
awslocal:
image: localstack/localstack:latest
container_name: awslocal
hostname: awslocal
tty: true
stdin_open: true
volumes:
- "./volumes:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"
ports:
- "4566:4566" # Gateway LocalStack
- "4510-4559:4510-4559" # Plage de ports pour les services
environment:
- DEBUG=1
- DOCKER_HOST=unix:///var/run/docker.sock
- ACTIVATE_PRO=0
- SKIP_SSL_CERT_DOWNLOAD=1
- LOCALSTACK_AUTH_TOKEN=fake-J8FC1RRulNQGNzSB8YtQtS525TO0E8l1
networks:
- boilerplate-network
awscli:
image: python:3.10-slim
container_name: awscli
hostname: awscli
volumes:
- .:/apps
working_dir: /apps
networks:
- boilerplate-network
environment:
- AWS_ACCESS_KEY_ID=test
- AWS_SECRET_ACCESS_KEY=test
- AWS_DEFAULT_REGION=us-east-1
- LOCALSTACK_HOST=awslocal
# On garde le container actif pour pouvoir y entrer
tty: true
stdin_open: true
# On installe les outils au démarrage (ou via un Dockerfile personnalisé)
command: >
sh -c "pip install awscli-local awscli && tail -f /dev/null"
networks:
boilerplate-network:
name: boilerplate-network-localstack
driver: bridge
2. Lancer l'environnement
Dans votre terminal, exécutez : docker-compose up -d
3. Conclusion
Je n'irai donc pas plus loin avec LocalStack (pour le moment), je vais regarder ce qu'il est possible de faire avec MiniStack qui est sous license MIT et qui semble prometeur. A plus sur MiniStack.