AWS Elastic Beanstalk备份&复苏

时间:2014-06-04 22:44:47

标签: amazon-web-services elastic-beanstalk

我是AWS EB的新手,我正在试图找出如何备份和恢复整个EB环境。我基于EB生成的EC2实例创建了一个AMI,并拍摄了由EB创建的RDS快照。

我遇到的问题是,如何恢复它,假设这是正确的备份方法。另外,我是手动完成的,不应该在EB中自动执行此操作吗?顺便说一下,当我创建AMI时,它会破坏源代码,而EB只是创建了一个新的EC2实例而没有我所有的更改。

如何保存&恢复对我的应用程序的配置更改会影响文件系统和数据库?

2 个答案:

答案 0 :(得分:5)

不幸的是,如果这些数据库是使用EB创建的,则Amazon AWS Elastic Beanstalk(EB)不支持还原包含实时数据的数据库。如果您重新加载(AKA AWS“部署”)EB保存配置,您将获得一个空白数据库!

我打电话给他们,他们告诉我单独创建RDS数据库并更新应用程序代码以便在知道其名称后连接到数据库。如果您还原RDS数据库,它也会有一个新名称!因此,您必须再次更新代码才能连接到它。

此外,如果你的代码和环境没问题,但你想要恢复数据库,那么它将有一个新的名称,你需要更改你的代码。

如何轻松更改代码并自动部署代码是另一个我还没有答案的问题。

基本上,Elastic Beanstalk中的RDS数据库配置使用非常有限,可能是编码,调试和测试,但不是实时生产使用。 :(

这是截至2015年1月。

答案 1 :(得分:3)

首先进入EB环境并保存当前配置。您应该转到EB创建的正在运行的EC2实例并创建一个Image。然后通过转到EB配置并进行设置来使用该新的AMI ID。它将重建环境,拆除所有正在运行的实例并创建新实例。

对于您的RDS实例,您应该使用新的实例名称进行备份和还原,因为文档说如果环境被破坏,您将丢失它。您可能只需手动设置环境变量,如RDS,并在RDS和EC2之间设置适当的安全组。

我认为可以使用的一个选项是重命名RDS实例名称,因为环境似乎破坏然后破坏环境并创建一个带有附加RDS实例的新环境,然后销毁该环境并将旧的重命名为新环境一个人可能有用的名字。

在继续进行任何这些想法之前,请务必进行适当的备份。