skip to content

Recherche

Syspirit
FR

AWS EC2

Choisir, acheter et faire vivre ses instances EC2 : types, modèles d'achat, états, Auto Scaling et load balancers !

AWS
Publié le
Karl Certa

Amazon EC2 (Elastic Compute Cloud) est le service de machines virtuelles d’AWS : on choisit un type d’instance, une image, un modèle d’achat, et AWS fournit la capacité dans la zone de disponibilité (AZ, Availability Zone) demandée.

🏷️ Lire un nom de type d’instance

Un nom de type se lit en quatre parties : série, génération, options, puis taille après le point.

📌 Partie📊 Exemple m7g.large💡 Signification
🔤 SériemFamille d’usage (ici usage général)
🔢 Génération7Plus le chiffre est élevé, plus le matériel est récent
⚙️ OptionsgProcesseur AWS Graviton (Arm)
📏 TaillelargeNombre de processeurs virtuels (vCPU) et mémoire (metal pour du bare metal)

Séries principales

📌 Série🎯 Orientation💼 Cas d’usage typiques
TBurstable : performance CPU de base, avec pics possiblesPetits serveurs web, dev/test, charges peu sollicitées
MUsage général équilibréServeurs d’applications, backends
CCompute optimizedCalcul intensif, batch, encodage
R / XMemory optimized / memory intensiveBases en mémoire, caches, analytique
I / DStorage optimized / dense storageBases NoSQL, gros I/O sur disque local
P / GAccéléré GPUEntraînement machine learning, rendu graphique

Options courantes dans le nom

📌 Lettre💡 Signification
aProcesseur AMD
gProcesseur AWS Graviton (Arm) : attention, il faut une AMI arm64
iProcesseur Intel
dVolumes Instance Store (disques locaux) inclus

💰 Modèles d’achat

Les réductions sont exprimées « jusqu’à » par rapport au tarif On-Demand ; le taux réel dépend du type, de la région, de la durée et du paiement.

📌 Modèle d’achat🔒 Engagement💰 Réduction max🎯 Cas d’usage
On-DemandAucun, facturation à la seconde (60 s minimum)AucuneCharge imprévisible, tests, besoins courts
Savings Plans1 ou 3 ans, montant en $/heureJusqu’à 72 %Charge de fond stable, recommandé par AWS avant les RI
Reserved Instances (RI)1 ou 3 ans, attributs d’instance figésJusqu’à 72 %Charge stable 24/7 sur un type connu
SpotAucun, instance reprise par AWS avec 2 min de préavisJusqu’à 90 %Batch, intégration continue, rendu, tout job qui supporte l’interruption
Dedicated InstanceAucunSelon le modèle choisiMatériel physique réservé à un seul compte
Dedicated HostÀ l’heure ou réservation 1 / 3 ansRéservation jusqu’à 70 %Licences BYOL (Bring Your Own License) par socket ou cœur
Capacity ReservationAucun pour un usage immédiatAucuneGarantir de la capacité dans une AZ (événement, plan de reprise d’activité)

Savings Plans : lequel prendre

📌 Type🌍 Portée💰 Réduction max
Compute Savings PlansEC2 toutes familles et régions, Fargate, LambdaJusqu’à 66 %
EC2 Instance Savings PlansUne famille d’instances dans une régionJusqu’à 72 %

Reserved Instances : les variantes

📌 Critère📊 Options💡 Conséquence
🔒 ClasseStandard / ConvertibleStandard : meilleure réduction, seulement modifiable. Convertible : échangeable contre d’autres attributs, réduction moindre
💳 PaiementAll / Partial / No UpfrontPlus on paie d’avance, plus la réduction est forte
📍 PortéeRégionale / ZonaleSeule la RI zonale réserve de la capacité dans une AZ
⏳ TermeNon annulable, pas de renouvellement automatiqueDue jusqu’au bout même si l’instance est résiliée ; ensuite, tarif On-Demand

Spot, Dedicated et Capacity Reservation : les règles à retenir

📌 Élément📊 Règle💡 Pourquoi c’est important
⚡ Interruption SpotSurtout quand EC2 récupère la capacité, ou si le prix Spot dépasse le prix max fixéFixer un prix max augmente la fréquence des interruptions
⏱️ Préavis Spot2 minutes avant arrêt ou résiliation (via EventBridge et métadonnées)Pas de préavis de 2 min si le comportement choisi est l’hibernation
🖥️ Dedicated HostFacturé par hôte, visibilité sockets / cœurs, affinité d’hôteIndispensable pour les licences liées au matériel physique
📦 Capacity ReservationFacturée au tarif On-Demand, instance lancée dedans ou nonAucune remise propre : la combiner avec Savings Plans ou RI régionales

🔄 États d’une instance et facturation

📌 État💰 Instance facturée💡 Signification
pendingNonDémarrage en cours
runningOuiInstance en service, même inactive
stoppingNon (oui si hibernation)Arrêt en cours
stoppedNonArrêtée, redémarrable ; les volumes EBS (Elastic Block Store) restent facturés
shutting-downNonRésiliation en cours
terminatedNonSupprimée définitivement

Stop, hibernate, terminate : ce qui est conservé

