我该如何处理我的EC2应急计划?

时间:2012-05-24 01:34:03

标签: amazon-ec2 amazon-web-services amazon-ebs

我浏览了有关备份EC2的其他问题,它为我提供了良好的基础,但我仍然对如何处理我的解决方案并制定应急计划感到困惑。大多数问题都是相当具体的,但我有一个非常香草的设置,我认为这些信息对未来的用户有益。让我提供我的基本设置:

  • 基本小实例
  • 将文件推送到S3
  • 运行MongoDB
  • 运行nginx

现在,由于EC2的短暂性,很明显我需要将我的EC2实例绑定到EBS以确保持久存储。我试图制定应急计划的原因是我担心我的实例可能随时消失(由于停电等)。如果我的实例消失了,我担心我必须启动一个新实例并重新安装我的所有应用程序才能再次运行。几个问题:

  • 如何备份我的实例以确保如果它消失,我可以快速恢复它(最好不必重新安装所有以前的软件)?我不需要一系列备份,只需要前几天(或几周)备份,以确保存在可以快速启动的先前工作版本。
  • 如果我使用EBS而不是实例存储,它实际上代替了我的硬盘驱动器吗?因此,如果我安装了MongoDB,我假设数据库正在写入放置在EBS上的cab?
  • 如果我使用160 GB存储的小型实例并且使用EBS,我是否需要从门中分配160 GB的EBS,或者只是160 GB的实例存储?

因此,总而言之,我想要一个解决方案(手动或自动),可以创建我的EC2实例的快照,以确保如果它消失,它可以重建而不必花时间手动重建一切。

在一个理想的世界中,如果我的实例消失了,我可以将我的实例的一个版本完整地旋转(到事情被备份的地方)。任何资源或建议?提前谢谢。

2 个答案:

答案 0 :(得分:3)

好的,我们走了:

备份:

  1. 从其中一个AWS图像中创建您的实例。确保它是EBS支持的VM - 根据您选择的VM的大小,您将获得一个分配了'n'GB空间的卷,作为启动卷附加(/dev/sda1).

  2. 使用您需要的任何软件配置虚拟机,应用补丁,调整磁盘碎片,CPU消耗(任务优先级等),以及根据您的要求定制VM所需的任何其他配置。

  3. 停止虚拟机并拍摄EBS卷的快照,然后重新启动它(重新分配弹性IP就有了)。这是您的备份快照 - 根据需要以您喜欢的任何频率重复。请记住在捕捉虚拟机时停止虚拟机,以防止操作系统在复制时写入卷。

  4. 恢复:

    1. 您的VM最终会失败。你会破坏某些东西并使其损坏或不起作用,或者它运行的硬件会出现故障。它会发生。

    2. 如果是,请终止它(如果它没有自行终止)并从AWS库存列表中启动相同类型的新VM。等到它显示为“正在运行”,然后停止它。

    3. 分离其EBS卷并将其删除。

    4. 从您上次创建的任何备份快照创建新的EBS卷,并将该新卷作为/ dev / sda1附加到VM。

    5. 启动虚拟机并在适当时分配您的EIP。

    6. 关于EBS存储:

      1. 这是一大块存储空间。如果将其格式化为标准磁盘,则可以像使用物理磁盘一样使用它。在其上安装东西,将软件指向它以用作存储空间,无论如何。

答案 1 :(得分:1)

你有两种选择:(但并不是你想要的;()

1-将“外部”EBS连接到您的EC2实例,并手动(您可以通过cronjobs自动执行),从中制作快照!但这不是你想要的,为什么?如果您的EC2实例消失,您将需要重新创建所有环境并重新连接您的EBS ...所以这是在EC2上备份巨大数据的好方法,但是您的环境被破坏...... / p>

2-最好的方法,但不是那么完美,是在完成配置EC2后,从中创建一个私有AMI,因此您可以随时从该AMI启动更多这样的实例,以便克隆所有内容。 ...但最糟糕的是,每次从实例更改配置时,您仍需要创建新的AMI,并且每次创建新的AMI时,都需要重新启动实例以授予数据完整性在你的新私人AMI上!

我建议你仔细研究一下RESERVED EC2实例,它们比普通实例具有更好的稳定性。但是,你仍然可以像正常情况一样发生硬件灾难......