【问题标题】:How to make two Elastic Beanstalk environments share one database instance如何让两个 Elastic Beanstalk 环境共享一个数据库实例
【发布时间】:2013-04-28 09:05:18
【问题描述】:

我有一个 Rails 弹性 beanstalk 应用程序,它有两个环境,暂存和生产。在使用eb init 创建应用程序和登台环境时,我创建了一个数据库实例。我使用 eb 控制台创建了生产环境并创建了一个新的数据库实例,我认为这显然是一个错误的举动。

如何让我的两个环境共享同一个数据库实例?如果发生这种情况,当我在我的应用程序中更新数据库迁移并部署到登台时怎么样?这意味着我的用户会看到它,因为登台环境使用相同的数据库。

我该如何处理这个问题?

我还注意到git aws.push 不会覆盖我的数据库,但不会删除回滚迁移。我错过了什么吗?

【问题讨论】:

    标签: ruby-on-rails amazon-web-services amazon-elastic-beanstalk


    【解决方案1】:

    我会向您推荐以下选项:在弹性 beanstalk 环境之外创建 rds 实例。为生产和暂存创建单独的模式。将连接字符串传递给您的 EBS 应用程序。 EBS 环境之间的共享 rds 实例将对您有所帮助:

    1. 降低环境成本,因为运行多个 rds 实例的成本很高。

    2. 帮助您隔离生产和暂存环境。

    【讨论】:

    • 如果我想同意你的观点,我如何将我的数据库从本地主机独立推送到新的 RDS 实例?请记住它的 rails 和 git aws.push 进行部署,但不再使用您的解决方案。那怎么办?
    • 您可以使用配置文件将 .ebextentions 添加到您的应用程序文件夹中,该配置文件将包含配置设置,例如到数据库的连接字符串和运行迁移的脚本。我建议阅读文章:docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
    • 我将尝试再解释一下我的想法,步骤如下: 1. 您可以手动创建用于生产和登台的 rds 实例和模式。 2. 您可以将弹性beantalk 配置文件添加到您的应用程序中,您可以在其中定义与暂存或生产相关的当前数据库的连接字符串,也可以在此处定义运行迁移的命令。 3. 做 git aws.push :)
    猜你喜欢
    • 2017-12-16
    • 2013-01-22
    • 2012-09-24
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 2015-09-15
    相关资源
    最近更新 更多