2011-06-12 5 views
6

Tengo una instancia de ejecución EC2 respaldada por EBS. La tienda de EBS tiene una base de datos. Me gustaría crear un AMI a partir de esto. ¿Puede alguien dar las pautas?¿Cómo creo un AMI de mi instancia EC2 respaldada por EBS?

  1. ¿Debo cerrar MySQL?
  2. ¿Intentará mi AMI conectarme a la misma tienda de EBS? (desastre)
  3. ¿La creación de AMI capturará automáticamente mi volumen de EBS y creará una copia? (esperando que sea este)

Gracias por su paciencia a través de una larga pregunta. Reconozco que hay información similar, pero nada realmente aborda lo que puede salir mal.

Este SO pregunta:

http://stackoverflow.com/questions/4475532/creating-an-ec2-ami-with-an-ebs-backed-instance-is-it-possible

es una disposición específica ElasticFox y no estoy usando cualquier herramienta (prefieren línea de comandos). No creo que la pregunta sea respondida tampoco.

Este blog:

http://instantbadger.blogspot.com/2009/09/how-to-create-and-save-ami-image-from.html

mientras instructiva sobre la creación de un IAM, no menciona en absoluto EBS y estoy un poco preocupado por todos esos datos.

¡Gracias de antemano!

Respuesta

1

Antes de ir a sus preguntas, le sugiero que realice una copia de seguridad de su base de datos MySQL en un archivo que no se almacena como una instantánea o en un EBS antes de comenzar a crear la imagen. (. Y, por supuesto, la prueba de que se puede restaurar a algún otro lugar que no sea su sistema de producción)

que utilizo:

mysqldump --add-drop-table -u root -p databasename > database.sql 

de copia de seguridad y:

mysql -u root -p databasename < database.sql 

restaurar.

  1. No, no tiene que cerrar MySQL, pero debe evitar las escrituras en la base de datos mientras crea el AMI.
  2. No, la creación de una AMI también crea una nueva instantánea de su volumen de EBS (con el contenido tal como estaba en el momento de creación de la imagen).
  3. sí, véase 2

Un poco más de información: prefiero cerrar la base de datos cuando sea posible cuando snapshoting o la creación de imágenes. Dicho esto, no soy un experto en MySQL, pero aquí hay alguna guía de http://aws.amazon.com/articles/1663?_encoding=UTF8&jiveRedirect=1

Inicie una sesión de MySQL en la instancia, usando la contraseña que configuró anteriormente.

mysql -u root -p 

En la sesión de MySQL, vacíe las tablas en el disco y obtenga un candado. Lave el sistema de archivos en el disco y congélelo. ¡No salga de la sesión de MySQL o perderá el bloqueo y la instantánea de los archivos de base de datos potencialmente inconsistentes!

FLUSH TABLES WITH READ LOCK; 
SHOW MASTER STATUS; 
SYSTEM sudo xfs_freeze -f /vol 
+0

Gracias. Este es el enfoque que finalmente usaré. Es bastante complicado porque también tengo configuración de replicación, pero esta publicación me dio los puntos de partida. Una vez que tenga una respuesta completa, la publicaré para otros también. – cone

+0

Feliz de ayudar, buena suerte. – steenhulthin

1

Asegúrate de hacer siempre una copia de seguridad de MySQL mediante dumping, tal como lo sugiere steenhulthin.

Este enlace le ayudará en la creación de su nuevo EBS respaldado AMI: http://www.capsunlock.net/2009/12/create-ebs-boot-ami.html

También sugiero colocar sus datos de MySQL a un volumen EBS separado o volúmenes mejor allanada.

+0

Los datos de MySQL ya están en la tienda de EBS. – cone

3

La consola de Amazon le ofrece la opción de hacer esto.

Simplemente, inicie sesión en su consola Aws y navegue por la ID de instancia que desea crear una AMI.

  1. Haga clic derecho en la instancia y haga clic en "Detener".
  2. Haga clic con el botón derecho en la instancia y haga clic en "Crear AMI".
  3. Escriba su nombre para su AMI & presione OK.

Eso es todo. Esto habría creado un AMI. Por favor vea: http://docs.amazonwebservices.com/AWSEC2/2011-05-15/UserGuide/index.html?Tutorial_CreateImage.html para una información detallada.

+0

No puedo tener tiempo de inactividad del DB, pero gracias. – cone

Cuestiones relacionadas