AWS : où faire tourner ton programme
Premiere question sur AWS : ou je fais tourner mon appli ?
Tu peux tout mettre sur EC2. Mais parfois une autre boite est plus simple. Si les fondamentaux AWS sont flous, commence la.
Ici, quatre options. Comme quatre vehicules : voiture, scooter, camion, train.
EC2 : la voiture que tu conduis
EC2, c'est une machine virtuelle. Tu choisis l'OS, la taille (CPU, RAM), les logiciels.
Tu es responsable de :
- la config systeme,
- les mises a jour de secu,
- le dimensionnement,
- les sauvegardes (snapshots EBS, AMI).
Bon pour : migrer un serveur existant, une appli difficile a mettre en conteneur, un besoin de controle fin sur l'OS.
Cout : a l'heure / seconde selon la taille. Pour une charge stable, regarde Reserved / Savings Plans. Eteins les machines de test la nuit.
Lambda : le scooter a la demande
Avec Lambda, tu n'achetes plus de serveur. Tu donnes un bout de code. AWS l'execute quand un evenement arrive. Tu paies au nombre d'appels + a la duree.
Bon pour : API legeres, webhooks, jobs planifies, traitement d'un fichier pose sur S3, trafic en dents de scie.
Moins bon pour : traitements tres longs, besoin de controler l'OS ou le reseau en detail.
Astuces : calibre bien la memoire, evite de recharger tout a chaque appel, ne fais pas une "fonction monstre" ni mille micro-fonctions inutiles.
ECS : des conteneurs sans Kubernetes
ECS orchestre des conteneurs Docker pour toi.
- Tu definis des taches (conteneurs + ressources) et des services (redemarrage, scaling).
- Mode EC2 : tu geres encore un cluster de machines.
- Mode Fargate : pas de machine a soigner. Serverless pour conteneurs.
Bon pour : API, microservices, workers derriere une file. Tu veux des conteneurs sans la complexite de Kubernetes.
Pense a Docker avant : une image propre facilite beaucoup ECS.
EKS : le train Kubernetes
EKS te donne un plan de controle Kubernetes manage. Tu deploies comme d'habitude (Deployment, Service...).
Tu restes responsable des nodes (ou Fargate), des versions cote workloads, de la secu et de l'obs.
Bon pour : equipe deja forte en Kubernetes, besoin de portabilite cloud / on-prem, plateformes complexes.
Si tu n'as pas encore de stack K8s : ECS/Fargate ou Lambda seront souvent plus simples.
Grille de choix rapide
- Tu veux SSH, OS, paquets → EC2.
- Un peu de code a la demande, sans serveur → Lambda.
- Conteneurs sans Kubernetes → ECS (idealement Fargate).
- Ecosystème Kubernetes deja la → EKS.
Tu peux combiner : EC2 pour du legacy, ECS pour les nouveaux services, Lambda pour la colle, EKS pour la plateforme avancee.
Reflexes transverses
- Decrire l'infra en code (Terraform / CloudFormation / CDK).
- Logs et metriques dans CloudWatch.
- Roles IAM minimal, secrets hors images (IAM / KMS).
Resume
EC2 = serveur classique. Lambda = petit moteur a evenements. ECS = conteneurs sans K8s. EKS = K8s manage. Choisis selon la charge et l'equipe, pas selon la mode.
Ensuite : ou mettre tes fichiers avec S3, EBS et EFS.