Cours Aws

3.37 E2 Hibernate AWS

Sur EC2, on connaît déjà trois comportements d'instance : on peut la démarrer, l'arrêter ou la terminer. Lorsqu'on arrête une instance, les données présentes sur le volume EBS sont conservées et restent disponibles au redémarrage. Lorsqu'on termine l'instance, les volumes créés au lancement disparaissent par défaut.

Au premier démarrage, le système exécute le script user data qui installe l'application et les services. Aux démarrages suivants, le système redémarre directement sans rejouer cette installation. Mais si l'application charge beaucoup de cache, démarre de nombreux services ou nécessite un long temps d'initialisation, chaque redémarrage peut rester très lent. AWS introduit pour cela le mode Hibernate.

Comment fonctionne EC2 Hibernate

Le mode Hibernate correspond à une mise en veille de l'instance : tout le contenu de la RAM est préservé. Au redémarrage, le système n'est ni arrêté ni redémarré, il reprend dans l'état exact où il a été suspendu, ce qui rend le démarrage bien plus rapide. Techniquement, le contenu de la RAM est sauvegardé sous forme de fichier à la racine du volume EBS. C'est pour cette raison que le volume racine EBS doit être chiffré.

Quand on déclenche un stop-hibernate, AWS effectue une sauvegarde complète de la RAM sur l'EBS racine puis arrête l'instance — mais sans arrêter réellement le système d'exploitation. Au redémarrage suivant, la RAM est rechargée depuis ce fichier, et l'OS reprend son exécution là où il s'était arrêté.

  • Types d'instances supportés : familles C3, C4, C5, M3, M4, M5, R3, R4, R5 (entre autres).
  • Taille de RAM ≤ 150 Go ; non supporté sur les très grandes instances avec stockage interne massif.
  • Volume racine obligatoire en EBS, chiffré et suffisamment grand pour accueillir le fichier de RAM.
  • Réservé aux instances à la demande et réservées ; pas disponible pour les Spot Instances (caractère éphémère).
  • Durée maximale d'hibernation : 60 jours.

EC2 Hibernate est donc particulièrement utile pour les workloads à long temps de boot ou aux gros caches en mémoire, à condition de respecter ces contraintes sur l'instance et le volume EBS racine.

En résumé

Cette leçon explique la fonctionnalité Hibernate d'AWS EC2, qui permet de mettre une instance en état de veille en sauvegardant le contenu de la RAM sur un volume EBS chiffré. Cette approche offre un démarrage plus rapide qu'un redémarrage standard puisque le système d'exploitation et les applications restent en mémoire. Hibernate comporte toutefois des limitations concernant les types d'instances supportées, la taille de la RAM (< 150 GB), et ne fonctionne que pour les instances à la demande.

Points clés

  • Hibernate sauvegarde l'intégralité du contenu RAM sur le disque EBS, permettant un démarrage instantané sans réinstallation des services
  • Seuls certains types d'instances supportent Hibernate : T3, T5, M5, R3, R5 et quelques autres (non disponible sur C1, T2, T4)
  • Le volume EBS doit obligatoirement être chiffré et posséder un espace suffisant pour le fichier de vidage mémoire
  • Hibernate n'est disponible que pour les instances à la demande, pas pour les instances réservées
  • La taille de la RAM est limitée à 150 GB maximum pour utiliser Hibernate

Questions fréquentes

Quelle est la différence entre arrêter une instance et la mettre en hibernation ?

Arrêter une instance redémarre complètement le système d'exploitation au relancement, ce qui peut prendre du temps pour réinstaller les services. Hibernate sauvegarde la RAM sur le disque et garde l'OS en mémoire, permettant un démarrage quasi instantané.

Quels sont les prérequis pour utiliser Hibernate sur AWS EC2 ?

Il faut une instance supportée (T3, T5, M5, R3, R5, etc.), un volume EBS chiffré de taille suffisante, une RAM inférieure à 150 GB, et l'instance doit être à la demande (non réservée).

Peut-on utiliser Hibernate avec une instance réservée ?

Non, Hibernate est uniquement disponible pour les instances à la demande (On-Demand), pas pour les instances réservées.