AWS pour Data Scientists et pas que !¶
Bon on en fin du mois, parlons de Cloud computing avec un focus sur AWS, le gĂ©ant du secteur. Tu es data scientist, tu veux te lancer dans le machine learning, mais tu ne sais pas par oĂč commencer ? Tu as entendu parler dâAWS, mais tu trouves ça trop complexe ? Pas de panique, cet article est fait pour toi ! Si tu dĂ©barques dans lâunivers AWS, tu as sĂ»rement ressenti cette sensation : tu ouvres la console AWS pour la premiĂšre fois, et câest comme si tu Ă©tais dans le cockpit dâun vaisseau spatial⊠avec 200 boutons et aucun manuel dâutilisation ! Pas de panique, on va y aller du bas vers le haut : dâabord les fondations, puis la magie ML. PrĂȘt·e ? Câest parti !
đł Docker First : Tout Commence LĂ ¶
LâĂpiphanie Docker pour Data Scientists¶
Avant de plonger dans AWS, parlons Docker. Si tu ne maĂźtrises pas encore les conteneurs, câest vraiment LA compĂ©tence Ă acquĂ©rir en premier. Pourquoi ? Parce que tout lâĂ©cosystĂšme moderne gravit autour de ça.
LâĂ©quation magique :
- Docker Compose en local â ECS sur AWS
- Docker Swarm â EKS (Kubernetes) sur AWS
- Dockerfile â mĂȘme environnement partout !
En gros, le conteneur que tu dĂ©veloppes sur ton laptop doit tourner exactement de la mĂȘme façon dans le cloud. Fini les « ça marchait sur ma machine ! »
Ton Workflow Data Science ContainerisĂ©¶
En local, tu peux avoir un Dockerfile
comme celui-ci :
FROM python:3.9-slim
WORKDIR /app
# les dépendances ML
COPY requirements.txt .
RUN pip install -r requirements.txt
# le code et tes modĂšles
COPY src/ ./src/
COPY models/ ./models/
COPY notebooks/ ./notebooks/
# Jupyter pour lâexploration
EXPOSE 8888
CMD ["jupyter", "lab", "--ip=0.0.0.0", "--allow-root"]
Le secret : ce mĂȘme conteneur tourne exactement pareil sur AWS. Plus dâĂ©nigmes de versions de librairies, plus dâĂ©cart dâenvironnements.
Les avantages clés de Docker :
- Reproductibilité : Ton environnement Python/R/Julia est identique partout.
- Isolation : Tes projets ne se marchent plus dessus.
- Portabilité : Du laptop au cloud sans modification.
- Collaboration : Toute lâĂ©quipe a le mĂȘme setup.
- Déploiement : Un simple
docker run
et câest parti !
đ Infrastructure : Tes Fondations Solides¶
RĂ©gions et Zones de DisponibilitĂ©¶
AWS, câest une immense toile dâaraignĂ©e planĂ©taire. Amazon a plantĂ© des data centers partout dans le monde, appelĂ©s des RĂ©gions. Chaque rĂ©gion est composĂ©e de plusieurs Zones de DisponibilitĂ© (AZ) : ce sont des data centers physiquement isolĂ©s, mais reliĂ©s entre eux Ă trĂšs faible latence.
Pourquoi ça te concerne ?
- Pour respecter la RGPD, héberge tes données en Europe.
- Pour minimiser la latence, choisis la région la plus proche de tes utilisateurs.
Vision dâensemble (Mermaid)¶
Ce que tu devrais maitriser principalement si tu es data scientist se resume ici.
graph TD
%% Core AWS Platform
AWS["đŻ AWS pour Data Scientists"]
%% Main Service Categories arranged vertically
AWS --> INFRA["đ INFRASTRUCTURE<br/>Network & Global Reach"]
INFRA --> SECURITY["đ SĂCURITĂ<br/>AccĂšs & IdentitĂ©"]
SECURITY --> STORAGE["đŸ STOCKAGE<br/>DonnĂ©es & Bases"]
STORAGE --> COMPUTE["⥠CALCUL<br/>Puissance de Traitement"]
COMPUTE --> ANALYTICS["đ ML & ANALYTICS<br/>Plateforme dâIntelligence"]
ANALYTICS --> DEVOPS["đ DEVOPS<br/>DĂ©ploiement & Monitoring"]
%% Infrastructure Services (left side)
INFRA --> REGIONS["RĂ©gions & AZ<br/>đ Infrastructure Globale"]
INFRA --> VPC["VPC<br/>đ RĂ©seau PrivĂ©"]
%% Security Services (left side)
SECURITY --> IAM["IAM<br/>đ€ Gestion des IdentitĂ©s"]
SECURITY --> SECRETS["Secrets Manager<br/>đ Stockage de Secrets"]
%% Storage Services
STORAGE --> S3["S3<br/>đïž Stockage dâObjets"]
STORAGE --> RDS["RDS<br/>đïž Bases SQL"]
S3 --> REDSHIFT["Redshift<br/>đą Data Warehouse"]
RDS --> DYNAMO["DynamoDB<br/>⥠NoSQL"]
%% Compute Services (right side)
COMPUTE --> EC2["EC2<br/>đ„ïž Machines Virtuelles"]
COMPUTE --> LAMBDA["Lambda<br/>⥠Fonctions Serverless"]
EC2 --> ECS["ECS<br/>đł Service Conteneur"]
LAMBDA --> EMR["EMR<br/>đ Clusters Big Data"]
%% Analytics & ML Services (vertically)
ANALYTICS --> GLUE["Glue<br/>đ Service ETL"]
ANALYTICS --> SAGEMAKER["SageMaker<br/>đ€ Plateforme ML"]
GLUE --> ATHENA["Athena<br/>đ RequĂȘtes SQL"]
SAGEMAKER --> QUICKSIGHT["QuickSight<br/>đ BI Dashboard"]
%% DevOps Services (final layer)
DEVOPS --> CLOUDWATCH["CloudWatch<br/>đ Monitoring"]
DEVOPS --> API_GW["API Gateway<br/>đ Gestion dâAPIs"]
CLOUDWATCH --> TERRAFORM["Terraform<br/>âïž IaC"]
%% Cross-service connections (minimales)
S3 -.-> GLUE
GLUE -.-> SAGEMAKER
REDSHIFT -.-> QUICKSIGHT
SAGEMAKER -.-> API_GW
EC2 -.-> SAGEMAKER
%% Styles AWS
classDef aws fill:#232F3E,stroke:#FF9900,stroke-width:3px,color:#FFFFFF
classDef infra fill:#8C4FFF,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
classDef security fill:#DD344C,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
classDef storage fill:#7AA116,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
classDef compute fill:#EC7211,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
classDef analytics fill:#3F48CC,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
classDef devops fill:#FF6B35,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
classDef service fill:#F2F4F7,stroke:#232F3E,stroke-width:2px,color:#232F3E
class AWS aws
class INFRA infra
class SECURITY security
class STORAGE storage
class COMPUTE compute
class ANALYTICS analytics
class DEVOPS devops
class REGIONS,VPC,IAM,SECRETS,S3,RDS,REDSHIFT,DYNAMO,EC2,LAMBDA,ECS,EMR,SAGEMAKER,GLUE,ATHENA,QUICKSIGHT,CLOUDWATCH,API_GW,TERRAFORM service
VPC : Ton Petit Cocon PrivĂ© đ ¶
Le VPC (Virtual Private Cloud), câest ton appartement privĂ© dans lâimmeuble AWS. Tu peux :
- Gérer qui entre et qui sort (sous-réseaux, ACL, Security Groups).
- Organiser tes âpiĂšcesâ (subnets publics/privĂ©s, tables de routage).
- Définir tes propres rÚgles de firewall.
Astuce de dĂ©butant : Pour commencer, utilise le VPC par dĂ©faut gĂ©nĂ©rĂ© par AWS. Lorsque tu seras plus Ă lâaise, tu pourras passer Ă un VPC sur-mesure.
đ SĂ©curitĂ© : Qui Fait Quoi ?¶
IAM : Le Videur de Ta BoĂźte de Nuit¶
IAM (Identity & Access Management), câest LE service crucial. Câest lui qui dĂ©cide :
- Qui (utilisateurs, rÎles, groupes) peut accéder à quoi.
- Quelles actions sont autorisées (lecture, écriture, suppression).
Exemple concret : Crée un utilisateur DataScientistJunior
qui peut lire des objets S3, mais pas les supprimer. Adieu les âoopsâ Ă 2h du mat !
Secrets Manager : Ton Coffre-Fort Digital đ¶
Fini de mettre tes mots de passe en dur dans le code ! Secrets Manager stocke tes credentials (BD, API keys, etc.) de maniÚre chiffrée. Ensuite, tes conteneurs ou fonctions Lambda peuvent récupérer ces credentials à la volée, sans jamais exposer de secrets dans le code.
đŸ Stockage : OĂč Tu Ranges Tes PrĂ©cieuses DonnĂ©es¶
S3 : Ton Disque Dur Magique âš¶
S3 (Simple Storage Service) est le service incontournable pour stocker tout type de fichiers :
- Standard : données fréquemment utilisées
- Infrequent Access : données moins souvent sollicitées (coût plus bas)
- Glacier : archivage Ă long terme (recouvrement en quelques heures)
- Deep Archive : archivage ultra-longue durée (recouvrement en ~12 heures)
Use case typique :
- Stocker tes datasets bruts
- Sauvegarder tes modÚles entraßnés
- Conserver tes rapports finaux
RDS : Tes Bases Relationnelles Sans Souci đïž¶
RDS (Relational Database Service) gĂšre des bases MySQL, PostgreSQL, SQL Server, Aurora⊠Tu nâas plus Ă te soucier :
- Des mises à jour (patches de sécurité)
- Des sauvegardes automatiques
- De la réplication (optionnel)
Idéal pour : Bases produites, métriques temps réel, journaux structurés.
Redshift : Ton EntrepĂŽt de DonnĂ©es Surpuissant đą¶
Quand tes datasets font plusieurs tĂ©raoctets (voire pĂ©taoctets), tu passes Ă Redshift. Câest un data warehouse massivement parallel processing (MPP) conçu pour exĂ©cuter des requĂȘtes analytiques trĂšs lourdes Ă la vitesse de lâĂ©clair. Parfait pour alimenter des rapports BI ou entraĂźnements ML Ă grande Ă©chelle.
DynamoDB : La Base NoSQL qui Déchire ⥶
DynamoDB est la base NoSQL managĂ©e dâAWS. Ultra-rapide, scalable automatiquement :
- Tx de lecture/écriture en millisecondes
- Idéal pour stocker les résultats de tes modÚles en temps réel ou les sessions utilisateur
- Offre des fonctionnalités comme les Time-to-Live (TTL), les indexes secondaires, la DAX (cache in-memory)
⥠Compute : La Puissance de Calcul¶
EC2 : Tes Machines Virtuelles Ă la Demande đ„ïž¶
EC2 (Elastic Compute Cloud), ce sont des serveurs virtuels que tu peux allumer/dĂ©truire Ă volontĂ©. Besoin dâune machine GPU pour entraĂźner un gros rĂ©seau de neurones ? SĂ©lectionne un p3.2xlarge (ou supĂ©rieur). Tu peux choisir la rĂ©gion, le type de stockage, le nombre de cĆurs, la mĂ©moireâŠ
Types populaires pour la data science :
- t3.medium : pour tester rapidement, développer, faire du prototypage.
- m5.xlarge : pour le travail sĂ©rieux, entraĂźnements âpetits Ă moyensâ.
- p3.2xlarge : pour le deep learning (GPU NVIDIA V100).
Lambda : Tes Fonctions Serverless ⥶
AWS Lambda permet dâexĂ©cuter du code en rĂ©ponse Ă un Ă©vĂ©nement, sans gĂ©rer le serveur. Tu Ă©cris une fonction Python (ou Node.js, Java, etc.), tu la dĂ©ploies, et AWS gĂšre tout : scalabilitĂ©, disponibilitĂ©, patchs OSâŠ
Cas dâusage ML pour Lambda :
- Nettoyage de donnĂ©es dĂšs quâun fichier arrive dans S3.
- Déclencher un entraßnement court (hyperparam tuning léger).
- Servir un endpoint léger de prédiction (mais attention aux limites de temps / mémoire).
đł Containers : Docker Meets AWS (La Partie Qui Change Tout !)¶
ECR : Ton Docker Hub PrivĂ© đȘ¶
ECR (Elastic Container Registry), câest le Docker Hub made in AWS, privĂ© et sĂ©curisĂ©. Tu y stockes tes images Docker, tes environnements custom, tes conteneurs serveurs ML, etc.
Workflow typique :
# 1. Build ton image localement
docker build -t mon-modele-ml .
# 2. Tagge lâimage pour ECR
docker tag mon-modele-ml:latest 123456.dkr.ecr.eu-west-1.amazonaws.com/mon-modele-ml:latest
# 3. Push vers AWS
docker push 123456.dkr.ecr.eu-west-1.amazonaws.com/mon-modele-ml:latest
ECS : Docker Simple et Efficace đ¶
ECS (Elastic Container Service), câest Docker Ă grande Ă©chelle, sans la complexe overhead de Kubernetes. Pour la plupart des cas dâusage data science / ML, câest amplement suffisant.
Deux modes de lancement :
- EC2 Mode : Tu gĂšres tes instances EC2, tu as plus de contrĂŽle, câest souvent moins cher.
- Fargate Mode : AWS gĂšre lâinfrastructure, tu paies directement pour les vCPU et la RAM allouĂ©e. Plus simple, mais un poil plus cher.
Idéal pour :
- APIs de prédiction ML (Flask, FastAPI)
- Jobs batch de traitement (ETL, nettoyage)
- Notebooks Jupyter partagés
- Pipelines ETL containerisés
Exemple de Task Definition ECS :
{
"family": "ml-api",
"networkMode": "awsvpc",
"requiresCompatibilities": ["FARGATE"],
"cpu": "1024",
"memory": "2048",
"containerDefinitions": [
{
"name": "ml-container",
"image": "123456.dkr.ecr.eu-west-1.amazonaws.com/mon-modele-ml:latest",
"portMappings": [
{
"containerPort": 8080,
"protocol": "tcp"
}
],
"essential": true
}
]
}
EKS : Kubernetes ManagĂ© (Pour les Pro·s) âžïž¶
EKS (Elastic Kubernetes Service), câest Kubernetes entiĂšrement gĂ©rĂ© par AWS. Tes pods tournent sur des nĆuds EC2 gĂ©rĂ©s, avec autoscaling, mises Ă jour automatiques, intĂ©gration IAM⊠Bref, tout ce que Kubernetes propose, sans te prendre la tĂȘte Ă installer/maintenir le control plane.
Quand utiliser EKS ?
- Tu as plusieurs modĂšles ML Ă orchestrer.
- Tu veux de lâauto-scaling par microservice.
- Tu as des pipelines ML complexes (vision, NLP, streaming, etc.).
- Ton équipe maßtrise déjà Kubernetes.
Exemple de deployment Kubernetes :
apiVersion: apps/v1
kind: Deployment
metadata:
name: ml-model-api
spec:
replicas: 3
selector:
matchLabels:
app: ml-model
template:
metadata:
labels:
app: ml-model
spec:
containers:
- name: model-server
image: 123456.dkr.ecr.eu-west-1.amazonaws.com/mon-modele-ml:latest
ports:
- containerPort: 8080
resources:
requests:
memory: "2Gi"
cpu: "1000m"
limits:
memory: "4Gi"
cpu: "2000m"
env:
- name: MODEL_PATH
value: "/app/models/latest"
Batch : Jobs Docker à la Demande ⥶
AWS Batch orchestre tes jobs Docker pour des tĂąches de calcul intensif (traitement de gros datasets, entraĂźnement de modĂšles, conversion de fichiersâŠ). Tu dĂ©finis une job definition, une job queue, des compute environments, et Batch sâoccupe de tout : scalabilitĂ©, gestion des ressources, rĂ©pĂ©tition en cas dâĂ©chec, etc.
Use case magique : 1000 fichiers Ă traiter â Batch lance 50 conteneurs en parallĂšle â tu ne mets plus des heures, mais quelques minutes !
Exemple de définition de Job Batch :
{
"jobName": "data-processing-job",
"jobQueue": "ml-processing-queue",
"jobDefinition": "data-processor:1",
"parameters": {
"inputPath": "s3://mon-bucket/raw-data/",
"outputPath": "s3://mon-bucket/processed-data/"
}
}
đ ML & Analytics : LĂ OĂč la Magie OpĂšre¶
SageMaker : Ta Plateforme ML All-in-One đ€¶
Amazon SageMaker est LE service phare pour nous, data scientists. Il gĂšre TOUT le cycle de vie ML :
- Notebooks Jupyter managĂ©s (plus besoin dâinstaller Anaconda localement).
- EntraĂźnement : scalabilitĂ© automatique, choix dâinstances GPU/CPU, frameworks ML prĂ©-intĂ©grĂ©s (TensorFlow, PyTorch, XGBoost, SKLearnâŠ).
- Déploiement : endpoints en un clic, autoscaling, A/B testing.
- Hyperparameter Tuning : recherche automatisée des meilleurs hyperparamÚtres.
- AutoML (Autopilot) : quand tu veux un prototype rapide.
- Pipelines ML : orchestration complÚte (préprocessing, entraßnement, tests, déploiement).
Workflow typique SageMaker :
- Tu explores tes données dans un notebook SageMaker.
- Tu entraßnes un modÚle (SageMaker gÚre la scalabilité et le logging).
- Tu déploies ton modÚle en endpoint HTTP.
- Tes applications front/appels API lâinterrogent en temps rĂ©el.
Et la cerise sur le gĂąteau : SageMaker supporte tes propres conteneurs Docker. Donc, tu peux partir dâune image customisĂ©e avec exactement les librairies dont tu as besoin.
Glue : Ton ETL Sans Effort đ¶
AWS Glue est un service ETL (Extract, Transform, Load) serverless. Il découvre automatiquement le schéma de tes données (catalogue), génÚre du code PySpark ou Scala pour nettoyer/transformer, et lance des jobs sur un cluster Apache Spark géré.
Idéal pour :
- Nettoyer tes datasets sales.
- Convertir des CSV/JSON en Parquet/ORC (gain de perf).
- Joindre des donnĂ©es provenant de plusieurs sources (S3, JDBC, DynamoDB, RedshiftâŠ).
- Automatiser la création de ton data lake.
Athena : SQL Sur Tout et Nâimporte Quoi đ¶
Amazon Athena te permet de lancer des requĂȘtes SQL directement sur des fichiers stockĂ©s en S3 (Parquet, JSON, CSVâŠ). Aucun cluster Ă gĂ©rer : tu payes Ă la requĂȘte (par TB scannĂ©).
Exemple : Tu as 10 To de logs serveur en S3. Avec Athena, tu écris :
SELECT user_id, COUNT(*) as sessions FROM my_logs WHERE date BETWEEN '2025-05-01' AND '2025-05-31' GROUP BY user_id;
et tu obtiens tes statistiques en quelques secondes, sans cluster Hadoop à déployer.
QuickSight : Tes Dashboards en 5 Minutes đ¶
Amazon QuickSight est le service de BI dâAWS. Tu connectes S3, Redshift, RDS, Athena, etc., tu glisses-dĂ©poses tes champs, et tu obtiens des visualisations interactives accessibles depuis un navigateur ou une application mobile.
Points forts :
- Analyse ad-hoc rapide
- Dashboards auto-rafraĂźchissables
- Intégration facile avec les autres services AWS
- Module dâalerting (SPICE) pour suivre tes mĂ©triques en temps rĂ©el
đ DevOps : Pour DĂ©ployer Comme un Chef¶
CloudWatch : Ton Tableau de Bord GĂ©nĂ©ral đ¶
Amazon CloudWatch centralise logs, mĂ©triques, Ă©vĂ©nements, dashboards et alarmes. Pour nous, data scientists, câest crucial :
- Suivi des endpoints SageMaker (latence, taux dâerreur).
- Logs des jobs Batch ou Glue.
- MĂ©triques custom (prĂ©cision, rappel, F1-score) envoyĂ©es via lâAPI CloudWatch.
- Alertes email/SMS quand un seuil critique est atteint (ex. : taux dâerreur > 5 %).
Exemple de métrique custom :
AprĂšs une Ă©valuation¶
cloudwatch = boto3.client('cloudwatch') cloudwatch.put_metric_data( Namespace='ML/Predictions', MetricData=[{ 'MetricName': 'PredictionAccuracy', 'Value': accuracy_score(y_true, y_pred) }] )
API Gateway : LâEntrĂ©e VIP de Tes APIs đ¶
API Gateway expose tes endpoints (Lambda, ECS, SageMaker) au monde extérieur. On y configure :
- Authentification (Cognito, JWT, API Keys).
- Limitation de débit (throttling).
- Transformation des requĂȘtes/rĂ©ponses (mapping templates).
- Monitoring natif (intégration CloudWatch).
Exemple de chaĂźne API Gateway + Lambda + SageMaker :
- Le client appelle
https://api.mondomaine.com/predict
.- API Gateway valide lâauthentification, formate la requĂȘte JSON.
- Lambda reçoit la requĂȘte, prĂ©pare le payload pour SageMaker.
- SageMaker Endpoint renvoie une prédiction.
- Lambda formate la réponse et la renvoie via API Gateway.
CodePipeline & CodeBuild : CI/CD pour ML đ¶
CodePipeline orchestre tes pipelines CI/CD : commits, tests, build, déploiement. Combiné à CodeBuild (build & tests) et CodeDeploy (déploiement), tu automatises :
- Push de code vers un dĂ©pĂŽt (CodeCommit, GitHub, GitLabâŠ).
- Tests unitaires / linting.
- Construction de lâimage Docker pour ton modĂšle.
- Push de lâimage sur ECR.
- Mise Ă jour dâun service ECS ou dâun endpoint SageMaker.
- Tests de performance / sanity checks en pré-prod.
Bonus : Avec CloudFormation ou Terraform, tu versionnes ton infra en IaC (Infrastructure as Code). Ton blog, tes pipelines, tout est dans du YAML/JSON ou HCL !
đ Le Workflow Complet du Data Scientist AWS¶
Maintenant que tu vois tous les services, comment assembler tout ça dans la vraie vie ?
Pipeline de Dev Local â Cloud¶
-
Développement local dans un conteneur Docker :
2. Chargement des données en S3 : 3. ETL avec Glue ou jobs Batch containerisés :4. Exploration dans SageMaker Studio : 5. Entraßnement sur SageMaker ou ECS/Batch :# Dans ton job Batch import pandas as pd df = pd.read_csv('s3://mon-bucket/raw/dataset.csv') df_clean = clean_data(df) df_clean.to_parquet('s3://mon-bucket/processed/dataset.parquet')
6. Déploiement via ECS ou SageMaker Endpoint :# Exemple SageMaker Training Job from sagemaker.sklearn import SKLearn estimator = SKLearn( entry_point='train.py', instance_type='ml.m5.xlarge', role='arn:aws:iam::123456789012:role/SageMakerRole' ) estimator.fit({'train': 's3://mon-bucket/processed/'})
7. Exposition via API Gateway : 8. Monitoring avec CloudWatch :# Exemple ECS Fargate update aws ecs update-service \ --cluster ml-cluster \ --service ml-api \ --task-definition ml-api:2
Architecture de RĂ©fĂ©rence ML sur AWS¶
âââââââââââââââ âââââââââââââââ âââââââââââââââ
â Raw Data âââââ¶â Glue âââââ¶â Processed â
â (S3) â â (ETL) â â Data (S3) â
âââââââââââââââ âââââââââââââââ âââââââââââââââ
â
âŒ
âââââââââââââââ âââââââââââââââ âââââââââââââââ
â Client ââââââ API Gateway ââââââ SageMaker â
â Apps â â â â Endpoint â
âââââââââââââââ âââââââââââââââ âââââââââââââââ
â âČ
â âââââââââââââââ â
âââââââââââ¶â CloudWatch â â
â (Monitoring)â â
âââââââââââââââ âââââââââââââââ
â SageMaker â
â Training â
âââââââââââââââ
đĄ Mes Conseils de Survie AWS¶
Pour DĂ©buter¶
- Apprends Docker sur ton laptop avant de te jeter dans AWS.
- Faire de la CI/CD avec GitHub Actions ou GitLab CI pour automatiser le build et le test de tes conteneurs.
- Creer des images sur sur Docker Hub pour tes CI avant de te lancer sur AWS; Sur AWS, tu auras ECR pour stocker tes images, mais commence par maĂźtriser le concept de conteneurs.
- Explore les tutoriels AWS : ils sont bien faits et te donnent un bon aperçu des services.
- Profite du Free Tier (12 mois gratuits) pour expérimenter sans douleur.
- Utilise SageMaker Studio pour tout ton ML (notebooks + entraßnement + déploiement).
- S3 pour stocker, Lambda pour automatiser les petites tĂąches, CloudWatch pour ne pas avoir de surprises.
Pour MaĂźtriser les Conteneurs¶
- Pense containers-first : développe toujours dans Docker dÚs le départ.
- ECR pour stocker tes images privées.
- ECS Fargate pour commencer (câest plus simple que Kubernetes).
- EKS lorsque tu as besoin dâune orchestration complexe.
- Batch pour les gros jobs de traitement.
Pour Ăconomiser¶
- Ăteins tes instances EC2 / endpoints SageMaker quand tu ne tâen sers pas.
- Utilise des Spot Instances pour lâentraĂźnement (jusquâĂ 70 % moins cher).
- Fargate Spot pour les containers non critiques.
- Archive tes vieilles données en Glacier.
- Surveille ta facture avec Cost Explorer et mets en place des Budgets.
Pour Ătre Pro¶
- Maßtrise IAM (sécurité first !).
- Utilise Infrastructure as Code (Terraform ou CloudFormation).
- Mets en place des pipelines CI/CD pour tes modĂšles.
- Monitore TOUT avec CloudWatch.
- Versionne aussi bien tes modĂšles que tes donnĂ©es (SageMaker Experiments, Git, DVCâŠ).
đŻ RĂ©cap : Ton Toolkit AWS ContainerisĂ©¶
- Développement : Docker + ECR (containers everywhere !)
- Stockage : S3 (toute donnée), RDS (relationnel), Redshift (analytics)
- Compute : SageMaker (ML), ECS/EKS (containers), EC2 (VMs), Lambda (serverless)
- Orchestration : ECS (simple), EKS (complexe), Batch (jobs)
- Analytics : Glue (ETL), Athena (SQL), QuickSight (viz)
- Déploiement : API Gateway (exposition), CloudWatch (monitoring)
- DevOps : CodePipeline (CI/CD), CloudFormation/Terraform (IaC)
Conclusion¶
AWS, au dĂ©but, câest intimidant, mais une fois que tu as compris les bases (et surtout Docker !), tu te demandes comment tu faisais avant. Tu peux scaler de 0 Ă lâinfini : passer dâun petit dataset sur ton laptop Ă des pĂ©taoctets sur un cluster Kubernetes, tout en gardant un workflow cohĂ©rent. DĂšs que tu adoptes la philosophie âcontainers-firstâ, AWS devient limpide : ton environnement de dev est aussi ton environnement de prod. Tes notebooks locaux deviennent des APIs en production. Ton docker-compose.yml
local devient ta définition de service ECS ou EKS.
Commençons petit, conteneurisons tout, expérimentons, cassons des trucs (dans ton sandbox !), mais surtout surveillons la facture :)!
*P.S. : Nâoublie pas de configurer des alertes de facturation. On a tous entendu lâhistoire du·de la pote qui a laissĂ© tourner un cluster EMR tout le weekend⊠RIP le budget (son nom commençait par SA et son prĂ©nom aussi) ! đž
P.P.S. : Docker, câest vraiment le game changer. Une derniĂšre fois promis :), Si tu ne lâutilises pas encore, arrĂȘte tout et apprends ça en premier. Tout le reste en dĂ©coulera naturellement !