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

时间:2011-06-12 06:42:00

标签: amazon-ec2 amazon-web-services

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

  1. 我必须关闭MySQL吗?
  2. 我的AMI会尝试连接到同一个EBS商店吗?! (灾难)
  3. 创建AMI会自动为我的EBS卷创建快照并创建副本吗? (希望是这一个)
  4. 感谢您耐心解决一个长期问题。我认识到那里有类似的信息,但没有真正解决可能出错的问题。

    这个问题:

    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,我对所有数据都有点担心。

    提前致谢!

4 个答案:

答案 0 :(得分:3)

亚马逊游戏机为您提供了执行此操作的选项。

只需登录您的aws控制台并导航您想要创建AMI的实例ID。

  1. 右键单击实例,然后单击“停止”。
  2. 右键单击实例,然后单击“创建AMI”。
  3. AMI&的输入名称点击确定。
  4. 就是这样。这会产生一个AMI。有关详细信息,请参阅:http://docs.amazonwebservices.com/AWSEC2/2011-05-15/UserGuide/index.html?Tutorial_CreateImage.html

答案 1 :(得分: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
  4. 更多信息: 在拍摄快照或创建图像时,我更愿意在可能的情况下关闭数据库。这就是说我不是任何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
    

答案 2 :(得分:1)

确保始终按照steenhulthin的建议通过转储备份MySQL。

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

我还建议将MySQL数据放到单独的EBS卷或更好的RAIDed卷中。

答案 3 :(得分:0)

正如@steenhulthin 提到的,您应该执行 FS 冻结并将数据库置于读锁模式以进行一致的备份,否则您将只有崩溃一致

备份类型 https://asvignesh.in/backup-types-inconsistent-app-consistent-crash-consistent/

您可以使用 SSM 命令来执行 FLUSH 并锁定数据库的表,这将为您带来 MySQL 数据的一致性并从控制台创建映像,一旦触发 AMI 创建,您就可以解锁表 确保在后台脚本中运行 Flush 表,一旦关闭会话,MySQL 中的锁将被释放

您可以找到锁定和解锁您可以通过 SSM 调用的表的脚本 https://asvignesh.in/mysql-app-consistent-backup-using-nimesa/

这是文件系统冻结的脚本 https://asvignesh.in/consistent-backup-of-your-ec2-instance/