恢复 EC2 实例

恢复 EC2 实例

我运行了一个 ubuntu EC2 实例大约一年了,在安装最新更新后,我失去了与它的 SSH 连接。我运行了一个 Rails 应用程序,并使用 Codeship 的自动 capistrano 部署。

服务器一直拒绝我的两个私钥以及我用于持续部署的 Codeship 密钥。我认为文件authorized_keys可能已损坏,并尝试了所有方法来恢复它。但是,我没有成功。幸运的是,我有一张二月份拍摄的快照。

这是我尝试过的:

  1. 我使用最新的驱动器创建了一个快照,并从中重新创建了另一个卷。
  2. 我创建了一个新的实例并安装了我创建的新卷/dev/sdf
  3. 检查authorized_keys驱动器上的文件时,发现它具有我之前提到的所有 3 个键。

因此,我可以得出结论,我的密钥没有问题,但 SSH 配置有问题。尽管我可以轻松创建新实例,但主要问题是我必须从 mysql 数据库中转储数据存在于该卷中。这可能吗?如果是,我该如何使用已安装的卷来实现这一点?

答案1

我必须转储该卷中存在的 mysql 数据库中的数据。这可能吗?如果可以,我该如何使用已安装的卷来执行此操作?

是的,这是可能的:

  • mysql在主机上安装。
  • 停止mysqld
  • 将配置datadir内的指令指向或者删除并符号链接到。mysql/<mountpoint-of-your-old-host/path/to/the/datadir/path/to/the/datadir/<mountpoint-of-your-old-host/path/to/the/datadir/path/to/the/datadir
  • 在执行此操作时,请注意权限和所有权等。
  • 开始mysqld,转储并获利!
  • 提示:实施一个系统,每分钟/每小时/每天/每周自动转储数据库和重要数据,并将其保存在一个(最好是两个)远程位置。如果数据敏感,请对其进行加密。

答案2

如果你启动了 EBS 实例,请按照本指南操作如何恢复无法访问的 Linux 实例

EBS EC2 实例是一种福音。您需要做的是:

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

  2. 将其与实例 ID 分离。

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

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

由于 EBS 卷是网络存储,因此挂载 MySQL 卷并将其传输到新的 EC2 应该不难。您需要做的是在移动 mysql 卷之前进行更多的快照备份。

如果您从“坏的 EC2 快照”启动实例没有问题,那么您应该这样做。首先启动实例,然后安装 DB 卷。由于配置相同,您应该可以毫无问题地立即运行 Mysql,并且数据完好无损。(但同样,在尝试之前,请为所有这些卷制作更多快照)

对于困难的部分,请查看这个:将 MySQL 数据库从一个 EBS 卷移动到另一个 AWS EC2 上。只需记住备份!由于 EBS 卷按比例收费,因此不要犹豫创建一些备份(即使数据库跨越几百 GB 或 TB)。您可以事后删除它们,并且只需为使用这些存储的期间付费。

相关内容