Apprendre un cloud coûte cher, et pas seulement en euros. Chaque essai raté
laisse une ressource oubliée, chaque manipulation répétée allonge la
facture, et la peur du compteur pousse à faire les choses une seule fois là
où il faudrait les refaire dix. Ce guide branche la CLI scw officielle et
le provider Terraform officiel sur un émulateur local : les mêmes
commandes, la même syntaxe, aucune clé d'API réelle et aucune ressource
facturée. Il vous dit surtout, leçon par leçon, ce qui se répète en local
et ce qui exige un vrai compte, et les quatre choses qu'un émulateur ne
prouvera jamais.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »Niveau : débutant. Prérequis : la CLI scw installée, vue à la leçon
précédente.
À la fin de ce guide, vous saurez :
- Faire répondre
scwsur votre machine, sans compte Scaleway - Rejouer les leçons Instances, Block Storage, VPC et adresses IP en local
- Situer ce que l'émulateur couvre du catalogue Scaleway, produit par produit
- Décider, leçon par leçon, ce qui se répète en local et ce qui se fait une fois sur le compte
- Éviter le piège de l'appel qui part quand même chez le fournisseur
Prérequis
Section intitulée « Prérequis »Réunissez trois éléments, tous gratuits :
- La CLI
scw, installée à la leçon précédente. - feint, un émulateur local des API Scaleway, Outscale et Exoscale.
- Facultatif, Terraform 1.7 ou plus récent si vous voulez rejouer les labs en infrastructure as code.
Aucun compte Scaleway n'est nécessaire pour ce guide, et aucune carte bancaire ne sera demandée.
Pourquoi s'entraîner en local avant d'ouvrir le robinet ?
Section intitulée « Pourquoi s'entraîner en local avant d'ouvrir le robinet ? »Apprendre, c'est répéter, et sur un vrai compte chaque répétition coûte quelques centimes et deux minutes d'attente, ce qui suffit à décourager la vingtième tentative, précisément celle qui fait comprendre. Écrire une commande, se tromper, recommencer, comparer deux options : c'est cette boucle que l'émulateur rend gratuite et instantanée, et surtout sans conséquence, puisque rien ne survit à l'arrêt du processus et qu'aucune ressource ne traîne le lendemain sur votre facture.
Le point qui rend l'exercice utile est que le client, lui, est le vrai. Ce
n'est pas un simulateur qui vous apprendrait une syntaxe approximative : c'est
scw et le provider Terraform du registre, dans leurs versions publiées,
qui parlent à 127.0.0.1 au lieu de api.scaleway.com. Ce que vous apprenez
ici se transpose sans modification sur votre futur compte. Les arguments requis, la forme
des identifiants, l'ordre des dépendances entre un VPC, un Private Network et une Instance,
la syntaxe des blocs Terraform : tout cela vient du client, et le client est le même. Ce
qui change, et que la suite de cette page détaille, ce sont les réponses de la plateforme
que l'émulateur ne sait pas imiter : un type en pénurie, un quota atteint, une permission
refusée, une minute d'attente avant l'état running.
Faire répondre scw sur votre machine
Section intitulée « Faire répondre scw sur votre machine »-
Installer l'émulateur.
Fenêtre de terminal brew install stephrobert/feint/feintfeint versionLa sortie doit afficher
v0.12.0. D'autres canaux existent, dont une release vérifiée par signature, décrits dans le guide Installer feint. -
Le démarrer, puis pointer la CLI dessus.
Fenêtre de terminal feint starteval "$(feint env scaleway)"La commande
feint envexporte les variables que le SDK Scaleway attend : l'adresse de l'API, mais aussi des identifiants bien formés et fictifs. Les SDK valident la forme d'une clé avant d'émettre quoi que ce soit, d'où ces valeurs factices qui laissent démarrer un vrai client. Ce sont les mêmes variablesSCW_*que la leçon sur la CLI a présentées, et elles l'emportent sur votre fichier de configuration : c'est exactement ce qui détourne le client, et ce qu'il faudra défaire (feint stop, puis un nouveau shell) avant de revenir sur le compte réel. -
Créer une instance, comme à la leçon suivante.
Fenêtre de terminal scw instance server create name=formation-web type=DEV1-S image=ubuntu_jammy zone=fr-par-1{"id":"6bdf916f-eca2-47e8-a68e-ed5770925547","name":"formation-web","state":"stopped","commercial_type":"DEV1-S"}Aucune facturation n'a démarré, et la ressource n'existe que dans la mémoire d'un processus local. Vous pouvez recommencer autant de fois que vous le souhaitez.
-
Tout arrêter.
Fenêtre de terminal feint stopL'émulateur signale au passage combien de ressources il abandonne. Rien n'est laissé derrière, ce qui est exactement le contraire du problème que pose un lab sur un compte réel.
Que couvre feint du catalogue Scaleway ?
Section intitulée « Que couvre feint du catalogue Scaleway ? »L'émulateur monte 178 opérations Scaleway en version 0.12.0, relevées avec
curl -s localhost:4599/_feint/routes. Le tableau ci-dessous les répartit par
produit et dit ce que vous pouvez réellement créer dans chacun.
| Produit | Opérations | Ce que vous pouvez créer |
|---|---|---|
| Instances | 68 | serveurs, adresses IP, images, snapshots, volumes, groupes de sécurité et leurs règles, interfaces privées, groupes de placement |
| Load Balancer | 37 | répartiteurs, frontends, backends, ACL, routes, adresses IP |
| Block Storage | 22 | volumes et snapshots |
| VPC | 19 | VPC, Private Networks, routes |
| Public Gateway | 15 | passerelles, rattachements de réseau, adresses IP |
| IPAM | 9 | réservation, attachement et déplacement d'adresses |
| IAM | 5 | clés SSH |
| Account | 2 | lecture des projets |
| Marketplace | 1 | lecture du catalogue d'images locales |
Deux nuances valent d'être lues avant de se réjouir de ces chiffres. Un compte d'opérations n'est pas un compte de fonctionnalités : les 68 opérations Instances couvrent le cycle de vie complet d'un serveur, pas la totalité de ce que Scaleway publie. Et IAM se limite aux clés SSH : ni utilisateurs, ni politiques, ni permissions.
Quelles leçons de ce parcours se rejouent en local ?
Section intitulée « Quelles leçons de ce parcours se rejouent en local ? »Voici le verdict, leçon par leçon, pour ce parcours : il dit où l'émulateur remplace un compte, où il le complète, et où il ne sert à rien. Le tableau se lit dans l'ordre du parcours ; la colonne En local ? est la décision, la colonne Précision en donne la raison.
| Leçon | En local ? | Précision |
|---|---|---|
| Console Scaleway et clé API | non | La console est une interface web, hors du périmètre d'un émulateur d'API |
CLI Scaleway (scw) | oui | C'est le cas d'usage principal : toute la syntaxe se pratique ici |
| Régions et zones | partiellement | fr-par-1 répond ; le comportement multi-région et la disponibilité réelle par zone ne se testent pas |
| Créer votre première Instance | oui | Création, démarrage, arrêt, suppression |
| Organisations et Projets | partiellement | Les projets se lisent, ils ne se créent pas |
| Facturation, quotas et budget | non | Aucun prix, aucun quota : ce sont des valeurs de décor |
| Object Storage | non, et prudence | Non émulé, et le trafic part vraiment : voir l'avertissement ci-dessous |
| Block Storage | oui | Volumes, snapshots, redimensionnement |
| Images, cloud-init et snapshots | oui | La séquence complète de l'image dorée est servie ; cloud-init, lui, ne s'exécute pas |
| GPU Instances et Elastic Metal | non | Aucune opération de ces produits n'est montée |
| Lab fil rouge des Fondations | partiellement | Instance, volume et attachement en local ; la sauvegarde Object Storage sur le compte |
| Réseau : la carte | partiellement | Les list répondent ; les zones énumérées et les prix restent ceux du binaire et de la grille |
| VPC et Private Networks | oui | Le bloc demandé est le bloc obtenu |
| IPAM et Flexible IP | oui | Réservation, attachement, déplacement d'adresses |
| Filtrer le trafic (groupes de sécurité, NACL) | partiellement | Groupes de sécurité et règles servis ; la Network ACL (scw vpc rule set) n'est pas montée en 0.12.0 |
| Sécurité et identité, IAM | non | IAM se limite aux clés SSH ; aucune politique n'est vérifiée |
La bonne façon d'utiliser ce tableau est de s'entraîner en local, puis de refaire une seule fois la manipulation sur votre compte. Vous arrivez alors sur le vrai cloud en connaissant les commandes, et il ne vous reste à découvrir que ce qui lui est propre : les délais, les quotas et la facture.
Local ou compte réel : comment décider pour chaque geste ?
Section intitulée « Local ou compte réel : comment décider pour chaque geste ? »La règle tient en une phrase : on répète en local tout ce qui est une question de syntaxe, on fait une fois sur le compte tout ce qui est une question de plateforme. Le tableau se lit par la colonne Question que je me pose : elle dit où chercher la réponse.
| Question que je me pose | Choix | Pourquoi |
|---|---|---|
| Quelle est la syntaxe exacte de cette commande, quel argument est requis ? | local | le CLI est le vrai, ses refus d'arguments viennent du binaire, pas de l'API |
| Dans quel ordre créer VPC, Private Network, Instance, IP ? | local | les dépendances de création sont servies à l'identique |
| Combien de temps met une Instance à démarrer ? | compte réel | l'émulateur rend running pendant l'appel |
| Ce type existe-t-il dans cette zone, est-il en stock ? | compte réel | le catalogue local est une liste figée, sans availability |
| Cette clé restreinte peut-elle créer ici ? | compte réel | aucune permission n'est vérifiée en local |
| Combien coûte ce que je viens de créer ? | compte réel | aucun prix n'existe en local |
| Ma configuration Terraform est-elle valide et s'applique-t-elle ? | local, puis une fois en réel | apply local pour la logique, apply réel pour les délais et les quotas |
| Mon teardown vide-t-il bien chaque famille de ressources ? | compte réel | c'est la facture qui est en jeu, pas la syntaxe |
Rejouer les leçons Réseau et Stockage en une passe
Section intitulée « Rejouer les leçons Réseau et Stockage en une passe »Les trois commandes ci-dessous reprennent les gestes des leçons Block Storage, VPC et Flexible IP, dans l'ordre du parcours. Les sorties sont celles relevées sur l'émulateur en version 0.12.0.
scw block volume create name=formation-data from-empty.size=10G perf-iops=5000 zone=fr-par-1vpc=$(scw vpc vpc create name=formation-vpc region=fr-par -o json | jq -r .id)scw vpc private-network create name=formation-interne vpc-id="$vpc" region=fr-parscw instance ip create zone=fr-par-1{"name":"formation-interne","subnets":["172.16.0.0/22","fdba:fde8:9c04:be00::/64"]}{"id":"a89c1218-1cb2-4d35-ae05-9f37ccdb8efe","address":"203.0.113.3","type":"routed_ipv4"}Deux détails méritent d'être remarqués, parce qu'ils vous serviront sur le vrai
compte. Le Private Network reçoit d'office un bloc IPv4 et un bloc IPv6, ce
qui est le comportement de Scaleway. Et l'adresse publique tombe dans
203.0.113.0/24, une plage réservée à la documentation par la RFC 5737 :
elle n'est routable nulle part, ce qui garantit qu'aucun trafic ne part par
accident.
Pour vérifier ce que votre session a réellement traversé, feint status compte
les routes qu'un vrai client a pilotées :
provider routes driven by a client scaleway 178 10Ce que cet entraînement ne vous apprendra pas
Section intitulée « Ce que cet entraînement ne vous apprendra pas »Un émulateur qui laisserait croire à ce qu'il ne vérifie pas serait pire qu'inutile, et quatre domaines restent hors de portée. Il vaut mieux les connaître que les découvrir en production.
Les prix et les quotas n'existent pas ici. Le catalogue de types d'instances est une liste figée, mesurée chez le fournisseur : aucun test de dépassement de quota n'a de sens, et la leçon Facturation se fait nécessairement sur un vrai compte.
Les permissions IAM ne sont jamais vérifiées. L'émulateur accepte n'importe quelle identité bien formée sans contrôler de signature. C'est ce qui permet de se passer de compte, et cela interdit tout test de politique de droits.
Les identifiants ne sont pas validés. Une image ou un type de machine qui n'existe pas est accepté ici et refusé en production. Une faute de frappe dans un identifiant passe donc silencieusement.
Les transitions sont immédiates. Un serveur passe de stopped à running
pendant l'appel, là où Scaleway prend une minute. Un script qui enchaîne deux
opérations sans attendre réussit en local et peut échouer sur le vrai cloud.
Limites, quotas et plafonds
Section intitulée « Limites, quotas et plafonds »Ces valeurs décrivent l'émulateur, pas Scaleway ; elles viennent du relevé du 2026-08-30 sur feint 0.12.0 et de la documentation de l'outil.
| Plafond | Valeur | Source |
|---|---|---|
| Opérations Scaleway servies | 178 en 0.12.0 | curl -s localhost:4599/_feint/routes |
| Produits couverts | 9 (Instances, Load Balancer, Block, VPC, Public Gateway, IPAM, IAM clés SSH, Account, Marketplace) | même relevé |
| Produits absents | Object Storage, Kubernetes, bases managées, serverless, Cockpit, IAM hors clés SSH, Network ACL | même relevé |
| Port d'écoute | 4599 | feint env scaleway |
| Plage des adresses publiques émulées | 203.0.113.0/24 (RFC 5737, non routable) | sortie de scw instance ip create |
| Persistance | aucune : tout disparaît à feint stop | feint stop |
| Délais de transition | 0 : running pendant l'appel | mesuré |
| Validation des identifiants et des permissions | aucune | doc feint, Ce que feint prouve |
Antipatterns à éviter
Section intitulée « Antipatterns à éviter »Ces erreurs viennent toutes de la même illusion : un émulateur qui répond « oui » serait une preuve.
| Antipattern | Conséquence | Discipline |
|---|---|---|
| Valider une configuration Terraform Object Storage « en local » | l'appel part chez Scaleway avec les identifiants présents, et un bucket réel peut être créé | feint doctor avant tout apply, et une session sans clé réelle |
Conclure d'un apply local réussi que les identifiants sont bons | image ou type inexistants acceptés | un apply réel, une fois, sur le compte |
| Tester une politique IAM sur l'émulateur | tout est accepté, la restriction n'est jamais mesurée | lab IAM sur le compte, avec des objets gratuits |
| Enchaîner deux commandes sans attente dans un script validé en local | le script échoue sur le vrai cloud, où l'Instance met une minute | -w ou une boucle d'attente sur l'état |
Oublier feint stop et revenir sur le compte réel dans le même shell | les variables SCW_* de l'émulateur pointent toujours vers 127.0.0.1 | feint stop, nouveau shell, scw config get avant de reprendre |
| Utiliser l'émulateur pour estimer un coût | aucun prix, aucune unité | scw instance server-type list et scw billing consumption list sur le compte |
L'entraînement local sous l'angle Well-Architected
Section intitulée « L'entraînement local sous l'angle Well-Architected »Cost Optimization : payer une seule fois ce qu'on a appris vingt fois
Section intitulée « Cost Optimization : payer une seule fois ce qu'on a appris vingt fois »Combien coûte d'apprendre une commande ? Zéro, si les dix-neuf premiers essais se font en local et le vingtième sur le compte. La discipline est de réserver le compte réel aux questions de plateforme (délais, quotas, prix, permissions) et de fermer chaque session réelle par le teardown vérifié, puisque c'est la seule chose que l'émulateur ne peut pas apprendre à votre place.
Operational Excellence : le script qui marche en local n'est pas fini
Section intitulée « Operational Excellence : le script qui marche en local n'est pas fini »Le script survivra-t-il aux délais réels ? Seulement s'il attend les états au lieu de les supposer. La discipline est d'écrire les scripts avec -w et des boucles d'attente dès le local, de les rejouer une fois en réel, et de garder les deux sorties côte à côte : la différence entre les deux est la liste de ce que l'émulateur ne vérifie pas.
Pièges courants
Section intitulée « Pièges courants »Le tableau se lit par la colonne Symptôme : c'est ce que vous voyez à l'écran, message exact compris quand il y en a un ; la colonne Cause dit ce qui se passe réellement, et la colonne Solution la commande ou le geste qui débloque.
| Symptôme | Cause | Solution |
|---|---|---|
scw répond encore à l'émulateur après feint stop | variables SCW_* toujours exportées dans le shell | ouvrir un nouveau shell, vérifier avec scw config get default-region |
| Un bucket est apparu sur le compte réel pendant un lab « local » | Terraform a joint s3.<région>.scw.cloud en dur | feint doctor, et supprimer le bucket |
| La commande réussit en local et échoue en réel avec « not found » sur l'image | identifiant inexistant, accepté par l'émulateur | scw marketplace image list sur le compte |
| Le script réel échoue juste après une création | transition immédiate en local, minute réelle sur Scaleway | -w, ou attendre running avant l'étape suivante |
scw vpc rule set échoue en local | la Network ACL n'est pas parmi les 178 opérations de la 0.12.0 | leçon Filtrage sur le compte : VPC et règles sont gratuits |
Une adresse 203.0.113.x n'est pas joignable | plage de documentation, non routable, par construction | normal : rien ne doit sortir d'un lab local |
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »- Le client est le vrai :
scwet le provider Terraform officiels, pointés sur votre machine via les variablesSCW_*exportées parfeint env scaleway. - 178 opérations Scaleway sont montées en 0.12.0, dont les Instances, le Block Storage, le VPC, l'IPAM, le Load Balancer et la Public Gateway ; pas l'Object Storage, l'IAM (hors clés SSH), ni la Network ACL.
- La boucle d'apprentissage devient gratuite et instantanée, donc réellement répétable ; rien ne survit à
feint stop. - Object Storage part quand même chez Scaleway : lancez
feint doctoravant toutapply. - Prix, quotas, IAM, disponibilité par zone et délais réels ne s'apprennent que sur un compte, et c'est assumé.
- La règle de décision : la syntaxe en local, la plateforme une fois en réel, le teardown toujours en réel.
- Les adresses émulées tombent dans
203.0.113.0/24, non routable par construction.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Créer votre première Instance : La même manipulation, cette fois sur votre compte et avec une vraie facture au bout.
- Block Storage : Volumes, snapshots et redimensionnement, entièrement rejouables en local.
- VPC et Private Networks : L'isolation réseau, dont le bloc demandé est le bloc obtenu.
Ressources externes
Section intitulée « Ressources externes »Les pages officielles sur lesquelles cette leçon s'appuie, avec ce qu'on y cherche ; leur champ de validation date chaque fait cité.
- Dépôt
stephrobert/feint: releases signées, changelog et liste des opérations servies par version. - Scaleway CLI, environment variables : les variables
SCW_*quefeint envexporte, et leur priorité sur le fichier de configuration. - RFC 5737 : les plages IPv4 réservées à la documentation, dont
203.0.113.0/24.