我們在Engine Yard中有幾個環境。他們每個人都運行相同的應用程序,但在不同的階段:生產,分期等。總共約10個環境。現在,我們希望每天晚上轉儲生產數據庫,並在其他環境中恢復以獲取最新數據。從發動機場的另一個環境訪問一個環境
問題是,來自一個環境的實例無法訪問其他環境中的實例。有兩種連接方式適合我們:
- SSH。
- 指定RDS主機爲
--host
參數爲mysqldump
。 RDS主機的格式爲environment.random_string.region.rds.amazonaws.com
,而不是常規的EC2主機名。
它們兩個都沒有開箱。直接的解決方案是在需要訪問的所有服務器上生成RSA密鑰,並將它們添加到authorized_hosts
以允許所有應允許訪問的服務器。但是,這種解決方案不具有可擴展性:一旦添加或重新創建環境,我們需要重複處理。
有沒有更好的解決方案?
[eyrestore](https://support.cloud.engineyard.com/hc/en-us/articles/205408058-Restore-or-Load-a-Database#topic3)是最近發佈的一個工具,旨在幫助解決以安全的方式在Engine Yard內部使用這個用例。它可用於最新版本的Stable-v4和Stable-v5堆棧。 – tpol