s3でホストされている画像を含む標準のpostgresデータベースを使用してHerokuで実行されるRailsアプリがあります。
責任を持ってバックアップを行うにはどうすればよいですか?
これまでのところ、アプリケーションコード、s3ファイル、データベーススナップショットを毎月ダウンロードして、外付けドライブに保存しています。s3からのファイルのダウンロードは非常に遅く、時間が経つにつれてさらに悪化すると思います。
s3でホストされている画像を含む標準のpostgresデータベースを使用してHerokuで実行されるRailsアプリがあります。
責任を持ってバックアップを行うにはどうすればよいですか?
これまでのところ、アプリケーションコード、s3ファイル、データベーススナップショットを毎月ダウンロードして、外付けドライブに保存しています。s3からのファイルのダウンロードは非常に遅く、時間が経つにつれてさらに悪化すると思います。
PGBackupsHerokuアドオンを使用しています。
https://devcenter.heroku.com/articles/pgbackups
postgresデータベースをバックアップし、バックアップを毎日(または必要に応じてより頻繁に)保存するように構成できます。一般的に、データベースの基本的なバックアップにはお勧めします。
github(または他のgitリポジトリ)のリポジトリにコピーを保存するだけのコード。Githubは素晴らしく、他に何もする理由は考えられません。
S3自体はかなり安全で信頼性があります。これが彼らの製品情報からの抜粋です:
Amazon S3は、ミッションクリティカルなプライマリデータストレージ用に設計された耐久性の高いストレージインフラストラクチャを提供します。オブジェクトは、AmazonS3リージョンの複数の施設にまたがる複数のデバイスに冗長的に保存されます。耐久性を確保するために、Amazon S3のPUTおよびCOPY操作は、SUCCESSを返す前に、複数のファシリティ間でデータを同期的に保存します。
S3からのすべてのファイルの安全なコピーを用意することが重要な場合は、定期的にスケジュールされたバッチジョブを設定して、サーバーにコピーし、個別にバックアップできるようにします。私は過去にこれを行うためにS3ツールを使用しました:
プッシュに使用されたgitリポジトリへのアクセスがすぐに利用できないサイトをアーカイブする必要がありました。私はherukucliを使用して次のことを行いました。
完了すると、コードのディレクトリと「latest.dump」というタイトルのデータベースダンプが作成されます。この名前を変更して、app-nameを含めることをお勧めします。
これらはすべて、スクリプトを作成するのはかなり簡単です。
自動バックアップの場合は、 heroku-db-backup-s3ビルドパックを構成するだけで済みます。そして、ドキュメントに示されているようにスケジュールを変更します。