バックアップとリストア
本番でアプリが稼働しています。バックアップしましょう。rdc はリポジトリ全体(アプリ、データベース、ファイル、設定)を外部ストレージにプッシュし、いつでも引き戻すことができます。ランサムウェア、ハードウェア障害、あらゆる事態に対応できます。
チュートリアル動画
3つのステップ
- 設定: ストレージプロバイダーを設定します。
- プッシュ: バックアップを取ります。
- リストア: 必要なときに復元します。
ステップ1: ストレージを設定する
rclone の設定ファイルが必要です。すでに rclone を使っている場合は直接インポートできます。
rdc config storage import --file rclone.conf 既存のrclone設定をインポートします。rcloneはS3、Backblaze、Google Drive、Dropboxなど多くのサービスに対応しています。すでにrcloneを使用している場合、同じ設定をそのまま直接インポートできます。
S3、B2、Google Drive、Dropbox など多くのサービスに対応しています。設定されているストレージを確認します。
rdc config storage list CLIが認識しているストレージを一覧表示します。それぞれがバックアップの保存先になります。
ステップ2: バックアップをプッシュする
rdc repo push --name my-app -m <machine-name> --to my-storage フルバックアップをプッシュします。アプリ、データベース、ファイル、設定を含むリポジトリ全体がアップロードされます。リポジトリは保存時に暗号化されているため、バックアップも同様に暗号化されており、追加の鍵管理は不要です。
リポジトリ全体(アプリ、データベース、ファイル、すべて)がバックアップされました。リポジトリ自体が暗号化されているため、バックアップも暗号化されます。追加の鍵管理は不要です。
バックアップはいつでも確認できます。
rdc repo backup list --from my-storage -m <machine-name> このストレージで利用可能なバックアップを一覧表示します。新しいサーバーへのリストアはコマンド1つ、repo pullコマンドで完了します。
なぜダウンタイムがないのか
バックアップのアップロード中もアプリは動き続けます。一貫性はどのように保たれるのでしょうか。
フォーク と同じ仕組みです。rdc はまずフォークを作成し、そのフォークをアップロードします。フォークがその瞬間をキャプチャし、本番アプリは動き続けます。ダウンタイムなし、不整合なしです。
ステップ3: 実際にリストアする
復元したことのないバックアップは、希望であってバックアップではありません。まずリポジトリをオフラインにします。
rdc repo down --name my-app --machine <machine-name> --unmount まずrepositoryをオフラインにします。repo downコマンドでサービスを停止し、暗号化ボリュームをアンマウントしてください。
ストレージから直接バックアップを取り込みます。
rdc repo pull --name my-app --machine <machine-name> --from my-storage --force --yes repo pullコマンドでstorageからバックアップを取得します。imageが取得され、整合性チェックが実行されます。
そして再マウントします。完全に復元されました。
rdc repo mount --name my-app --machine <machine-name> repositoryを再マウントします。完全に復元されています。同じpullは新しいマシンでも機能します。
新しいサーバーへの復元も同じプルコマンドで行えます。セットアップして rdc に追加し、そちらでプルを実行するだけです。
rdc repo pull --name my-app -m new-server --from my-storage
rdc repo up --name my-app -m new-server
同じデータ、同じコンテナ、別のマシンです。
高速バックアップ: マシン間の直接転送
クラウドストレージを経由せずに、マシン間で直接プッシュすることもできます。
rdc repo push --name my-app -m my-server --to-machine backup-server
プロのヒント。 マシン間のプッシュは2回目以降、変更されたブロックのみを送信します。デルタ転送チュートリアル でその仕組みをライブで確認できます。