如何从 Elastic Beanstalk 环境中删除 RDS 数据层

Posted

技术标签:

【中文标题】如何从 Elastic Beanstalk 环境中删除 RDS 数据层【英文标题】:How do you remove an RDS data layer from an Elastic Beanstalk environment 【发布时间】:2013-11-06 01:04:27 【问题描述】:

如何从 Elastic Beanstalk 环境中删除 RDS 数据库?

似乎没有执行此操作的选项。我知道我可以创建一个 EB 环境并让它用它创建一个 RDS 服务器,我们做到了。现在我们只想自己获取 RDS 服务器的 raid,但让应用程序服务器保持运行。除非我只是从 RDS GUI 中删除它,否则我不知道我们应该如何执行此操作,但我认为正确的方法是将其从 EB 环境中删除。

【问题讨论】:

你有没有想过这个问题?我正在尝试做同样的事情。 不,我们没有,我们最终没有使用 Elastic Beanstalk RDS 设置。我们发现仅使用 RDS 并仅使用 EB 来自动扩展我们的 Web 服务器要容易得多。在这个问题之后,我们决定不将我们的数据库粘贴在其中。 【参考方案1】:

根据亚马逊 aws 论坛上的这个答案:

目前无法从 Elastic Beanstalk 中删除 RDS 配置。您需要创建一个新的 Elastic Beanstalk 排除 RDS 配置的应用程序配置,启动 您的应用程序在这个新环境中,然后将 DNS 更改为指向 新环境。

https://forums.aws.amazon.com/message.jspa?messageID=469364

【讨论】:

一个问题,如果我从 RDS 控制台中删除 RDS 实例会怎样。它还会删除 Elastic Bean stalk 环境吗? 不,不会的。即使 RDS 实例已被删除,它仍会显示在数据层中。 如果您通过 RDS 控制台删除 RDS 实例,您将无法再更改 Elastic Bean 的配置。更改总是会产生错误,因为它找不到 RDS 实例... @Karda 呃,我正要这样做,谢谢你的提示。我想最好的解决方案是创建一个新的弹性豆茎应用程序 在我的例子中,我删除了 RDS 实例,并从快照启动了一个新的 RDS。现在 EB 不会让我做 eb deploy 因为它给出了一个错误 CloudFormation Stack missing... no DB instance *****, com'on amazon。现在我正在创建一个新的 EB 应用程序。【参考方案2】:

现在是 2019 年,仍然无法从 Elastic Beanstalk 环境中删除 RDS 数据库。我希望我早点知道这一点。

无论如何...以下是在没有托管 RDS 数据库的情况下创建新环境所需的一般步骤(基于来自 AWS 论坛的同一 thread):

    创建 RDS 数据库的快照并从中创建新的 RDS 数据库。这不会保留数据库的安全组、参数组或选项。因此,最好创建一个新的空 RDS 数据库,您可以在其中配置所有内容,然后从数据库转储中恢复内容,例如 mysqldump

    保存 Elastic Beanstalk 环境的配置并从 resources/templates/<your-app-name>/ 下的 S3 EBS 存储桶下载它。

    修改配置以删除对 RDS 的所有引用,并将修改后的文件上传到您的 S3 存储桶。

    从保存的配置创建一个新环境。您现在应该有一个没有托管 RDS 数据库的环境。在此过程中可能不会保留某些设置。例如,我必须为我的新环境重新配置负载均衡器。

    在新环境中一切正常后,您可以使用“交换环境 URL”或将您的 DNS 记录指向新的负载均衡器。

【讨论】:

【参考方案3】:

现在您可以将数据库与您的环境分离。

然后它将遵循您为其设置的数据保留策略。

https://aws.amazon.com/premiumsupport/knowledge-center/decouple-rds-from-beanstalk/

【讨论】:

以上是关于如何从 Elastic Beanstalk 环境中删除 RDS 数据层的主要内容,如果未能解决你的问题,请参考以下文章

如何从适用于 Java 的 AWS 开发工具包克隆 Elastic Beanstalk 环境?

如何将 Postgres 数据库从一个 Elastic Beanstalk 环境复制到另一个环境?我正在使用 Rails 5

如何将特定日志文件从多容器 Docker Elastic Beanstalk 流式传输到 CloudWatch?

在 Docker 中访问 Elastic Beanstalk 环境属性

从 VPC 中的 Elastic Beanstalk 实例访问 RDS

如何以编程方式获取部署到 Elastic Beanstalk 环境的应用程序版本