如何每天备份我的 ec2 实例? [关闭]

Posted

技术标签:

【中文标题】如何每天备份我的 ec2 实例? [关闭]【英文标题】:How to make a daily back up of my ec2 instance? [closed] 【发布时间】:2012-07-04 14:22:29 【问题描述】:

我在AWS 中有一个基于社区 AMI 的 Linux EC2 实例。现在我想每天备份我的实例,并将该图像上传到S3。

这是备份我的 EC2 实例的正确方法吗?谁能帮我指出备份我的 EC2 实例的正确方法?

【问题讨论】:

【参考方案1】:

希望您的实例是EBS backed。

如果是这样,您可以通过拍摄 EBS 快照来备份您的实例。这可以通过 aws.amazon.com(手动)、使用 AWS 命令​​行工具(可以根据需要在 cron 或 Windows 任务计划程序中自动和计划)或通过 AWS API 来完成。

您希望确保在快照过程中不会更改数据库备份文件的状态。当我对在 Ubuntu 上运行的 mysql 使用这种策略时,我使用了一个脚本来确保 consistent snapshot。该脚本使用 XFS 文件系统的功能在快照期间冻结文件系统。在那个部署中,快照只用了 2-3 秒,并且是在非常非高峰时间执行的。任何网站访问者都会遇到 2-3 秒的延迟。对于 Windows,如果无法为快照重新启动设备(您在晚上没有维护窗口),我会改为创建一个单独的 EBS 设备(例如用于快照的“S:\”设备),使用 SQL Server 备份工具在该其他设备上创建一个 .bak 文件,然后创建该单独 EBS 设备的 EBS 快照。

有关脚本备份的详细信息,请参阅此相关问题:

Automating Amazon EBS snapshots anyone have a good script or solution for this on linux

如果您安装了单独的存储,例如对于您的数据库,请务必备份它!

更新

要手动创建快照,

浏览至https://console.aws.amazon.com/ec2/home?#s=Volumes 右键单击要备份的卷(卷附加到的实例位于名为“附件信息”的列中) 选择Create Snapshot

从实例创建 AMI 映像并启动其他类似的实例(在具有更多资源或平衡负载等的实例中):

浏览至https://console.aws.amazon.com/ec2/home?#s=Instances 右键单击要从中创建 AMI 的实例 选择Create Image (EBS AMI)

【讨论】:

是的,我的实例支持 ebs。您能告诉我如何在 aws 控制台中拍摄 ebs 快照吗? 相应地更新了我的答案。 我在那个实例中有一个 sqlitedb,如果我这样做,它也会被备份? 如果您的 sqlitedb 存储在与操作系统相同的卷上,可以。 (换句话说,如果您没有安装额外的 EBS 卷,它也会被备份)。我建议从备份中启动一个新实例(通过右键单击备份)并确保在该新实例中一切都按预期运行。然后,您可以杀死新实例(确保您没有杀死“真正的”实例 :-) 这听起来不是一个好主意,因为备份 30 GB 的服务器可能需要几分钟,在此期间可能会发生某些非原子事件 - 例如 SQL 访问。这可能会给您的 CMS 带来问题,并且几乎不可能摆脱。您应该编写自己的专用备份,例如转储 sql 和复制数据的脚本 - 其他任何东西都是懒惰和危险的。

以上是关于如何每天备份我的 ec2 实例? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

自动关闭和启动 Amazon EC2 实例

如何设置MSSQL每天自动备份

如何备份ebs快照中的数据?

如何从备份中排除附加到 EC2 实例的某些 EBS 卷?

如何实现Oracle 11g数据库每天自动备份

如何使用shell脚本每天自动备份mysql数据库