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

Amazon ec2 如何从支持EBS的EC2实例创建AMI?,amazon-ec2,amazon-web-services,Amazon Ec2,Amazon Web Services,我有一个EBS支持的EC2运行实例。EBS存储包含一个数据库。我想从中创建一个AMI。有人能提供指导吗 我必须关闭MySQL吗 我的AMI会尝试连接到同一个EBS商店吗?!(灾难) 创建AMI会自动快照我的EBS卷并创建副本吗?(希望是这个) 感谢您耐心地回答了一个很长的问题。我知道有类似的信息,但没有什么真正解决可能出现的问题 这个问题是: 是特定于ElasticFox的,我不使用任何工具(首选命令行)。我认为这个问题也没有答案 本博客: 虽然创建AMI很有启发性,但根本没有提到EBS,我

我有一个EBS支持的EC2运行实例。EBS存储包含一个数据库。我想从中创建一个AMI。有人能提供指导吗

  • 我必须关闭MySQL吗
  • 我的AMI会尝试连接到同一个EBS商店吗?!(灾难)
  • 创建AMI会自动快照我的EBS卷并创建副本吗?(希望是这个)
  • 感谢您耐心地回答了一个很长的问题。我知道有类似的信息,但没有什么真正解决可能出现的问题

    这个问题是:

    是特定于ElasticFox的,我不使用任何工具(首选命令行)。我认为这个问题也没有答案

    本博客:

    虽然创建AMI很有启发性,但根本没有提到EBS,我有点担心所有这些数据


    提前谢谢

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

    我使用:

    mysqldump --add-drop-table -u root -p databasename > database.sql
    
    要备份和删除,请执行以下操作:

    mysql -u root -p databasename < database.sql
    
    在mysql会话中,将表刷新到磁盘并获取锁。将文件系统刷新到磁盘并将其冻结。不要退出MySQL会话,否则您将丢失锁定和快照可能不一致的数据库文件

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

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

    此链接将有助于创建新的EBS支持的AMI:


    我还建议将MySQL数据放在单独的EBS卷或更好的RAID卷中

    Amazon控制台为您提供了一个执行此操作的选项

    只需登录到aws控制台并导航希望创建AMI的实例ID即可

  • 右键单击实例并单击“停止”
  • 右键单击实例并单击“创建AMI”
  • 输入AMI的名称并点击OK

  • 就这样。这将创建一个AMI。请参阅:了解详细信息。

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

    备份类型

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

    您可以找到用于锁定和解锁表的脚本,您可以通过SSM调用该表

    下面是用于文件系统冻结的脚本

    谢谢。这是我最终将使用的方法。这相当复杂,因为我还设置了复制,但这篇文章为我提供了起点。一旦我有一个完整的答案,我会张贴给其他人以及。
    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    SYSTEM sudo xfs_freeze -f /vol