Aller au contenu
English
Cloud medium

S'entraîner sur Scaleway sans compte et sans facture

Simulé le ·feint 0.12.0

45 min de lecture

logo Scaleway

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.

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 scw sur 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

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.

  1. Installer l'émulateur.

    Fenêtre de terminal
    brew install stephrobert/feint/feint
    feint version

    La 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.

  2. Le démarrer, puis pointer la CLI dessus.

    Fenêtre de terminal
    feint start
    eval "$(feint env scaleway)"

    La commande feint env exporte 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 variables SCW_* 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.

  3. 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.

  4. Tout arrêter.

    Fenêtre de terminal
    feint stop

    L'é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.

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.

ProduitOpérationsCe que vous pouvez créer
Instances68serveurs, adresses IP, images, snapshots, volumes, groupes de sécurité et leurs règles, interfaces privées, groupes de placement
Load Balancer37répartiteurs, frontends, backends, ACL, routes, adresses IP
Block Storage22volumes et snapshots
VPC19VPC, Private Networks, routes
Public Gateway15passerelles, rattachements de réseau, adresses IP
IPAM9réservation, attachement et déplacement d'adresses
IAM5clés SSH
Account2lecture des projets
Marketplace1lecture 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çonEn local ?Précision
Console Scaleway et clé APInonLa console est une interface web, hors du périmètre d'un émulateur d'API
CLI Scaleway (scw)ouiC'est le cas d'usage principal : toute la syntaxe se pratique ici
Régions et zonespartiellementfr-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 InstanceouiCréation, démarrage, arrêt, suppression
Organisations et ProjetspartiellementLes projets se lisent, ils ne se créent pas
Facturation, quotas et budgetnonAucun prix, aucun quota : ce sont des valeurs de décor
Object Storagenon, et prudenceNon émulé, et le trafic part vraiment : voir l'avertissement ci-dessous
Block StorageouiVolumes, snapshots, redimensionnement
Images, cloud-init et snapshotsouiLa séquence complète de l'image dorée est servie ; cloud-init, lui, ne s'exécute pas
GPU Instances et Elastic MetalnonAucune opération de ces produits n'est montée
Lab fil rouge des FondationspartiellementInstance, volume et attachement en local ; la sauvegarde Object Storage sur le compte
Réseau : la cartepartiellementLes list répondent ; les zones énumérées et les prix restent ceux du binaire et de la grille
VPC et Private NetworksouiLe bloc demandé est le bloc obtenu
IPAM et Flexible IPouiRéservation, attachement, déplacement d'adresses
Filtrer le trafic (groupes de sécurité, NACL)partiellementGroupes 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é, IAMnonIAM 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 poseChoixPourquoi
Quelle est la syntaxe exacte de cette commande, quel argument est requis ?localle 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 ?localles dépendances de création sont servies à l'identique
Combien de temps met une Instance à démarrer ?compte réell'émulateur rend running pendant l'appel
Ce type existe-t-il dans cette zone, est-il en stock ?compte réelle catalogue local est une liste figée, sans availability
Cette clé restreinte peut-elle créer ici ?compte réelaucune permission n'est vérifiée en local
Combien coûte ce que je viens de créer ?compte réelaucun prix n'existe en local
Ma configuration Terraform est-elle valide et s'applique-t-elle ?local, puis une fois en réelapply 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éelc'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.

Fenêtre de terminal
scw block volume create name=formation-data from-empty.size=10G perf-iops=5000 zone=fr-par-1
vpc=$(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-par
scw 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 10

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.

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.

PlafondValeurSource
Opérations Scaleway servies178 en 0.12.0curl -s localhost:4599/_feint/routes
Produits couverts9 (Instances, Load Balancer, Block, VPC, Public Gateway, IPAM, IAM clés SSH, Account, Marketplace)même relevé
Produits absentsObject Storage, Kubernetes, bases managées, serverless, Cockpit, IAM hors clés SSH, Network ACLmême relevé
Port d'écoute4599feint env scaleway
Plage des adresses publiques émulées203.0.113.0/24 (RFC 5737, non routable)sortie de scw instance ip create
Persistanceaucune : tout disparaît à feint stopfeint stop
Délais de transition0 : running pendant l'appelmesuré
Validation des identifiants et des permissionsaucunedoc feint, Ce que feint prouve

Ces erreurs viennent toutes de la même illusion : un émulateur qui répond « oui » serait une preuve.

AntipatternConséquenceDiscipline
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 bonsimage ou type inexistants acceptésun apply réel, une fois, sur le compte
Tester une politique IAM sur l'émulateurtout est accepté, la restriction n'est jamais mesuréelab IAM sur le compte, avec des objets gratuits
Enchaîner deux commandes sans attente dans un script validé en localle 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 shellles variables SCW_* de l'émulateur pointent toujours vers 127.0.0.1feint stop, nouveau shell, scw config get avant de reprendre
Utiliser l'émulateur pour estimer un coûtaucun 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.

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ômeCauseSolution
scw répond encore à l'émulateur après feint stopvariables SCW_* toujours exportées dans le shellouvrir 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 durfeint doctor, et supprimer le bucket
La commande réussit en local et échoue en réel avec « not found » sur l'imageidentifiant inexistant, accepté par l'émulateurscw marketplace image list sur le compte
Le script réel échoue juste après une créationtransition immédiate en local, minute réelle sur Scaleway-w, ou attendre running avant l'étape suivante
scw vpc rule set échoue en localla Network ACL n'est pas parmi les 178 opérations de la 0.12.0leçon Filtrage sur le compte : VPC et règles sont gratuits
Une adresse 203.0.113.x n'est pas joignableplage de documentation, non routable, par constructionnormal : rien ne doit sortir d'un lab local

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

6 questions
6 min.
70% requis

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

  • Le client est le vrai : scw et le provider Terraform officiels, pointés sur votre machine via les variables SCW_* exportées par feint 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 doctor avant tout apply.
  • 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.

Les pages officielles sur lesquelles cette leçon s'appuie, avec ce qu'on y cherche ; leur champ de validation date chaque fait cité.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn