恢复EC2实例

我运行一个Ubuntu EC2实例约一年,在安装最新的更新之后,我失去了SSH连接。 我使用的是Codeship自动Capistrano部署的Rails应用程序。

服务器不断拒绝我的两个私钥,也是我用于持续部署的Codeship的关键。 我以为authorized_keys文件可能会损坏,并尝试所有的方式来恢复它。 但是,我不成功。 幸运的是,我有一个2月份的快照。

以下是我所尝试的:

  1. 我用最新的驱动器创build了一个快照,并重新创build了另一个卷。
  2. 我创build了一个新实例,并将创build的新卷装载为/dev/sdf
  3. 在检查驱动器上的authorized_keys文件时,它具有前面提到的所有3个键。

所以,我可以得出结论,我的密钥没有问题,但与SSHconfiguration。 尽pipe如此,我可以创build一个没有任何喧嚣的新实例,主要的问题是我必须从该卷中存在mysql数据库中转储数据 。 那可能吗? 如果是这样的话,我怎样才能在安装的音量上做到这一点?

我必须从该卷中存在的mysql数据库中转储数据。 那可能吗? 如果是这样的话,我怎样才能在安装的音量上做到这一点?

是的,这是可能的:

  • 在主机上安装mysql
  • 停止mysqld
  • mysqlconfiguration中的datadir指令指向/<mountpoint-of-your-old-host/path/to/the/datadir或remove /path/to/the/datadir和symlink /<mountpoint-of-your-old-host/path/to/the/datadir to /path/to/the/datadir
  • 这样做的时候请注意权限和所有权等。
  • 开始mysqld ,做转储和利润!
  • 提示:实现一个系统,每分钟/小时/天/周自动转储数据库和重要数据,并将其保存在一个更好的两个远程位置。 如果数据敏感,请对其进行encryption。

如果您启动了一个EBS实例,请遵循本指南如何恢复无法访问的Linux实例

EBS EC2实例是一个祝福。 你需要做的是:

  1. 转到EBS – 卷下的EC2 Web控制台,查找附加到实例的EBS卷。 确保在执行此操作之前closures实例。

  2. 从实例ID中分离它。

  3. 现在将此卷附加到另一个“良好”的EC2实例。
  4. 进入那个“好的EC2”实例,安装驱动器。

如果您不确定所有这些,只需创build一个在EBS中启动的小型EC2实例,然后先播放它。 您还应该为“坏”EC2(请标记它们)创build快照作为原始卷的备份。

由于EBS卷是一个networking存储器,所以这不应该很难挂载MySQL卷并将其转移到新的EC2。 在使用mysql卷移动之前,你需要做的是更多的快照备份。

如果您从“错误的EC2快照”启动实例没有问题,那么您应该这样做。 首先启动实例,然后安装数据库卷。 由于configuration是相同的,你应该没有问题让你的Mysql立即运行这些数据完好无损。 (但是,再次尝试之前,为所有这些音量制作更多快照)

对于困难的部分,请查看: 在AWS EC2上将MySQL数据库从一个EBS卷移动到另一个EBS卷 。 只记得备份! 由于EBS卷是按比例收费的,所以不要犹豫,创build一些备份(即使DB跨越几百GB或TB)。 您可以随后将其删除,并仅在使用这些存储空间时收取费用。