1

Engine Yard にはいくつかの環境があります。それぞれが同じアプリケーションを実行しますが、運用、ステージングなどの異なる段階で実行されます。合計で約 10 の環境です。ここで、本番データベースを毎晩ダンプし、残りの環境で復元して最新のデータを取得したいと考えています。

問題は、ある環境のインスタンスが他の環境のインスタンスにアクセスできないことです。私たちに適した接続方法は 2 つあります。

  • SSH。
  • --hostへのパラメータとして RDS ホストを指定しますmysqldump。RDS ホストはenvironment.random_string.region.rds.amazonaws.com、通常の EC2 ホスト名とは対照的な形式です。

どちらもそのままでは機能しません。簡単な解決策は、アクセスが必要なすべてのサーバーで RSA キーを生成し、authorized_hostsアクセスを許可する必要があるすべてのサーバーにそれらを追加することです。ただし、このソリューションはスケーラブルではありません。環境を追加または再作成すると、プロセスを繰り返す必要があります。

より良い解決策はありますか?

4

3 に答える 3

0

FTPまたはSFTPサービスのみで別のHUBサーバーをセットアップすることはできますか?

  • すべての環境からその HUB サーバーへのインバウンド ポート 21/22 を開き、すべてのクライアントがデータベース ダンプをダウンロードできるようにします。
  • Hub サーバーから RDS/データベースへのインバウンド ポート 3306 または他のデータベース ポートを開きます。
  • Hub サーバーで cron ジョブを実行して db ダンプを取得し、ダンプを他の環境にプッシュします。
于 2015-01-09T19:48:05.787 に答える