2011-06-12 104 views
6

我有一个EBS支持的EC2运行实例。 EBS商店拥有一个数据库。我想从中创建一个AMI。有人可以提供指导吗?如何从EBS支持的EC2实例创建AMI?

  1. 是否必须关闭MySQL?
  2. 我的AMI会尝试连接到同一个EBS商店吗? (灾难)
  3. 将创建AMI自动快照我的EBS卷并创建副本? (希望是这一个)

感谢您的耐心通过一个长期的问题。我承认那里有类似的信息,但没有真正解决可能出错的地方。

这个SO问题:

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

是特定于ElasticFox,我没有使用任何工具(喜欢命令行)。我不相信这个问题也被回答。

此博客:

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

而有益的有关创建AMI,没有提及EBS在所有和我有点担心所有的数据。

在此先感谢!

回答

1

在开始您的问题之前,我建议您在开始创建映像之前将您的MySQL数据库备份到未存储为快照的文件或EBS中。 (当然测试,你可以将其恢复到别的地方比你的生产系统)

我用:

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

备份和:

mysql -u root -p databasename < database.sql 

恢复。

  1. 不,您不必关闭MySQL,但必须防止在创建AMI时写入数据库。
  2. 不,创建AMI也会为您的EBS卷创建一个新快照(其内容与创建映像时的内容一样)。
  3. 是,看多2

有点信息: 我宁愿关闭数据库snapshoting或创建图像时,如果可能的话。也就是说,我不是任何意思的MySQL专家,但这里有一些指导从http://aws.amazon.com/articles/1663?_encoding=UTF8&jiveRedirect=1

使用上面设置的密码在实例上启动一个MySQL会话。

mysql -u root -p 

在mysql会话中,将表格刷新到磁盘并获取锁定。将文件系统冲洗到磁盘并冻结。不要退出MySQL会话,否则将失去锁定和快照,可能不一致的数据库文件!

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

谢谢。这是我将最终使用的方法。这是相当复杂的,因为我也有复制设置,但这篇文章给了我起点。一旦我有了完整的答案,我也会将其发布给其他人。 – cone 2011-06-13 14:46:51

+0

乐意帮忙,祝你好运。 – steenhulthin 2011-06-13 14:50:03

1

确保您始终按照steenhulthin的建议通过倾销来备份您的MySQL。

此链接将有助于创造新的EBS支持的AMI: http://www.capsunlock.net/2009/12/create-ebs-boot-ami.html

我也建议你的MySQL数据放置到一个单独的EBS卷或更好的搜查卷。

+0

MySQL数据已在EBS商店中。 – cone 2011-06-13 14:48:01

3

亚马逊控制台为您提供了一个选择来做这个东西。

只需登录到您的aws控制台并浏览您希望创建AMI的实例ID即可。

  1. 右键单击实例并单击“停止”。
  2. 右键单击实例并单击“创建AMI”。
  3. 输入名称为您的AMI &点击确定。

就是这样。这将创建一个AMI。有关详细信息,请参阅:http://docs.amazonwebservices.com/AWSEC2/2011-05-15/UserGuide/index.html?Tutorial_CreateImage.html

+0

我不能让DB停机,但谢谢。 – cone 2011-06-13 14:47:09