Création d'une image AMI EC2 à partir d'une instance en cours d'exécution à partir d'un instantané de volume

22

Je souhaite sauvegarder une instance EC2 basée sur Linux pendant qu'elle s'exécute sans temps d'arrêt, puis lancer une nouvelle instance plus tard. (L'instance exécute un serveur Web et une base de données Postgres.)

J'ai trouvé qu'il y a deux façons de le faire, mais je suis confus quant à la différence de résultat entre eux.

Option # 1: créer une AMI directement à partir d'une instance en cours d'exécution:

  1. Créez une nouvelle AMI directement à partir de l'instance d'origine en cours d'exécution.
  2. Lancer une nouvelle instance depuis l'AMI

Option n ° 2: créer manuellement une AMI à partir d'un instantané:

  1. Prendre un instantané du volume attaché à l'instance d'origine en cours d'exécution
  2. Créer une AMI à partir de l'instantané, en entrant manuellement des détails tels que l'architecture et l'ID du noyau
  3. Lancer une nouvelle instance à partir de l'image créée manuellement

Maintenant, ce qui est déroutant, c'est que lors de la création d'une AMI directement à partir d'une instance, EC2 redémarrerait l'instance par défaut. Il y a une case à cocher "Pas de redémarrage" avec l'info-bulle suivante:

Lorsqu'il est activé, Amazon EC2 n'arrête pas l'instance avant de créer l'image. Lorsque cette option est utilisée, l' intégrité du système de fichiers sur l'image créée ne peut pas être garantie.

Y a-t-il vraiment une différence dans le résultat de ces deux options? Pour moi, j'ai l'impression de faire manuellement les mêmes choses que l'assistant automatisé ferait de toute façon. Il génère des instantanés, sélectionne les ID et les architectures du noyau.

Pourquoi l'un a un texte d'avertissement et l'autre pas? Le snapshot d'une instance en cours d'exécution est considéré comme relativement sûr, et si la création AMI fait un snapshot en arrière-plan, est-ce plus dangereux que de tout faire à la main?

Vilsepi
la source

Réponses:

13

Ils font exactement la même chose si vous sélectionnez l' no rebootoption lors de la création de l'AMI directement à partir d'EC2. Cela crée essentiellement un instantané qui peut potentiellement être dans un état incohérent. Par exemple, vous risquez davantage d'avoir un état incohérent si vous effectuez de nombreuses écritures sur disque lors de la création de l'instantané.

Si vous souhaitez créer un instantané dans un état "cohérent", vous devez d'abord arrêter votre instance, puis prendre un instantané, puis redémarrer votre instance. C'est pourquoi l'option de création AMI d'EC2 est assez utile car vous n'avez pas besoin d'arrêter et de redémarrer. Amazon s'en charge et l'adresse IP ne change pas non plus sur votre instance. (Si vous arrêtez / redémarrez votre instance, votre adresse IP change en fait)

Je ne sais pas vraiment pourquoi Amazon n'a pas d'avertissement si vous prenez un instantané directement à partir du volume, mais du point de vue du volume, peu importe que le volume soit utilisé par une instance en cours d'exécution ou non ( il se soucie seulement de savoir si c'est attacher ou détacher sans effet sur la création d'instantanés)

Rico
la source
Je suis d'accord que vous devez créer des AMI car vous ne voulez pas fermer l'instance. Vous pouvez rechercher des solutions qui le font hors de la boîte pour gagner du temps. J'utilise personnellement totalcloud.io pour automatiser mes actions sur AWS.
Veer Abheek Singh Manhas