Engine Yard 中有几个环境。它们中的每一个都运行相同的应用程序,但处于不同的阶段:生产、登台等。总共大约 10 个环境。现在,我们想每晚转储生产数据库,并在其余环境中恢复它以获得最新数据。
问题是,一个环境中的实例无法访问其他环境中的实例。有两种适合我们的连接方式:
- SSH。
- 将 RDS 主机指定为 的
--host
参数mysqldump
。RDS 主机的格式environment.random_string.region.rds.amazonaws.com
不同于常规的 EC2 主机名。
它们都不是开箱即用的。直接的解决方案是在所有想要访问的服务器上生成 RSA 密钥,并将它们添加authorized_hosts
到所有应该允许访问的服务器上。然而,这个解决方案是不可扩展的:一旦我们添加或重新创建了一个环境,我们就需要重复这个过程。
有没有更好的解决方案?