如何从我的EBS支持的EC2实例创建AMI?

con*_*one 6 amazon-ec2 amazon-web-services

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

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

感谢您耐心解决一个长期问题.我认识到那里有类似的信息,但没有真正解决可能出错的问题.

这个问题:

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,我有点担心所有这些数据.

提前致谢!

ste*_*hin 2

在回答您的问题之前,我建议您在开始创建映像之前将 MySQL 数据库备份到未存储为快照或 EBS 的文件。(当然,还要测试您是否可以将其恢复到生产系统之外的其他位置。)

我用:

mysqldump --add-drop-table -u root -p databasename > database.sql
Run Code Online (Sandbox Code Playgroud)

备份并且:

mysql -u root -p databasename < database.sql
Run Code Online (Sandbox Code Playgroud)

恢复。

  1. 不,您不必关闭 MySQL,但您必须在创建 AMI 时防止写入数据库。
  2. 不会,创建 AMI 还会创建 EBS 卷的新快照(内容与映像创建时相同)。
  3. 是的,参见 2

更多信息:我更喜欢在拍摄快照或创建图像时尽可能关闭数据库。也就是说,我绝不是 MySQL 专家,但这里有一些来自http://aws.amazon.com/articles/1663?_encoding=UTF8&jiveRedirect=1的指导

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

mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

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

FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
SYSTEM sudo xfs_freeze -f /vol
Run Code Online (Sandbox Code Playgroud)