firestoreのバックアップを自動化する
2022年04月25日 7:34
こんにちは、ISSUEの寒河江です。
今回はfirestoreの自動バックアップを実装手順を説明します。CLIでの手動バックアップ記事は結構あるのですが、スケジューリングされた自動バックアップの記事があまりなかったので今回書いてみました。皆さんの実装の参考になれば幸いです。
このページを読んでしまえば実装すること可能です!ただ、実装してみて実際どうなのか、どこら辺が大変だったかなども含めて私の方で説明できたらと思います。
google storageへの保存先: gs://:projectID.appspot.com/firestore_backup/2022-04-25/auto or manual
にfirestoreのバックアップデータが保存される(手動実行ならmanual, スケジュールによる自動実行ならautoのパスになります)
発火時間: 毎朝4時
プロジェクトの課金設定は終わっている前提で進めます。
このセクションを実装すると下記コマンドで手動バックアップが取れるようになります
バックアップ関数
バックアップ関数を実行するcallableを定義する
関数のデプロイ
保存が完了するとstorageでは下記のようにアクセスできます。
先ほどの実装をスケジューリングで自動化します。
関数のデプロイ
Cloud Functionに、エクスポートオペレーションを開始する権限と GCSバケットに書き込む権限を付与しましょう。この作業をしていないとパーミッションエラーになります。
Cloud Datastore インポート / エクスポート管理者の付与
ストレージ管理者の付与
Cloud Schedulerでデプロイしたスケジューラーを実行してみましょう!成功すると下記のようにバックアップデータが保存されています。
リストアはストレージのバックアップデータをfirestoreにインポートする操作になります。こちらも公式のドキュメントがあります。
gcloud config list
で開発用のプロジェクトに接続されているか確認しましょう!
実行コマンド
先ほどのバックアップデータを適用します。
コレクション単位でリストアすることも可能なので詳しくは公式ドキュメントを参照ください。
ドキュメントのバックアップにも通常のfirestoreの料金が発生します。毎日スケジューリングしている場合はそれなりの費用が発生する可能性があります。念の為手動実行などで料金を確認しておいた方がいいと思います。
以前は費用は発生しなかった気がするけど気のせいですかね...
以上、firestoreのデータバックアップでした!
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。
目次を見る