恢复 Elastic Beanstalk RDS

Posted

技术标签:

【中文标题】恢复 Elastic Beanstalk RDS【英文标题】:Restoring an Elastic Beanstalk RDS 【发布时间】:2018-08-19 19:51:17 【问题描述】:

重建弹性 beanstalk 环境时,EB 会自动重新创建新的关联 RDS 实例。

一旦关联,RDS 实例就无法与 EB 环境分离。

我有一个重建前 RDS 的快照。

您无法将 RDS 快照还原到现有 RDS 实例。

那么,我怎样才能在附加了所需快照的情况下重建环境?或者,我如何使用现有快照,或者如何将现有快照数据迁移到新数据库(我尝试使用创建模式导出数据,但缺少导入权限)。任何合适但理想的简单选项都可以。

【问题讨论】:

How to restore database in Elastic Beanstalk?的可能重复 【参考方案1】:

如果您有 RDS 数据库的快照,则可以使用它创建新环境。为此,您需要指定DBSnapshotIdentifier 选项设置。

    在项目的根目录中创建一个文件.ebextensions/rds_builder.config

    添加以下内容:

    option_settings:
      aws:rds:dbinstance:
        DBSnapshotIdentifier: <snapshot ID here>
    

编辑:

您还可以使用当前环境的saved configuration template 创建新环境。这个保存的模板很可能包含aws:rds:dbinstance 中的信息(因为您已将当前环境与 RDS 相关联),因此您需要基本上修改此位以指向您的快照。这应该可行,并且可能是更好的方法。

【讨论】:

从现有环境“创建新环境”是否微不足道?这与重建有何不同?您的答案看起来像是我会参考的内容,但由于我缺乏上下文,因此不会立即有用。我选择了***.com/a/19483247/4682556 有了应用程序代码(也包含上面提到的.ebextension来指定快照ID),我就新建一个环境。您还可以使用已保存的当前配置模板创建新环境。这个保存的模板很可能包含aws:rds:dbinstance 中的信息(因为您已将当前环境与 RDS 相关联),因此您基本上需要修改此位以指向您的快照。这应该可行,并且可能是更好的方法,但我从未尝试过。 看看这个:Using Elastic Beanstalk Saved Configurations 有没有办法在没有代码项目的情况下做到这一点?我只能通过 aws web 控制台管理它...

以上是关于恢复 Elastic Beanstalk RDS的主要内容,如果未能解决你的问题,请参考以下文章

没有 Elastic Beanstalk 的 Django EC2

Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本

将 AMI 映像用于 Elastic Beanstalk

elastic-beanstalk http请求超时

在 AWS Elastic Beanstalk 和 EKS 上部署了一个 laravel 应用程序 相同的数据库 RDS 为啥在 Elastic Beanstalk 中获得快速响应

AWS Elastic Beanstalk CLI 安装错误