📌 Élément⏸️ Stop💤 Hibernate🗑️ Terminate
🖥️ Hôte physiqueChange en généralChange en généralAucun
🧮 RAMEffacéeSauvée sur le volume racine EBSEffacée
💽 Volume racine EBSConservéConservéSupprimé par défaut
💾 Autres volumes EBSConservésConservésConservés par défaut (DeleteOnTermination)
⚡ Instance StoreDonnées effacéesDonnées effacéesDonnées effacées
🔒 IPv4 privéeConservéeConservéeAucune
🌐 IPv4 publiqueNouvelle au démarrageNouvelle au démarrageAucune
📍 Elastic IPReste associéeReste associéeDissociée, toujours allouée au compte

Prérequis de l’hibernation

📌 Prérequis📊 Valeur
⚙️ ActivationAu lancement uniquement, impossible sur une instance existante
🧮 RAMMoins de 150 Gio (Linux), 16 Gio max (Windows)
💽 Volume racineEBS chiffré, assez grand pour contenir la RAM
⏳ Durée60 jours maximum en état hiberné
🚫 IncompatibleInstances d’un Auto Scaling Group, bare metal

🖼️ AMI, User Data et métadonnées

📌 Élément📊 Règle💡 Conséquence
🖼️ AMI (Amazon Machine Image)Image de démarrage propre à une région, un OS et une architecturePour lancer ailleurs, copier l’AMI dans la région cible
📜 User DataScript ou directives cloud-init, exécutés en root au premier démarrageNe se relance pas au reboot sans configuration dédiée
📏 Taille User Data16 Ko avant encodage base64Limite dure, garder le script court
📄 Logs User Data/var/log/cloud-init-output.logPremier endroit à regarder si le bootstrap échoue
🔑 IMDSv2 (Instance Metadata Service v2)Métadonnées sur 169.254.169.254, jeton obtenu par une requête PUTExiger IMDSv2 bloque les appels sans jeton (IMDSv1)
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id

📍 Placement groups

📌 Stratégie🗺️ Portée📊 Limite🎯 Cas d’usage
ClusterUne seule AZPas de T ni de Mac1 ; même type conseilléHPC (High Performance Computing), faible latence entre nœuds
SpreadPlusieurs AZ, chaque instance sur un rack distinct7 instances en cours d’exécution par AZQuelques instances critiques à isoler
PartitionPlusieurs AZ, chaque partition sur ses propres racks7 partitions par AZHDFS, HBase, Cassandra

Spread isole chaque instance, d’où la limite basse. Partition isole des groupes : deux instances d’une même partition peuvent tomber ensemble, mais une panne de rack ne touche qu’une partition. Une panne de l’AZ fait tomber tout un placement group Cluster.

🌐 Elastic IP

📌 Élément📊 Valeur💡 Conséquence
📍 PortéeUne région, non déplaçableUne Elastic IP (EIP) de eu-west-3 ne sert pas dans eu-central-1
🔢 Quota par défaut5 Elastic IP par régionAWS conseille de les garder pour le basculement après panne, DNS pour le reste

📈 Auto Scaling Group (ASG)

📌 Élément📊 Rôle
📄 Launch TemplateModèle d’instance : AMI, type, Security Groups, User Data, rôle
🔢 Min / Desired / MaxLe groupe ne descend jamais sous le min, ne dépasse jamais le max, vise le desired
🗺️ Multi-AZInstances réparties équitablement entre les AZ choisies
❤️ Health checksStatus checks EC2 par défaut, health checks ELB (Elastic Load Balancing) en option ; instance malade remplacée
🔗 Load balancerEnregistrement et désenregistrement automatiques des instances
🪝 Lifecycle hooksPause au lancement ou à la résiliation (1 h par défaut) pour installer ou récupérer des logs

Politiques de scaling

📌 Politique⚙️ Principe🎯 Quand l’utiliser
Target trackingMaintient une métrique à une cible (CPU moyen à 50 %)Choix recommandé par AWS dans la plupart des cas
Step scalingAjustements par paliers selon l’ampleur du dépassement d’alarmeRéaction graduée à des seuils CloudWatch
Simple scalingUn ajustement par alarme, puis cooldown (300 s par défaut)Déconseillé par AWS, préférer target tracking ou step
ScheduledModifie min / desired / max à heure fixe (expression cron, fuseau horaire)Charge prévisible : ouverture des bureaux, fin de semaine
PredictivePrévoit la charge à partir de l’historique et lance la capacité en avanceTrafic cyclique, applications longues à démarrer

⚖️ Choisir un load balancer

📌 Load balancer🧱 Couche📊 Protocoles🔀 Cross-zone par défaut🎯 Cas d’usage
ALB (Application Load Balancer)7HTTP, HTTPS, gRPCToujours actifApplications web, routage par chemin, hôte ou en-tête
NLB (Network Load Balancer)4TCP, UDP, TLSDésactivéPerformances extrêmes, IP statique ou Elastic IP par AZ
GWLB (Gateway Load Balancer)3 et 4IP (GENEVE, port 6081)DésactivéInsérer des appliances tierces : pare-feu, détection et prévention d’intrusion

Les Security Groups (pare-feu stateful au niveau de l’instance) sont détaillés dans la fiche VPC.

Articles liés