我们在Engine Yard有几个环境。他们每个人都运行相同的应用程序,但在不同的阶段:生产,登台等。总共约10个环境。现在,我们希望每晚转储生产数据库,并在其余环境中恢复以获取最新数据。
问题是,来自一个环境的实例无法访问其他环境中的实例。有两种适合我们的连接方式:
--host
的{{1}}参数。 RDS主机的格式为mysqldump
,而不是常规的EC2主机名。它们都没有开箱即用。直接的解决方案是在所有想要访问的服务器上生成RSA密钥,并将它们添加到environment.random_string.region.rds.amazonaws.com
到应允许访问的所有服务器。但是,此解决方案无法扩展:一旦我们添加或重新创建环境,我们就需要重复处理。
有没有更好的解决方案?
答案 0 :(得分:1)
有一种方法可以在其他实例上设置特殊备份配置文件,以便您可以从同一帐户中的其他环境直接访问Production S3存储桶。这涉及到一些风险,因为它在技术上也允许您的非生产环境编辑生产桶的内容。
根据配置的具体情况,可能还有其他一些选项。您最好的选择是与Engine Yard支持团队一起开票,以便我们进一步讨论您的需求。
答案 1 :(得分:0)
是否可以仅使用FTP或SFTP服务设置单独的HUB服务器?
答案 2 :(得分:0)
将您的作品备份到为此目的创建的S3存储桶。 使用IAM角色控制其他环境如何连接到同一个存储桶。
由于您的生产环境的服务器应该是已知的,您可以使用脚本将一个服务器mysqldump到共享S3存储桶。 完成后,您的其他服务器可以使用正确授权的IAM角色从该S3存储桶中收集数据。