MongoDB の定期バックアップ
前提条件
- バックアップ/リストアは、weseek/mongodb-awesome-backup (opens new window) を利用します
必要なもの
- docker
- バックアップファイルをアップロードするための AWS S3 バケット
- S3 バケットへのアクセス権を持った IAM ユーザーのアクセスキーおよびシークレットキー
TIP
事前に MongoDB のバックアップ/リストア ページを確認することをお勧めします
バックアップ用コンテナによる管理
CRONMODE を true に設定したコンテナを起動します
docker run --rm \ -e MONGODB_HOST=<Target MongoDB Host> \ -e AWS_ACCESS_KEY_ID=<Your IAM Access Key ID> \ -e AWS_SECRET_ACCESS_KEY=<Your IAM Secret Access Key> \ -e S3_TARGET_BUCKET_URL=<Target S3 Bucket URL (s3://...)> \ -e CRONMODE=true \ -e "CRON_EXPRESSION=0 4 * * *" \ weseek/mongodb-awesome-backup
対象となる MongoDB サーバーの全てのデータベースを、毎日 AM 4:00 にバックアップするコンテナが起動します
バックアップの世代管理
- (執筆者・PR募集)
TIP
その他のオプションは weseek/mongodb-awesome-backup (opens new window) を参照してください
docker-compose による管理
TIP
GROWI を growi-docker-compose で管理している場合、更に簡単にバックアップ用コンテナを起動できます
- weseek/growi-docker-compose (opens new window) の Example (opens new window) を参考に、以下の手順を行います
clone
git clone https://github.com/weseek/growi-docker-compose.git growi cd growi
docker-compose.override.yml
をルートディレクトリにコピーcp -p examples/backup-mongodb-data/docker-compose.override.yml .
docker-compose.override.yml
を編集し、CRON_EXPRESSION
,AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
,S3_TARGET_BUCKET_URL
へ環境に合わせた値を入力します(略) ... environment: - CRONMODE=true - CRON_EXPRESSION=0 4 * * * - AWS_ACCESS_KEY_ID=${Your IAM Access Key ID} - AWS_SECRET_ACCESS_KEY=${Your IAM Secret Access Key} - S3_TARGET_BUCKET_URL=s3://${Your Bucket Name}/ ... (略)
docker-compose up
Google Cloud Platform による管理
- (執筆者・PR募集)