Misskeyのデータベースの自動バックアップを行うためのメモ

自分が運営しているMisskeyのデータベースのバックアップについて前々から考えていたが、ずっと後回しになっていたので今回実行することにした。 環境 Ubuntu Server 22.04.4 LTS Misskey 2024.3.1 PostgreSQL 15.6 Cloudflare R2 PostgreSQLやUbuntuのバージョン違い等により、実行できない可能性があります。 この記事ではバックアップ先としてCloudflare R2を使用します。 Cloudflare R2は従量課金制となるので料金についてはCloudflareのドキュメントをご確認ください。 Cloudflare R2 バックアップデータを保存するバケットの作成 Cloudflare R2でバケットを作成します。 ここではバケット名にbackupを設定します。 バケットを作成後、バケットの設定からオブジェクトのライフサイクル ルールを設定します。 ここではバックアップを保存する期間を設定しますが、日数を長くしすぎてしまうと、ストレージを大幅に消費してしまうので7日間に設定しておきます。 オブジェクトのライフサイクル ルール→ルールの追加を選び ルール名に自身が分かりやすい名前を設定し、ライフサイクル アクションを7日に設定、ルールを追加ボタンを押します。 ライフサイクル ルールの設定を終えたら次にAPIトークンを取得します。 バケット選択画面に戻り、右側メニューの「R2 API トークンの管理」をクリックします。 APIトークンを作成するボタンを押し、トークン名にバックアップを入力し、権限は下から二番目の「オブジェクト読み取りと書き込み」を選択します。 バケットの指定に先ほど作成した「backup」を選択し下にあるAPIトークンを作成するをクリックします。 次の画面でアクセスキーとシークレット アクセス キー、エンドポイントが表示されるので必ずメモをしておきます。 aws-cliのプロファイルを作成する 今回はCUI環境のUbuntu Serverを利用しているため、aws-cliを利用します。 aws-cliをインストールする sudo apt install awscli Ubuntuの「postfres」ユーザーにログインをし、aws configureを実行する。(ここではプロファイル名をbackupとします) sudo su - postgres aws configure --profile backup 実行すると対話形式で先ほど作成したキーを聞かれますので入力します。 AWS Access Key ID [None]: R2 アクセスキー AWS Secret Access Key [None]: R2 シークレット アクセス キー Default region name [None]: auto Default output format [None]: json これにてaws-cliのプロファイルの作成の終了です。...

March 5, 2024