đ Scaleway â The European Cloud (ĂcosystĂšme & Services)
Panorama IDEO-Lab de Scaleway : alternative souveraine, Bare Metal, Kapsule (K8s), Object Storage, Serverless, Cockpit (Observabilité) et infrastructure Multi-cloud.
Vue dâensemble Scaleway
Positionnement "Alternative Cloud", souveraineté européenne, écosystÚme produits et pricing.
Souveraineté Multi-CloudInfrastructure & Org
Régions (PAR, AMS, WAW), Zones de disponibilité (AZ), Projets et isolation VPC.
PAR/AMS/WAW VPCCompute (Instances & Metal)
Instances virtuelles, Elastic Metal, Dedibox (Bare Metal), Kubernetes Kapsule & Kosmos.
Instances KapsuleStorage (Object & Block)
Object Storage (S3 compat), Block Storage (Low latency), Managed Databases & Backups.
S3 API BlockRéseau & Edge
VPC (Private Networks), Public Gateways, Load Balancers, DNS & IP Failover.
Private Network Load BalancerData & Messaging
Managed PostgreSQL/MySQL, Redis, Messaging (NATS/SQS/SNS), Serverless DB.
RDB RedisServerless & Containers
Serverless Functions, Serverless Containers, Jobs, Messaging & Triggers.
ContainersSécurité & IAM
IAM (Policies, Groups), Secret Manager, Key Manager (KMS), Bastion & Firewalls.
IAMCockpit & Observabilité
Managed Grafana/Mimir/Loki, Alerting, Dashboarding unifié multi-source.
CockpitDevOps & IaC
Scaleway CLI (scw), Terraform Provider, Packer, Ansible & API/SDK.
Terraform SCW CLIBare Metal & Hybrid
Elastic Metal, Interconnexion Dedibox â Cloud, Kosmos (K8s Multi-cloud).
Elastic MetalCheat-sheet Scaleway
Commandes scw essentielles, configuration S3 (rclone/aws-cli) et astuces.
MemoDatacenters & Souveraineté
| Région / AZ | Type DC | Specs Physiques |
|---|---|---|
| PAR-1 (DC2) | Legacy | Historique. Connectivité massive. Focus Bare Metal. |
| PAR-2 (DC3) | Bunker | Ancien abri anti-atomique. Haute sécu physique. HDS. |
| PAR-3 (DC5) | Eco-Design | PUE < 1.15. Refroidissement adiabatique (0 clim). WUE ~0. |
| AMS / WAW | Expansion | Hubs connectivité Nord & Est Europe. Latence < 30ms vers DE. |
Compliance : ISO 27001, ISO 50001, HDS (Santé), SWIPO. Immunité Cloud Act (Capital 100% FR Iliad).
Backbone Network (AS12876)
- Capacité Edge : > 10 Tbps (Réseau Iliad/Free).
- Peering : France-IX, AMS-IX, DE-CIX + PNI (Private Network Interconnect) avec AWS/GCP.
- Protection : Arbor Networks (Anti-DDoS volumétrique) inclus par défaut sur toutes les IPs.
- Latence Inter-AZ : < 1ms (Fibre noire propriétaire en IDF).
- Architecture : Clos Network (Spine/Leaf). Pas de sur-allocation bande passante sur les offres PRO2/ENT1.
ModĂšle d'Isolation (Hierarchie)
- Organization : Billing Root. Lié au SIRET/VAT. Propriétaire des Users.
- Project : Boundary technique stricte.
- VPC Dédié : Chaque projet a son propre VLAN L2 isolé.
- Quotas : Limites vCPU/RAM/GPU spécifiques par projet.
- IAM Scope : Les droits s'appliquent au niveau Projet (ou Orga).
IAM & Secret Management
- Principals : Users (Humains) vs Applications (API Keys pour CI/CD).
- Policies : JSON Rules. Ex:
ObjectStorageReadOnly,InstancesFullAccess. - Secret Manager : Vault managé. Versioning des secrets. Intégration K8s via External Secrets Operator.
Architecture VPC (Private Network)
Le VPC Scaleway est régional (Multi-AZ). C'est un Layer 2 étendu.
| Composant | Fonction | Limites |
|---|---|---|
| Private Nic | Interface eth1. DHCP managé (192.168.x.x). | Jusqu'à 8 PN par instance. |
| Public Gateway | NAT Sortant (SNAT) + Bastion SSH. Mode HA. | Bandwidth: 500Mbps Ă 5Gbps. |
| Load Balancer | L4 (TCP) / L7 (HTTP). Terminaison SSL. | IP Anycast. Certs Let's Encrypt auto. |
# Exemple Terraform VPC + Gateway
resource "scaleway_vpc_private_network" "pn" { name = "private-network" }
resource "scaleway_vpc_public_gateway" "pgw" { type = "VPC-GW-M" } # 2Gbps
resource "scaleway_vpc_gateway_network" "main" {
gateway_id = scaleway_vpc_public_gateway.pgw.id
private_network_id = scaleway_vpc_private_network.pn.id
enable_dhcp = true
}
Compute Specs (Instances & Metal)
| Gamme | CPU Arch | Use Case | Specs Max |
|---|---|---|---|
| PRO2 | AMD EPYC 7003 (Milan) | Prod Web, App Servers. vCPU dédiés. | 32 vCPU, 128 GB RAM. BV: 1.5 Gbps. |
| ENT1 | Xeon Gold / Platinum | High RAM, DBs, ERP. NVMe Cache inclus. | 96 vCPU, 384 GB RAM. |
| Elastic Metal | Bare Metal (Ryzen/Xeon) | Noisy-neighbor free. Virtualisation. | 1 TB RAM, Dual 25Gbps Uplink. |
| GPU | NVIDIA H100 / L40S | LLM Training, Rendering. | H100 PCIe 80GB VRAM. |
Storage & Data Technologies
- Block Storage (SBS) :
- IOPS : 5,000 (Basic) Ă 15,000 (High Speed).
- Latence : < 1ms (NVMe over Fabric).
- Features : Resize à chaud, Snapshots instantanés (CoW), Unmount/Move.
- Object Storage (S3) :
- Standard : Multi-AZ (Erasure Code 4+2). 99.9999999% Durabilité.
- OneZone-IA : Mono-AZ. Moins cher (-20%).
- Glacier (C14) : Archivage froid sur hardware dédié. Restore time variable.
- Managed DB (RDB) : PostgreSQL 15+, MySQL 8. Extension pgvector supportée pour RAG/IA. Backup WAL archivés sur S3.
ModĂšle de Pricing & Capping
Scaleway applique un modÚle de facturation horaire plafonné ("Monthly Cap").
| Ressource | RĂšgle Pricing | Exemple (Est.) |
|---|---|---|
| Instances | FacturĂ© Ă l'heure jusqu'Ă 500h. Au delĂ = Gratuit (Prix mois fixe). | PRO2-S (4vCPU/16G) : ~0.046âŹ/h -> Cap Ă ~23âŹ/mois. |
| Bandwidth IN | Gratuit & IllimitĂ©. | 0 âŹ. |
| Bandwidth OUT | 75 Go inclus. Puis ~0.01âŹ/Go (vs AWS 0.09âŹ). | 1 TB Out = ~10⏠chez SCW vs ~90⏠chez AWS. |
| Kapsule | Control Plane offert (Mutualisé). | On ne paie que les Workers (Instances). |
EcosystĂšme & Outils DevOps
- Terraform : Provider
scaleway/scaleway. Couverture > 95% des services. State stockable sur Object Storage (avec Locking). - Cockpit (Observability) : Stack Grafana/Loki/Mimir managée.
- Push Metrics via Prometheus Remote Write.
- Alertmanager intégré pour notifications (Slack/Email/Webhook).
- Serverless :
- Functions (Go, Python, Node) et Containers (Knative).
- Scale-to-zero (0⏠si pas de requĂȘte).
Régions & Zones de Disponibilité (AZ)
Scaleway opÚre sur 3 Régions. Chaque AZ est un Datacenter physiquement distinct (Alim/Réseau).
| Zone ID | Datacenter Physique | Spécificité |
|---|---|---|
fr-par-1 | DC2 (Paris) | Historique. Forte densité Bare Metal. Connectivité directe opérateurs. |
fr-par-2 | DC3 (Vitry) | "Le Bunker". Ancien abri anti-atomique. Haute Sécurité Physique. |
fr-par-3 | DC5 (St-Ouen) | Flagship Eco. Refroidissement adiabatique (0 clim). PUE < 1.15. |
nl-ams-* | Amsterdam | Hub Europe du Nord (Iron Mountain / Digital Realty). |
pl-waw-* | Varsovie | Hub Europe de l'Est. Latence faible vers DACH. |
Backbone Network (AS12876)
- Capacité : > 10 Tbps (Réseau Iliad/Free).
- Latence Inter-AZ : < 1ms (Boucle fibre noire propriétaire en IDF).
- Peering : France-IX, AMS-IX, DE-CIX + PNI (Google, AWS, Azure).
- Protection : Arbor Networks (Anti-DDoS Volumétrique) inclus sur toutes les IPs publiques.
VPC (Virtual Private Cloud) Specs
- Technologie : Layer 2 étendu (VLAN). Isolation totale.
- PortĂ©e : RĂ©gionale (Multi-AZ). Une VM en PAR-1 voit une VM en PAR-2 sur le mĂȘme subnet.
- Adressage : DHCP Managé par Scaleway. Baux statiques possibles.
- Interfaces : Support du Multi-NIC (jusqu'Ă 8 Private Networks par instance).
Public Gateway (NAT)
Routeur virtuel haute dispo pour l'accĂšs Internet sortant (SNAT).
| Type | Bandwidth | Connexions Max |
|---|---|---|
| GW-S | 500 Mbps | 50k flows |
| GW-M | 2 Gbps | 500k flows |
| GW-L | 5 Gbps | 2M flows |
Load Balancer (Regional)
- Architecture : Proxy managé Haute Dispo. IP Anycast (failover auto).
- Protocols : TCP (L4), HTTP/HTTPS (L7). Support HTTP/2 et WebSocket.
- SSL : Let's Encrypt Wildcard géré automatiquement ou Certificat Custom.
- Private LB : Possibilité de ne pas exposer d'IP Publique (Internal LB).
# Architecture Réseau Typique (Terraform style)
resource "scaleway_vpc_private_network" "main" {
name = "prod-network-192-168"
}
resource "scaleway_vpc_public_gateway_ip" "gw_ip" {}
resource "scaleway_vpc_public_gateway" "main" {
name = "prod-gateway"
type = "VPC-GW-M" # 2Gbps
ip_id = scaleway_vpc_public_gateway_ip.gw_ip.id
}
resource "scaleway_vpc_gateway_network" "main" {
gateway_id = scaleway_vpc_public_gateway.main.id
private_network_id = scaleway_vpc_private_network.main.id
enable_dhcp = true
enable_masquerade = true # SNAT activé
}
ModÚle Hiérarchique
- Organization : Entité de facturation (Root).
- Propriétaire légal des ressources.
- Gestion des Utilisateurs & Groupes IAM.
- Project : Boundary d'isolation technique.
- Réseau : 1 Projet = 1 VPC par défaut (pas de routing inter-projet natif).
- IAM : Les droits sont scopés par Projet (ex: User A est Admin sur Projet Dev, mais Viewer sur Projet Prod).
- Quotas : Limites de ressources (vCPU, RAM, GPU) définies par Projet.
Stratégie d'Isolation (Best Practices)
- Environment Isolation :
Créer un projet distinct pourDevelopment,Staging, etProduction.
Avantage : Impossible de supprimer la DB de Prod par erreur depuis un script de Dev. - Network Boundary :
Le VPC ne traverse pas les projets. Pour relier deux projets, il faut passer par :- Public Internet (avec Whitelist IP).
- VPN (Instance Ă Instance).
- VPC Peering (Feature en Beta/Roadmap).
Production Instances (Dedicated vCPU)
| Gamme | Architecture CPU | Specs Max | Bande Passante |
|---|---|---|---|
| PRO2 | AMD EPYCâą 7003 (Milan). AVX2. Secure Encrypted Virt. | 32 vCPU 128 GB RAM | 400 Mbps Ă 1.5 Gbps (Garanti) |
| ENT1 | Intel Xeon Gold 6148 ou Platinum. High Frequency. | 96 vCPU 384 GB RAM | Jusqu'Ă 20 Gbps (Burst) |
Boot-on-Block : Le disque racine est un volume réseau (SBS) par défaut.
ENT1 Specifics : Inclut un cache NVMe local éphémÚre pour haute perf I/O.
Dev & Learning Instances (Shared vCPU)
- PLAY2 : vCPU "Burstable" (20% à 100%). Idéal CI/CD, Staging.
Specs : De 1 vCPU/2GB (Pico) Ă 4 vCPU/16GB (Maxi). - STARDUST : Instance Micro (1 vCPU, 1GB RAM).
Note : Souvent en rupture (OOS). IPv6 Only possible.
# CLI: Création rapide PRO2
scw instance server create \
type=PRO2-S \
image=ubuntu_jammy \
zone=fr-par-1 \
root-volume=l:50G \
tags.0=production
Elastic Metal (Cloud Native Bare Metal)
Serveurs physiques 100% dédiés, intégrés au VPC, facturés à l'heure.
| Tier | Hardware Typique | Network |
|---|---|---|
| Aluminium | AMD Ryzen 5xxx / Intel Xeon E. 16-64GB RAM. | 1 Gbps Public / 1 Gbps Privé |
| Beryllium | Dual Xeon Silver / EPYC. 128-256GB RAM. | 1 Gbps Public / 10 Gbps Privé |
| Lithium | Dual Xeon Gold 6xxx. Jusqu'à 1TB RAM. NVMe RAID. | 10 Gbps Public / 25 Gbps Privé |
Elastic Metal vs Dedibox
- Elastic Metal :
- Pilotable via API Scaleway Elements (Terraform).
- Intégré au Private Network (VPC) L2.
- Facturation horaire possible.
- Dedibox (Legacy) :
- Console séparée (console.online.net).
- Engagement mensuel + Frais install.
- Réseau RPN (Incompatible VPC sauf via passerelle).
GPU Instances (AI & Rendering)
Pas de vGPU partagé. Pass-through direct.
| ModĂšle | Architecture | VRAM | Use Case |
|---|---|---|---|
| H100 PCIe | NVIDIA Hopper | 80 GB | LLM Training, Large Inference. |
| L40S | Ada Lovelace | 48 GB | Generative AI, 3D Render, Transcodage. |
| P100 | Pascal (Legacy) | 16 GB | Education, Batch Processing. |
Apple Silicon (Mac as a Service)
- Hardware : Mac Mini M1 (8GB) ou M2 Pro (32GB).
- OS : macOS Sonoma / Ventura. AccĂšs VNC ou SSH.
- Contrainte Licence Apple : Location minimale de 24 heures imposée.
- Réseau : IP Publique uniquement (Pas de VPC privé).
Kapsule (Managed K8s)
- Control Plane : Gratuit (Mutualisé) ou Dédié (High SLA).
- CNI : Cilium (eBPF) par défaut, Calico, Weave.
- CSI : Block Storage (RWO) et Object Storage (RWX via s3-fuse, perf limitée).
- Autoscaling : Cluster Autoscaler supporté. Node pools mixtes (Instances + Metal).
- Ingress : Intégration native avec Load Balancer Scaleway + CertManager.
Kosmos & Serverless
- Kosmos (Multi-Cloud) :
- Control Plane chez Scaleway.
- Worker Nodes n'importe oĂč (AWS, GCP, On-Prem).
- Tunneling VPN managé transparent.
- Serverless Containers :
- Basé sur Knative.
- Scale-to-zero (0 instance = 0âŹ).
- Images Docker custom. Limitation : Stateless, 15min timeout.
Classes de Stockage S3
| Classe | Durabilité | Dispo | Use Case |
|---|---|---|---|
| Standard | 99.9999999% (9 nines) | 99.99% | Multi-AZ (EC 4+2). Hot Data, Web assets. |
| One Zone-IA | 99.99% | 99.9% | Single-AZ. -20% coût. Backups secondaires. |
| Glacier | 99.9999999% | N/A | Archivage froid (C14). Restore en minutes/heures. |
Technologie : Erasure Coding distribué.
Endpoints : s3.fr-par.scw.cloud, s3.nl-ams.scw.cloud.
Fonctionnalités Avancées
- Object Lock (WORM) : Immutabilité pour conformité légale ou protection anti-ransomware.
- Bucket Policies : Gestion fine des accĂšs via JSON (compatible AWS IAM policies).
- Lifecycle Rules : Transition auto Standard -> Glacier aprĂšs X jours.
- Versioning : Protection contre écrasement/suppression accidentelle.
Scaleway Block Storage (SBS)
Volumes persistants NVMe-over-Fabric. Détachables et redimensionnables.
| Tier | IOPS Max | Latence | Use Case |
|---|---|---|---|
| Basic | 5,000 IOPS | Standard | OS Boot, Logs, Web Apps. |
| High Speed | 15,000 IOPS | < 1 ms | Database (Postgres/MySQL), High Traffic. |
- Unified Snapshots : Les snapshots sont stockés sur Object Storage (Zonal ou Multi-AZ).
- Boot-on-Block : Toutes les instances (sauf Metal) bootent sur ces volumes.
Opérations Disque (Lifecycle)
- Hot Resize : Augmentation de taille sans reboot (nécessite
resize2fscÎté OS). - Hot Detach : Déplacer un volume de data d'une instance A vers B en quelques secondes.
- Local Storage (Scratch) :
- Dispo uniquement sur gammes ENT1 et H100.
- Performance extrĂȘme (NVMe direct) mais Ă©phĂ©mĂšre (perdu au stop).
Managed Databases (RDB)
- Moteurs : PostgreSQL (13-16), MySQL 8.
- Architecture HA : Active/Standby avec IP Failover auto (bascule < 60s).
- Storage Scaling : Auto-extension du volume Block Storage si plein.
- Extensions : PostGIS (Géo), TimescaleDB (Time-series), pgvector (AI/Embeddings).
Backup & Retention
- Automated Backups : Quotidien. Rétention configurable (jusqu'à 365 jours sur demande, 7 par défaut).
- PITR (Point-In-Time Recovery) : Restauration Ă la seconde prĂšs (via WAL logs).
- Snapshots Manuels : Possible avant une mise en prod risquée.
- Export : Dump direct vers bucket S3.
CLI & Compatibilité S3
L'API étant standard, utilisez les outils de l'écosystÚme AWS.
# AWS CLI (Config profile)
aws configure set plugins.endpoint awscli_plugin_endpoint
aws s3 ls --endpoint-url https://s3.fr-par.scw.cloud
# Rclone (Le couteau suisse)
rclone sync /local/data scw:my-bucket --transfers 16
# s3cmd
s3cmd mb s3://new-bucket
Pricing FinOps (Est. 2025)
- Object Storage :
- Stockage : ~0.013 âŹ/GB/mois (Standard).
- Transfert Sortant : ~0.01 âŹ/GB (aprĂšs 75GB offerts).
- RequĂȘtes : Gratuites ou trĂšs faibles (vs AWS).
- Block Storage :
- ~0.08 âŹ/GB/mois (inclut la performance IOPS).
Architecture VPC (Regional Layer 2)
Le Private Network Scaleway est un VLAN étendu sur toute une Région (Multi-AZ).
| Feature | Specs Techniques |
|---|---|
| Isolation | Segmentation L2 stricte (VLAN). Pas de routing inter-VPC natif. |
| Portée | Régionale. Une VM en par-1 ping une VM en par-2 en direct. |
| Adressage | DHCP Managé (activable/désactivable). Support IPv4 & IPv6. |
| Interfaces | Jusqu'à 8 interfaces privées (vNIC) par instance. |
Intégration & Performance
- Bandwidth : Le trafic privé n'est pas facturé et ne consomme pas la bande passante publique (interface
eth1distincte deeth0). - Jumbo Frames : MTU standard 1500 (pas de support Jumbo Frames officiel garanti sur toutes les offres).
- Hybride : interconnectable avec Dedibox via Dedibox Interconnect (VLAN cross-connect).
Public Gateway (NAT & Bastion)
Appliance managée pour fournir l'accÚs Internet (SNAT) aux ressources privées.
| Type | Bandwidth | Max Conn. | PPS Max |
|---|---|---|---|
| VPC-GW-S | 500 Mbps | 50k | ~80k |
| VPC-GW-M | 2 Gbps | 500k | ~400k |
| VPC-GW-L | 5 Gbps | 2M | ~1M |
Fonctionnalités Clés
- Mode HA : Déploiement redondant multi-AZ disponible (IP failover auto).
- Bastion SSH : Serveur bastion managé intégré (accÚs via clé SSH configurée dans l'IAM).
- IP Statique : L'IP de sortie est fixe (utile pour whitelisting chez des partenaires).
# Terraform: Attacher une Gateway à un réseau privé
resource "scaleway_vpc_gateway_network" "main" {
gateway_id = scaleway_vpc_public_gateway.pgw.id
private_network_id = scaleway_vpc_private_network.pn.id
enable_masquerade = true # Active le NAT
enable_dhcp = true # Le GW agit comme serveur DHCP
}
Cloud Load Balancer (Multi-AZ)
- Type : Layer 4 (TCP) et Layer 7 (HTTP/HTTPS/HTTP2).
- Architecture : Proxy inverse haute dispo basé sur Nginx/Haproxy custom. IP Anycast.
- SSL/TLS :
- Termination ou Passthrough.
- Certificats Let's Encrypt gérés et renouvelés automatiquement.
- Santé : Health Checks TCP, HTTP (codes 2xx-4xx), MySQL, PGSQL, Redis.
- Sticky Sessions : Basé sur cookie (L7) ou source IP (L4).
Kubernetes Ingress Controller
Intégration native via k8s-cloud-controller-manager.
apiVersion: v1
kind: Service
metadata:
annotations:
# Use specific LB IP
service.beta.kubernetes.io/scw-loadbalancer-ip-id: "xxx-xxx"
# Enable Proxy Protocol v2 (pour récupérer l'IP client réelle)
service.beta.kubernetes.io/scw-loadbalancer-proxy-protocol-v2: "true"
# Force redirect HTTP -> HTTPS
service.beta.kubernetes.io/scw-loadbalancer-force-ssl-redirect: "true"
spec:
type: LoadBalancer
Domains & DNS
- Registrar : Extensions .fr, .com, .net, .io, .ai, etc.
- DNS Zones : Support Anycast. API complĂšte pour records automation (ACME DNS-01 challenge).
- Import : Supporte l'import de zone files BIND.
IP Failover (Elastic IP)
Crucial pour la HA sur Elastic Metal et Dedibox.
- Permet de router une IP publique (/32) vers n'importe quel serveur du compte.
- Bascule via API en < 30 secondes.
- Support du VRRP (Keepalived) pour bascule automatique.
IPAM & Addressing
- Flexible IPs : Les IPs publiques (Instances, LB, GW) sont détachables et conservables.
- IPv6 :
- IPv6 /128 par défaut sur les Instances.
- SLAAC supporté sur les réseaux privés.
- Mac Address : Persistante sur Elastic Metal. Virtuelle sur Instances (gérée par KVM).
PostgreSQL & MySQL Managed
| Feature | Specs Techniques |
|---|---|
| Engines | PostgreSQL 13, 14, 15, 16. MySQL 8. |
| Compute | Shared (Dev) ou Dedicated (General Purpose / High Memory). Jusqu'Ă 96 vCPU. |
| Storage | Block Storage (SBS) High Speed. Jusqu'Ă 10 TB. Autoscaling disque. |
| Network | Private Network (IP privée fixe) + Load Balancer Node (IP publique optionnelle). |
High Availability (HA) & Ops
- Architecture HA : Standby Node synchrone dans une AZ différente. Bascule automatique (IP flottante) en < 60s.
- Connection Pooling : PgBouncer intégré et managé (pour gérer des milliers de connexions concurrentes).
- Backups : Quotidien automatique. PITR (Point-In-Time Recovery) pour restaurer Ă la seconde prĂšs.
- Extensions : PostGIS, TimescaleDB, pg_stat_statements.
# Terraform Resource
resource "scaleway_rdb_instance" "main" {
name = "prod-postgres"
node_type = "DB-GP-M" # General Purpose
engine = "PostgreSQL-15"
is_ha_cluster = true
disable_backup = false
volume_type = "bssd" # Block Storage
volume_size_in_gb = 100
}
Managed Redisâą
- Modes :
- Standalone : Instance unique. Cache simple.
- Cluster : Sharding (3+ nodes). Haute dispo et distribution de charge.
- Versions : Redis 6, 7.
- Sécurité : Support ACL (Access Control List) et TLS (Transit Encryption).
- Persistance : Optionnelle (AOF / RDB) pour durabilité des données.
Opensearch & Document DB
- Managed Opensearch :
- Fork open-source d'Elasticsearch.
- Stack ELK complĂšte (Dashboards inclus).
- Usage : Centralisation de logs, Recherche Full-text.
- FerretDB (Managed) :
- Proxy compatible MongoDB fonctionnant sur un backend PostgreSQL.
- Permet d'utiliser les drivers Mongo avec la robustesse de PG.
Messaging & Queuing (Serverless)
| Protocole | Type | Use Case |
|---|---|---|
| NATS | Cloud-native | High throughput, low latency. Microservices, Real-time. |
| SQS / SNS | AWS Compatible | Migration facile depuis AWS. Files d'attente (Queue) et PubSub (Topic). |
| MQTT | IoT Hub | Connectivité objets connectés. Routes vers DB/S3/Functions. |
Intégration Event-Driven
- Déclencher des Serverless Functions ou Containers à chaque message (Trigger).
- Fan-out pattern : Un message SNS vers plusieurs Queues SQS ou endpoints HTTP.
- Retention : Configurable (ex: 7 jours pour SQS).
- Dead Letter Queue (DLQ) : Gestion des messages en erreur.
Vector Database (RAG & LLM)
Indispensable pour fournir de la mémoire (contexte) aux modÚles d'IA générative (RAG).
- pgvector (sur Managed PostgreSQL) :
- Extension open-source standard.
- Stockage des embeddings directement à cÎté des données relationnelles.
- Indexation IVFFlat ou HNSW pour recherche de similarité rapide.
- Qdrant (Managed Partner) :
- DB vectorielle native haute performance (Rust).
- Filtrage avancé et scaling horizontal.
Architecture RAG Typique
1. Ingestion : PDF/Text -> Chunks -> Embeddings (via H100/L40S).
2. Stockage : Embeddings -> PostgreSQL (pgvector).
3. Query : User Prompt -> Embedding -> SELECT ... ORDER BY distance.
4. Generation : Contexte + Prompt -> LLM (Mistral sur H100).
Containers as a Service (CaaS)
Exécution de conteneurs Docker arbitraires sans gestion d'infrastructure (basé sur Knative).
| Feature | Specification |
|---|---|
| Scaling | Scale-to-Zero (0⏠si inactif) Ă N instances. Scaling sur requĂȘtes concurrentes. |
| Resources | CPU: 0.1 Ă 4 vCPU. RAM: 128 MB Ă 8 GB. |
| Networking | Endpoint HTTPS auto (*.scw.cloud). Support Custom Domain + TLS. |
| Port | Le conteneur doit écouter sur le port 8080 (ou env $PORT). |
Cas d'usage & Configuration
- Microservices Stateless : API REST, Frontend (NextJS/Nuxt), Backend légers.
- Securité : Injection de secrets via Secret Manager (Variables d'env).
- Privacy : Possibilité de rendre le conteneur "Privé" (Authentification IAM requise via Token SCW).
# Déploiement via CLI
scw container container create \
name=api-prod \
namespace-id=$NS_ID \
image=rg.fr-par.scw.cloud/ideo/api:v1.2 \
cpu-limit=1000 memory-limit=2048 \
min-scale=1 max-scale=10 \
environment.DB_HOST="pg-database.private"
Cloud Functions (FaaS)
- Runtimes supportés :
- Python (3.7 - 3.11)
- Node.js (14 - 20)
- Go (1.18 - 1.21)
- PHP, Rust (Beta)
- Architecture : Code zippé injecté dans un runtime géré. Handler spécifique par langage.
- Cold Start : Variable selon la taille du bundle et le langage (Go/Rust plus rapides que Node/Python).
Handler Example (Python)
def handle(event, context):
"""
event: dict contenant body, headers, query
context: info sur l'execution
"""
print(f"Processing event: {event}")
return {
"body": {"message": "Hello from Scaleway"},
"statusCode": 200
}
Serverless Jobs
Exécution de tùches longues (Batch) sans contrainte de timeout HTTP.
- DiffĂ©rence vs Containers : Asynchrone. Pas de port d'Ă©coute. S'arrĂȘte quand le processus exit(0).
- Limites : Jusqu'à 24 heures d'exécution (vs 15 min pour Containers).
- Ressources : Jusqu'Ă 16 vCPU / 32 GB RAM (High Performance).
- Usage : Entraßnement IA léger, ETL Data, Rendu vidéo, Database migration.
Event-Driven Triggers
| Source | Mécanisme |
|---|---|
| CRON | Planificateur intégré (format Unix cron). Pour Jobs ou Functions. |
| NATS / SQS | Déclenchement sur message dans une file d'attente (Push). |
| Object Storage | Déclenchement sur upload (via NATS events). |
Limites & Constraints
- Timeout HTTP : Max 900s (15 minutes). Pour plus long -> Serverless Jobs.
- Payload : Max 6MB (Body request/response).
- Disque : Ephemeral
/tmp(512MB à 1GB selon profil). Pas de persistance. - Logs : Streamés vers Cockpit (Grafana/Loki).
Pricing & Frameworks
- Free Tier :
- 400 000 GB-s de compute offerts / mois.
- 300 000 Invocations offertes / mois.
- Outils IaC :
- Terraform :
scaleway_function,scaleway_container. - Serverless Framework : Plugin
serverless-scaleway-functions.
- Terraform :
Identity & Access Management (IAM)
- Principals :
- Users : Humains (MFA recommandé).
- Applications : Identités machines (API Keys). Pour CI/CD, Terraform.
- Groups : Collection de Users/Apps pour attribution de droits en masse.
- Scopes :
- Organization Level : Droits globaux (Billing, IAM Admin).
- Project Level : Droits isolés (Instances, Buckets, K8s).
Policies & Permissions (JSON)
ModĂšle RBAC (Role Based Access Control) flexible.
{
"rules": [
{
"project_ids": ["$PROJ_PROD_ID"],
"permission_set_names": ["ObjectStorageReadOnly", "InstancesViewer"]
},
{
"organization_id": "$ORG_ID",
"permission_set_names": ["BillingObserver"]
}
]
}
Security Groups (Firewall)
Firewall Stateful appliqué au niveau de l'interface virtuelle de l'instance.
| Direction | Default Policy | Comportement |
|---|---|---|
| Inbound | DROP (Refus) | Nécessite une rÚgle explicite (ex: TCP 443 0.0.0.0/0). |
| Outbound | ACCEPT (Autorisé) | Autorise tout le trafic sortant par défaut. |
Stateful = Le trafic retour d'une connexion établie est autorisé automatiquement.
Bastion & Isolation
- Managed Bastion :
- Point d'entrée SSH sécurisé et audité vers les réseaux privés.
- Plus besoin de maintenir une instance "jumphost" vulnérable.
- Private Network Isolation :
- Les VLANs sont étanches. Pas de communication entre VPC A et VPC B sans gateway.
- SMTP Ports : Le port 25 est bloqué par défaut sur les instances (anti-spam) sauf déblocage via KYC.
Secret Manager
- Fonction : Stockage sécurisé de credentials (DB password, API keys, Certificats).
- Versioning : Historique des versions de secrets (v1, v2, latest).
- AccÚs : API REST / gRPC. Intégration IAM.
# Récupération (Runtime)
scw secret version access $SECRET_ID revision=latest
# Intégration K8s (External Secrets Operator)
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
spec:
data:
- secretKey: db-pass
remoteRef:
key: id:xxxx-xxxx
version: latest
Key Management Service (KMS)
- HSM : Clés stockées dans des modules matériels sécurisés.
- Usage :
- Chiffrement de Buckets S3 (Server-Side Encryption).
- Chiffrement de Volumes Block Storage (LUKS automation).
- Signature numérique.
- Rotation : Rotation automatique des clés configurable.
Protection Anti-DDoS (Arbor)
Inclus par défaut sur toutes les IPs publiques Scaleway.
- Detection : Analyse comportementale du trafic en temps réel.
- Mitigation :
- Filtrage Volumétrique (L3/L4) automatique.
- Capacité d'absorption massive via le backbone Iliad.
- Advanced : Protection DDoS Applicative (L7) disponible via WAF partenaire ou configuration custom sur LB.
Compliance & Certifications
| Norme | PérimÚtre |
|---|---|
| HDS | Hébergement Données de Santé. (Instances, K8s, S3, DB, Metal). |
| ISO 27001 | Management de la Sécurité de l'Information (Global). |
| RGPD | Souveraineté des données (Stockage EU uniquement). 100% Capital FR. |
| SWIPO | Code de conduite pour la portabilité Cloud et IaaS. |
Scaleway Cockpit (Managed LGTM)
Suite d'observabilité 100% compatible Open Source, hébergée et managée par Scaleway.
| Composant | RĂŽle | Technology Backend |
|---|---|---|
| Logs | Centralisation des logs (syslog, app). | Loki (LogQL) |
| Metrics | Séries temporelles (CPU, RAM, Business). | Mimir (PromQL) |
| Traces | Suivi des requĂȘtes distribuĂ©es (APM). | Tempo (TraceQL) |
| Visu | Dashboards unifiés. | Grafana (Managed) |
Intégration Produit Native
- Pre-built Dashboards : Les ressources SCW (Instances, Kapsule, Load Balancers, RDB) poussent automatiquement leurs métriques si l'option est activée.
- Single Pane of Glass : Visualisez dans le mĂȘme Grafana vos mĂ©triques Infrastructure (Scaleway) et Applicatives (Custom).
- Multi-Source : Compatible avec des agents externes (Telegraf, Datadog Agent mode proxy) ou Cross-Cloud.
Push Metrics (Prometheus)
Configuration du remote_write pour envoyer vos métriques locales vers Cockpit.
# prometheus.yml
remote_write:
- url: "https://metrics.cockpit.fr-par.scw.cloud/api/v1/push"
headers:
X-Token: "$SCW_SECRET_KEY"
Push Logs (Promtail / Fluentd)
# promtail.yaml
clients:
- url: https://logs.cockpit.fr-par.scw.cloud/loki/api/v1/push
tenant_id: "$SCW_PROJECT_ID"
basic_auth:
username: "$SCW_ACCESS_KEY"
password: "$SCW_SECRET_KEY"
Tokens & Sécurité
- Token : Génération de Tokens dédiés à Cockpit (différents des clés API IAM) pour isoler les droits d'écriture (Push) et de lecture (Query).
- Datasources : Dans Grafana, les datasources (Loki/Mimir) sont pré-configurées automatiquement.
- Global Endpoint : Points d'ingestion régionaux (PAR/AMS/WAW) pour réduire la latence.
Managed Alerting (Alertmanager)
- Définition des rÚgles d'alerte en YAML (Mimir rules) ou via l'interface Grafana.
- Contact Points :
- Email, Slack, Discord, PagerDuty, OpsGenie.
- Webhooks génériques (pour trigger une Cloud Function).
- Grouping : Regroupement des alertes pour éviter le spam (deduplication).
Exemple de RĂšgle (PromQL)
- Les alertes sont évaluées cÎté serveur (Mimir), pas dans le navigateur.
ModĂšle de Pricing
Facturation à l'usage (Pay-as-you-go) basée sur le volume.
| Service | Unité | Prix (Est.) |
|---|---|---|
| Metrics | Par million d'échantillons (samples) ingérés. | ~0.15 ⏠/ million |
| Logs | Par GB ingéré. | ~0.35 ⏠/ GB |
| Traces | Par GB ingéré. | ~0.35 ⏠/ GB |
| Grafana Users | Par utilisateur actif. | Gratuit (limité) ou Forfait |
Rétention des Données
- Custom Retention : Configurable par type de données (ex: garder les Metrics 12 mois, les Logs 30 jours).
- Impact Coût : Le stockage long terme a un coût additionnel (faible, basé sur Object Storage en backend).
- Free Tier : Cockpit inclut un quota mensuel gratuit généreux pour les petits projets (ex: 75 Mo logs, X millions metrics).
Terraform Provider
- Registry :
scaleway/scaleway(Partenaire Officiel). - Couverture : ~99% (Instances, K8s, RDB, VPC, IAM, IoT, Apple Silicon).
- State Backend : Utilisation de l'Object Storage Scaleway (compatible S3) pour stocker le
terraform.tfstateavec locking.
terraform {
required_providers {
scaleway = { source = "scaleway/scaleway", version = ">= 2.30" }
}
backend "s3" {
bucket = "tfstate-infra-prod"
key = "main.tfstate"
region = "fr-par"
endpoint = "https://s3.fr-par.scw.cloud"
skip_credentials_validation = true
skip_region_validation = true
}
}
Resource Pattern (Best Practices)
- Cloud-Init : Injecter la config via
user_data. - Tags : Utiliser massivement les tags pour le ciblage Ansible ultérieur.
resource "scaleway_instance_server" "web" {
type = "PRO2-M"
image = "ubuntu_jammy"
tags = ["env:prod", "role:web"]
root_volume {
size_in_gb = 50
volume_type = "b_ssd" # Block Storage
}
private_network {
pn_id = scaleway_vpc_private_network.pn.id
}
}
Scaleway CLI (scw)
Binaire Go unique, sans dépendance. Auto-complétion Bash/Zsh.
| Feature | Commande / Env Var |
|---|---|
| Config | ~/.config/scw/config.yaml ou Env Vars. |
| Headless | SCW_ACCESS_KEY, SCW_SECRET_KEY, SCW_DEFAULT_PROJECT_ID. |
| Output | -o json (pour jq), -o human (tableaux), -o template (Go tmpl). |
Snippets Utiles
# 1. Créer une instance et récupérer son IP publique (JSON parsing)
IP=$(scw instance server create type=PLAY2-NANO image=ubuntu_jammy -o json | jq -r .public_ip.address)
# 2. Lister les IDs des nodes Kapsule
scw k8s node list cluster-id=$CLUSTER_ID -o template='{{range .}}{{ .Name }} : {{ .ID }}{{"\n"}}{{end}}'
# 3. Login Docker Registry
scw registry login
Packer (Golden Images)
- Builder :
scaleway. - Workflow : Snapshot d'une instance -> Création d'une Image privée.
- Usage : Pré-installer Docker, Agents de monitoring, Durcissement OS (CIS Benchmarks).
source "scaleway" "ubuntu" {
access_key = "${var.scw_access_key}"
secret_key = "${var.scw_secret_key}"
project_id = "${var.scw_project_id}"
zone = "fr-par-1"
image = "ubuntu_jammy"
commercial_type = "PLAY2-NANO"
ssh_username = "root"
snapshot_name = "golden-image-"
}
Ansible (Configuration Mgmt)
- Collection :
scaleway.scaleway(Galaxy). - Dynamic Inventory : Récupération automatique des hosts basée sur les tags API.
# my_scaleway_inventory.yml
plugin: scaleway.scaleway.scaleway_inventory
regions:
- fr-par
tags:
- "env:prod"
groups:
web_servers: "'role:web' in tags"
db_servers: "'role:database' in tags"
SDKs Officiels
- Go :
github.com/scaleway/scaleway-sdk-go(Base de la CLI et Terraform). - Python :
pip install scaleway-sdk(Typé, Async support). - JS/TS :
@scaleway/sdk.
API Automation
API REST standard. Auth via Header X-Auth-Token.
Exemple Python SDK
from scaleway.apis import instance_v1
from scaleway import Client
client = Client.from_config_file_and_env()
api = instance_v1.API(client)
# List servers in PAR-1
servers = api.list_servers(zone="fr-par-1")
for s in servers.servers:
print(f"{s.name} - {s.public_ip.address}")
- Rate Limiting : Respecter les quotas API (ex: pas de polling agressif, utiliser les webhooks ou Events si possible).
Kosmos : Control Plane Unifié
Pilotez des nĆuds Kubernetes situĂ©s n'importe oĂč depuis la console Scaleway.
| Composant | Gestion | Location |
|---|---|---|
| Control Plane | Managé par Scaleway (HA). | PAR-1 / AMS-1 / WAW-1 |
| Nodes | Self-managed (attachés via script). | AWS, GCP, Azure, On-Prem, Edge. |
| Network | Tunneling chiffré automatique (WireGuard/Konnectivity). | Internet Public (Port 443/UDP). |
Use Cases & Pricing
- Cloud Bursting : Infra de base On-Prem, débordement vers des instances Scaleway lors des pics de charge.
- Multi-Cloud Redundancy : Un cluster étendu sur Scaleway (Master) + AWS (Worker) + OVH (Worker).
- CoĂ»t : ~99⏠/ mois / cluster (frais de gestion du Control Plane Multi-Cloud). Gratuit pour les nĆuds Scaleway.
# Attacher un serveur externe Ă Kosmos
# 1. Créer le cluster Kosmos
scw k8s cluster create type=kapsule-dedicated-multi-cloud ...
# 2. Récupérer le script d'attachement (Pool externe)
scw k8s pool get-attach-cmd pool-id=$POOL_ID
> curl -s https://... | sudo bash
Legacy to Cloud Bridge
Connectez vos serveurs Dedibox (réseau RPN) à votre VPC Scaleway Elements.
- Principe : VLAN Cross-Connect physique au sein des datacenters DC2/DC3.
- Performance : Connectivité L2 privée, débit ligne (1Gbps à 10Gbps selon offre).
- Isolation : Le trafic ne passe PAS par Internet. Latence < 1ms.
Configuration
- Pré-requis : Avoir un compte Dedibox (console.online.net) et un compte Scaleway (console.scaleway.com) liés.
- Activation : Via la console, commander l'interconnexion RPN v2 <-> VPC.
- Usage :
- Database massive sur Dedibox (Stockage pas cher).
- Frontend K8s Kapsule sur Scaleway (Scalabilité).
VPN Gateway
- Pour relier un bureau/DC On-Prem au VPC Scaleway via Internet.
- Architecture : Utiliser 2 instances (VM) configurées en Gateway VPN (StrongSwan / WireGuard) derriÚre un Load Balancer UDP.
- Managed ? Pas encore de "Cloud VPN" managé natif (Roadmap). Il faut gérer l'instance VPN ou utiliser une Public Gateway en mode Bastion/VPN.
Private Peering (Direct Connect)
- Scaleway Datacenter Connect :
- Lien fibre physique direct (Cross-Connect) dans les MMR (Meet-Me-Room) des datacenters (Equinix, Interxion, Telehouse).
- Débit : 1 Gbps ou 10 Gbps dédié.
- Idéal pour : Latence stable, sécurité bancaire, gros volumes de données.
Pattern: Data Sovereignty
- Données Sensibles : Stockées sur Elastic Metal (Disques chiffrés, contrÎle physique total).
- Traitement : Effectué par des Serverless Functions ou K8s qui lisent/écrivent via le Private Network.
- Avantage : Compliance stricte (isolation hardware) + Flexibilité Cloud.
Pattern: Edge AI Inference
- Training : Sur Scaleway H100 Superpod (Puissance max).
- Model Registry : Stockage des poids du modĂšle sur Object Storage.
- Inference : DĂ©ploiement sur des nĆuds Kosmos situĂ©s en Edge (Usines, Magasins) pour latence zĂ©ro.
Setup & Compute
# 1. Initialisation (Interactive)
scw init
# 2. Instances
scw instance server list zone=fr-par-1
scw instance server create type=PRO2-S image=ubuntu_jammy root-volume=l:50G name=web-prod
scw instance server ssh $SERVER_ID
scw instance server console $SERVER_ID # Serial Console (Debug)
# 3. Security Groups
scw instance security-group create name=sg-web inbound-default-policy=drop outbound-default-policy=accept
scw instance security-group rule create group-id=$SG_ID direction=inbound protocol=tcp port=443 ip-range=0.0.0.0/0
K8s, Registry & Serverless
# Kubernetes
scw k8s cluster list
scw k8s kubeconfig install $CLUSTER_ID
kubectl get nodes
# Container Registry
scw registry login
docker build -t rg.fr-par.scw.cloud/my-ns/app:v1 .
docker push rg.fr-par.scw.cloud/my-ns/app:v1
# Serverless
scw function deploy . --runtime python311 --name my-func
scw container deploy . --port 8080 --name my-container
AWS CLI Config (~/.aws/config)
Scaleway S3 est compatible. Utilisez un alias pour gagner du temps.
# ~/.aws/config
[profile scw]
region = fr-par
output = json
s3 =
endpoint_url = https://s3.fr-par.scw.cloud
signature_version = s3v4
max_concurrent_requests = 100
max_queue_size = 1000
# ~/.aws/credentials
[scw]
aws_access_key_id = $SCW_ACCESS_KEY
aws_secret_access_key = $SCW_SECRET_KEY
Rclone Config (High Perf Copy)
# rclone config (choisir "s3", provider "Scaleway")
[scw]
type = s3
provider = Scaleway
access_key_id = $ACCESS_KEY
secret_access_key = $SECRET_KEY
region = fr-par
endpoint = s3.fr-par.scw.cloud
acl = private
# Sync Command
rclone sync /local/data scw:my-bucket --transfers 16 --progress
Base Provider & Backend
terraform {
required_providers {
scaleway = { source = "scaleway/scaleway" }
}
backend "s3" {
bucket = "tfstate-infra"
key = "prod.tfstate"
region = "fr-par"
endpoint = "https://s3.fr-par.scw.cloud"
skip_credentials_validation = true
skip_region_validation = true
}
}
provider "scaleway" {
zone = "fr-par-1"
region = "fr-par"
}
Common Resources
# VPC & Gateway
resource "scaleway_vpc_private_network" "pn" {}
resource "scaleway_vpc_public_gateway" "pgw" { type = "VPC-GW-M" }
# Instance
resource "scaleway_instance_server" "web" {
type = "PRO2-S"
image = "ubuntu_jammy"
tags = ["prod"]
private_network { pn_id = scaleway_vpc_private_network.pn.id }
}
# K8s Cluster
resource "scaleway_k8s_cluster" "k8s" {
name = "k8s-prod"
version = "1.28"
cni = "cilium"
}
Security & Access
- Isolation : Prod et Staging sont dans des Projets distincts.
- IAM : Pas de clé API avec droits "Admin" utilisée dans la CI/CD.
- Network : Security Groups en "Drop Inbound" par défaut.
- SSH : Bastion managé utilisé, port 22 fermé au public.
Reliability & FinOps
- Backups : Snapshots automatiques activés sur les Instances et DB.
- Monitoring : Cockpit activé, Alerting configuré (CPU > 90%, Error Rate).
- Haute Dispo : Ressources réparties sur au moins 2 AZ (ex: par-1 et par-2).
- Budgets : Alertes de facturation configurées (ex: alerte à 50% et 80% du budget).
