3

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

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

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

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

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

在一个理想的世界中,如果我的实例消失了,我可以启动我的实例的一个版本,并且一切都完好无损(达到备份的程度)。有什么资源或建议吗?提前致谢。

4

2 回答 2

3

OK, here we go:

For backups:

  1. Create your instance from one of the stock AWS images. Make sure it is an EBS-backed VM - depending on the size of the VM you pick, you'll get a volume assigned with 'n' GB of space, attached as the boot volume (/dev/sda1).

  2. Configure the VM with whatever software you need, apply patches, tune for disk fragmentation, CPU consumption (task priorities, etc), and any other configuration you need that makes the VM tailored to your requirements.

  3. Stop the VM and take a snapshot of the EBS volume, then restart it (re-assigning the Elastic IP is there is one). This is your backup snapshot - repeat as desired at whatever frequency you like. Remember to stop the VM when you snap it to prevent the OS writing to the volume whilst you're taking a copy of it.

For recovery:

  1. Your VM will fail, eventually. You'll break something and render it damaged or inoperative, or the hardware it's running on will suffer a fault. It will happen.

  2. When it does, terminate it (if it didn't self-terminate) and spin-up a new VM of the same type from the AWS stock list. Wait until it shows as 'Running', and then stop it.

  3. Detach its EBS volume and delete it.

  4. Create a new EBS volume from whichever backup snapshot you last created, and attach that new volume to the VM as /dev/sda1.

  5. Start the VM and assign your EIP if appropriate.

About EBS storage:

  1. It's a chunk of storage space. If you format it to look like a standard disk, you can use it exactly as you would a physical disk. Install stuff on it, point software at it for use as storage space, whatever.
于 2012-05-24T11:00:14.113 回答
1

你有两个选择:(但不完全是你想要的;()

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

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

我建议您仔细研究 RESERVED EC2 实例,它比普通实例具有更好的稳定性。但是您仍然可以将硬件灾难作为正常情况...

于 2012-05-24T01:50:39.630 回答