AI LUKE.
FR
Build apps · Guide et explications

Exécuter des services AWS sur son portable avec AWS Emulator

Cette démo Python utilise un stockage pour les images, une file de tâches de redimensionnement et une table pour suivre les résultats. Le téléchargement contient le code, les trois images originales et les six aperçus JPEG obtenus sur mon Mac.

Luke Byrne
Luke ByrneAI Luke · Luke Byrne | AI & Tech
Vidéo publiée le 13 nov. 2026· 5 min de lecture

Vidéo en français

Voir sur YouTube ↗

Construire l’image Docker de l’émulateur

Installez Docker et ouvrez le guide Docker d’AWS ci-dessous. Copiez son Dockerfile dans un dossier vide. Sur une puce Apple, le nom du paquet RPM se termine par aarch64. Sur une puce Intel ou AMD, choisissez x86_64. L’archive contient la recette ARM de la vidéo.

  1. Dans le dossier du Dockerfile, exécutez docker build -t aws-emulator .
  2. Lancez le conteneur avec la commande macOS/Linux ou Windows du guide Docker. Associez le port 9297 à 127.0.0.1. Gardez ce terminal ouvert et utilisez-en un autre pour l’application.

Connecter Python aux services locaux

Avec le port par défaut, l’émulateur crée emulator_credentials et ca.pem dans .aws/emulator/9297, sous votre dossier personnel. Copiez les trois variables d’environnement du fichier README dans votre terminal puis lancez la vérification. La réponse confirme que le point de terminaison local et son certificat fonctionnent.

  1. Créez un environnement virtuel Python 3 et installez boto3 et Pillow. L’application fournit l’adresse locale et le certificat à ses clients AWS.
  2. Dans le dossier décompressé, exécutez python3 spare-computer/preview.py run/outputs/03-grid.png --out gallery-result. Ouvrez gallery-result/03-grid.jpg. L’original de 1920 × 1080 donne un JPEG de 320 × 180.

Suivre les deux workers de la galerie

Le traitement par lots démarre avec Orbit, Wave et Grid. S3 conserve les originaux, SQS transmet le nom de la tâche et la clé de l’objet, et DynamoDB enregistre le worker et les clés des fichiers obtenus. Le README contient la commande Docker des deux workers et l’archive inclut les six JPEG de référence.

  1. Pour chaque image, ouvrez la version carte de 480 × 270 et la version liste de 160 × 90. Dans mon essai, le worker B a pris Orbit pendant que le worker A traitait Wave.
  2. Consultez le résultat des workers et l’état de la file dans la démo. La répartition des tâches peut changer d’un essai à l’autre.

Confier le redimensionnement à un autre ordinateur

Le programme de redimensionnement lit un PNG et renvoie un JPEG. Dans la variante SSH, le coordinateur interroge SQS et S3 en local, envoie seulement l’image à une machine qui vous appartient et enregistre le JPEG retourné. Python et Pillow suffisent sur cette machine.

  1. Configurez l’accès SSH à votre machine et vérifiez sa clé d’hôte. Copiez ssh-worker/resize.py sous le nom preview-resize.py dans votre dossier personnel sur cette machine.
  2. Relancez la commande avec un nouveau dossier de sortie et --ssh-host suivi de votre alias SSH. Lors de mon essai entre deux conteneurs sur un Mac, le JPEG de Grid était identique à celui du traitement local.

À retenir

EC2 peut afficher une instance « running » dans l’émulateur. C’est le lancement d’un worker qui déclenche le traitement des images. Les fichiers téléchargés sur votre ordinateur restent disponibles après l’arrêt.

À propos de cet article et de ses sources

Cette configuration sert au développement. À l’arrêt de l’émulateur, les données des services conservées en mémoire disparaissent. La vidéo utilise un seul Mac physique. Je n’ai mesuré aucun gain de vitesse sur un deuxième ordinateur.

Vidéo YouTube d’origine ↗