Skip to content

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 :

  1. Reproductibilité : Ton environnement Python/R/Julia est identique partout.
  2. Isolation : Tes projets ne se marchent plus dessus.
  3. Portabilité : Du laptop au cloud sans modification.
  4. Collaboration : Toute l’équipe a le mĂȘme setup.
  5. 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 :

  1. Stocker tes datasets bruts
  2. Sauvegarder tes modÚles entraßnés
  3. 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 :

  1. EC2 Mode : Tu gùres tes instances EC2, tu as plus de contrîle, c’est souvent moins cher.
  2. 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 :

  1. Notebooks Jupyter managĂ©s (plus besoin d’installer Anaconda localement).
  2. EntraĂźnement : scalabilitĂ© automatique, choix d’instances GPU/CPU, frameworks ML prĂ©-intĂ©grĂ©s (TensorFlow, PyTorch, XGBoost, SKLearn
).
  3. Déploiement : endpoints en un clic, autoscaling, A/B testing.
  4. Hyperparameter Tuning : recherche automatisée des meilleurs hyperparamÚtres.
  5. AutoML (Autopilot) : quand tu veux un prototype rapide.
  6. Pipelines ML : orchestration complÚte (préprocessing, entraßnement, tests, déploiement).

Workflow typique SageMaker :

  1. Tu explores tes données dans un notebook SageMaker.
  2. Tu entraßnes un modÚle (SageMaker gÚre la scalabilité et le logging).
  3. Tu déploies ton modÚle en endpoint HTTP.
  4. 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 :

import boto3
from sklearn.metrics import accuracy_score

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 :

  1. Le client appelle https://api.mondomaine.com/predict.
  2. API Gateway valide l’authentification, formate la requĂȘte JSON.
  3. Lambda reçoit la requĂȘte, prĂ©pare le payload pour SageMaker.
  4. SageMaker Endpoint renvoie une prédiction.
  5. 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 :

  1. Push de code vers un dépÎt (CodeCommit, GitHub, GitLab
).
  2. Tests unitaires / linting.
  3. Construction de l’image Docker pour ton modùle.
  4. Push de l’image sur ECR.
  5. Mise à jour d’un service ECS ou d’un endpoint SageMaker.
  6. 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

  1. Développement local dans un conteneur Docker :

    docker-compose up  # Jupyter + Postgres + autres outils
    
    2. Chargement des données en S3 :

    import boto3
    s3 = boto3.client('s3')
    s3.upload_file('dataset.csv', 'mon-bucket', 'raw/dataset.csv')
    
    3. ETL avec Glue ou jobs Batch containerisés :

    # 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')
    
    4. Exploration dans SageMaker Studio :

    import sagemaker
    
    df = pd.read_parquet('s3://mon-bucket/processed/dataset.parquet')
    
    5. EntraĂźnement sur SageMaker ou ECS/Batch :

    # 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/'})
    
    6. Déploiement via ECS ou SageMaker Endpoint :

    # Exemple ECS Fargate update
    aws ecs update-service \
      --cluster ml-cluster \
      --service ml-api \
      --task-definition ml-api:2
    
    7. Exposition via API Gateway :

    curl -X POST https://api.mondomaine.com/predict \
         -H "Content-Type: application/json" \
         -d '{"features": [1,2,3,4]}'
    
    8. Monitoring avec CloudWatch :

    # Exemple d’envoi de mĂ©trique custom
    cloudwatch.put_metric_data(
        Namespace='ML/Predictions',
        MetricData=[{
            'MetricName': 'PredictionLatency',
            'Value': latency_value
        }]
    )
    

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 !