web-dev-qa-db-ja.com

オフサイトのAWSRDS PostgreSQLバックアップを行う方法は?

悪意のあるエンティティがAWSアカウントへのフルアクセスを取得したり、 すべてを削除したり などの災害を軽減するための対策として、本番データベースのオフサイトバックアップを設定中です。 AWSRDSでPostgreSQLを使用しています。 RDSでは毎日のバックアップが有効になっています。

私は次の2つのオプションを思いついた:

1)(毎日)RDSによって生成されたデータベーススナップショットのダウンロード(これがスクリプト可能か、それとも可能かどうかはわかりませんが)

2)(毎日)リードレプリカを起動し、そのレプリカでpg_dumpを使用してデータベースをバックアップします

これを達成するための最良の方法は何でしょうか?

それが助けになるなら、私たちはすでにs3バケットの毎日のバックアップを行うツールを持っています。

4
Olivier Lalonde

1つのオプションは、RDSスナップショットを別のAWSアカウントにコピーすることです。これは一般的に使用される方法です。

これは次の方法で実行できます。

  1. RDSスナップショットを2番目のAWSアカウントと共有します。
  2. RDSスナップショットをソースアカウントからターゲットアカウントにコピー(「プル」)します。
  3. ソーススナップショットの共有を削除します。

https://aws.Amazon.com/blogs/aws/Amazon-rds-update-cross-account-snapshot-sharing/

4
Matt Houser

AWS RDS、コード、ログなどのオフサイトバックアップも必要でした。これは次の方法で行います。

  • 特定のディレクトリにデータベースを定期的に(私にとっては毎晩深夜に)エクスポートする
  • Attic Backup そのディレクトリをバックアップします。これにより、差分バックアップ、圧縮バックアップ、重複排除バックアップが実行されます。毎週、毎月、毎年のスナップショットを保持します。これは、ロールバックする必要がある場合に備えて構成できます。また、同じ方法でWebルートとログをバックアップします。
  • 次に、AtticバックアップをDropboxに同期するスクリプトを使用します。 BitTorrent Sync、FTP、またはその他の好きなものを使用することもできます。

私はこれをいつでも文書化するつもりですが、解決するのは本当にとても簡単です。

2017アップデート

Atticは活発な開発やサポートが行われていないため、使用をやめました。 Atticのフォークである重複排除バックアップには Borg Backup を使用します。

ボーグのバックアップは私のファイルシステムに保存されています。 S3sync を使用して、これらのファイルをAWSS3に同期します。今設定している場合は、 S3FS を使用してバックアップをS3に直接書き込むことを検討しますが、S3FSは完全なファイルシステムではないため、この場合はうまく機能しない可能性があります。

3
Tim