mkdevs

[ TWITTER ] [ FACEBOOK ] [ GITHUB ] [ LINKEDIN ]

Bienvenue sur mkdevs



🎓 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 ?

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.