Aller au contenu principal

Introduction à ECS et Fargate


1 - Qu'est-ce qu'Amazon ECS ?

Amazon ECS (Elastic Container Service) est un service d'orchestration de conteneurs entièrement managé qui permet d'exécuter, arrêter et gérer des conteneurs Docker sur un cluster.


2 - ECS vs EKS vs Fargate

2.1 Comparaison

CritèreECSEKSFargate
TypeOrchestrateur AWS natifKubernetes managéServerless compute
ComplexitéFaibleÉlevéeTrès faible
PortabilitéAWS uniquementMulti-cloudAWS uniquement
Gestion infraEC2 ou FargateEC2 ou FargateAucune
Courbe d'apprentissageDouceRaideTrès douce
Coût$$$$$

2.2 Quand choisir quoi ?

Choisir ECS si :

  • Vous êtes 100% sur AWS
  • Vous n'avez pas besoin de Kubernetes
  • Vous voulez une solution simple

Choisir EKS si :

  • Vous avez besoin de Kubernetes
  • Portabilité multi-cloud requise
  • Équipe avec expertise K8s

Choisir Fargate si :

  • Vous ne voulez pas gérer d'infrastructure
  • Workloads avec scaling variable
  • Simplicité maximale

3 - Architecture ECS

3.1 Composants principaux

3.2 Hiérarchie des concepts

ConceptDescription
ClusterRegroupement logique de ressources
Task DefinitionBlueprint pour les conteneurs (comme un Dockerfile)
TaskInstance d'une Task Definition en cours d'exécution
ServiceMaintient N tasks en fonctionnement
Container InstanceEC2 avec l'agent ECS (EC2 launch type)

4 - Launch Types

4.1 EC2 Launch Type

Avantages :

  • Contrôle total sur l'infrastructure
  • GPU et instances spécialisées
  • Pricing réservé possible
  • Accès aux instances

Inconvénients :

  • Gestion des instances
  • Capacity planning
  • Patching OS

4.2 Fargate Launch Type

Avantages :

  • Serverless - pas d'infrastructure à gérer
  • Pay-per-use
  • Scaling instantané
  • Sécurité renforcée (isolation)

Inconvénients :

  • Coût plus élevé par tâche
  • Pas d'accès aux instances
  • Limites de ressources

5 - Cas d'utilisation

5.1 Microservices

5.2 Batch Processing

# Task Definition pour batch
{
"family": "batch-processor",
"containerDefinitions": [
{
"name": "processor",
"image": "batch-app:latest",
"command": ["python", "process.py"]
}
]
}

5.3 CI/CD Runners

  • Runners Jenkins/GitLab sur ECS
  • Scaling basé sur la queue
  • Isolation par container

6 - Tarification

6.1 EC2 Launch Type

ComposantCoût
ECSGratuit
EC2 InstancesPrix EC2 standard
Data TransferPrix standard

6.2 Fargate

RessourcePrix (eu-west-1)
vCPU~$0.04048/heure
Memory~$0.004445/GB/heure

Exemple : 1 vCPU, 2GB RAM, 24h

  • vCPU: 0.04048×24=0.04048 × 24 = 0.97
  • Memory: 0.004445×2×24=0.004445 × 2 × 24 = 0.21
  • Total: ~$1.18/jour

6.3 Fargate Spot

Jusqu'à 70% de réduction pour les workloads tolérants aux interruptions.


7 - Premier cluster ECS

7.1 Via Console

  1. Ouvrir la console ECS
  2. "Create Cluster"
  3. Choisir le template (Networking only pour Fargate)
  4. Nommer le cluster
  5. Configurer VPC/Subnets

7.2 Via CLI

# Créer un cluster
aws ecs create-cluster \
--cluster-name mon-cluster \
--capacity-providers FARGATE FARGATE_SPOT \
--default-capacity-provider-strategy \
capacityProvider=FARGATE,weight=1 \
capacityProvider=FARGATE_SPOT,weight=1

# Vérifier
aws ecs describe-clusters --clusters mon-cluster

7.3 Via CloudFormation

AWSTemplateFormatVersion: '2010-09-09'

Resources:
ECSCluster:
Type: AWS::ECS::Cluster
Properties:
ClusterName: mon-cluster
CapacityProviders:
- FARGATE
- FARGATE_SPOT
DefaultCapacityProviderStrategy:
- CapacityProvider: FARGATE
Weight: 1
- CapacityProvider: FARGATE_SPOT
Weight: 1
ClusterSettings:
- Name: containerInsights
Value: enabled
Tags:
- Key: Environment
Value: Production

Résumé

Dans ce chapitre, nous avons découvert :

  • ECS comme orchestrateur de conteneurs AWS
  • Les différences entre ECS, EKS et Fargate
  • L'architecture et les composants d'ECS
  • Les launch types (EC2 vs Fargate)
  • Les cas d'utilisation typiques
  • La tarification

Prochaine étape

Dans le prochain chapitre, nous approfondirons les Concepts fondamentaux d'ECS.

→ Chapitre suivant : Concepts fondamentaux


← Retour à la table des matières