ADR-0009 — AWS EKS comme runtime staging et production
Status : Accepted Date : 2026-03 (rétroactif) Deciders : équipe plateforme Nex Tickets : —
Contexte
Pour héberger 11 microservices, des bases PostgreSQL par service, Redis et les apps web Nuxt, plusieurs options de runtime :
- VMs simples avec Docker Compose.
- AWS ECS (Fargate ou EC2).
- AWS EKS (Kubernetes managé).
- GCP GKE.
- Railway / Render.
Les exigences :
- Multi-service avec network policies fines.
- Scaling horizontal automatique.
- Maturité écosystème pour ingress, cert-manager, secrets, monitoring.
- Disponibilité dans une région proche CEMAC (latence acceptable).
Décision
- AWS EKS comme runtime staging et production.
- Région :
eu-west-3(Paris) — meilleur compromis latence CEMAC sur AWS sans région Afrique mature. - Cluster staging : 5x t3a.medium nodes, Kubernetes v1.29.
- Namespaces :
nex-staging,nex-production. - Ingress : ingress-nginx (Helm 4.14.3) + cert-manager (1.19.4) → Let’s Encrypt (ClusterIssuer
letsencrypt-prod). - Network policies : default-deny ingress, allow ingress-controller, allow same-namespace.
- Domain public :
dev.paywithnex.com(NLB AWS exposé via Cloudflare).
Conséquences
Positives
- Écosystème Kubernetes complet (Helm, kustomize, GitOps).
- Scaling natif.
- Multi-AZ pour la disponibilité.
- Network policies fines pour la segmentation interne.
Négatives / risques
- Coût EKS (plan de contrôle facturé même à vide).
- Complexité opérationnelle (RBAC K8s, troubleshooting pod-level).
- Latence depuis CEMAC : Paris ≈ 150-200 ms aller-retour. Mitigation : Cloudflare edge cache les assets, le ressenti utilisateur reste bon.
- Pas de région africaine mature AWS aujourd’hui ; migration éventuelle vers Lagos ou Cape Town quand disponible et stable.
Alternatives écartées
- VMs Docker Compose — pas d’orchestration, scaling manuel, network isolation faible.
- ECS Fargate — simple mais limité pour la complexité multi-service.
- GKE — équivalent EKS mais moindre maîtrise interne sur AWS chez l’équipe.
- Railway / Render — sympathique pour démarrer mais pas dimensionné pour 11 services et exigences audit.
Suivi
- Voir /operations/infra-base.
- Voir /operations/variables-et-stack.
- Helm releases : cert-manager, ingress-nginx, external-secrets (cf. ADR-0008).