如何从 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 环境属性