在Engine Yard中访问另一个环境

时间:2015-01-09 13:48:54

标签: amazon-web-services ssh backup engineyard

我们在Engine Yard有几个环境。他们每个人都运行相同的应用程序,但在不同的阶段:生产,登台等。总共约10个环境。现在,我们希望每晚转储生产数据库,并在其余环境中恢复以获取最新数据。

问题是,来自一个环境的实例无法访问其他环境中的实例。有两种适合我们的连接方式:

  • SSH。
  • 将RDS主机指定为--host的{​​{1}}参数。 RDS主机的格式为mysqldump,而不是常规的EC2主机名。

它们都没有开箱即用。直接的解决方案是在所有想要访问的服务器上生成RSA密钥,并将它们添加到environment.random_string.region.rds.amazonaws.com到应允许访问的所有服务器。但是,此解决方案无法扩展:一旦我们添加或重新创建环境,我们就需要重复处理。

有没有更好的解决方案?

3 个答案:

答案 0 :(得分:1)

有一种方法可以在其他实例上设置特殊备份配置文件,以便您可以从同一帐户中的其他环境直接访问Production S3存储桶。这涉及到一些风险,因为它在技术上也允许您的非生产环境编辑生产桶的内容。

根据配置的具体情况,可能还有其他一些选项。您最好的选择是与Engine Yard支持团队一起开票,以便我们进一步讨论您的需求。

答案 1 :(得分:0)

是否可以仅使用FTP或SFTP服务设置单独的HUB服务器?

  • 从所有环境打开入站端口21/22到该HUB服务器,因此所有客户端都可以下载数据库转储。
  • 打开从Hub服务器到RDS /数据库的入站端口3306或其他数据库端口。
  • 在Hub服务器上运行cron job以获取数据库转储,将转储推送到其他环境等等。

答案 2 :(得分:0)

将您的作品备份到为此目的创建的S3存储桶。 使用IAM角色控制其他环境如何连接到同一个存储桶。

由于您的生产环境的服务器应该是已知的,您可以使用脚本将一个服务器mysqldump到共享S3存储桶。 完成后,您的其他服务器可以使用正确授权的IAM角色从该S3存储桶中收集数据。