たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 2786
v10だからあんまり参考にならないかもしれない
AWS LightsailCloudflareでSSL化した
CloudflareのSSL/TLS 暗号化モードはフルhttpsでアクセスできるS3VPSのストレージに書き込んでいる場合はそれも引き継ぐ必要があります。Let's Encrypt + Certbotでも移行後に証明書再発行で良いはず...?(IPアドレスではなくドメインに対して払い出される?)
Ubuntu 22.04を用意しました。TeraTermが使えない...取りあえずPowerShellに入ってる?sshを使うことにします。
鍵ファイルのパスとIPアドレスを直して叩けば使えるはず。
ssh -i '鍵ファイルのパス.pem' ubuntu@000.000.000.000メモリを増やして、sudo apt updateとsudo apt upgradeして、Misskeyのソースいれてビルドして、nginxして、、
ってん感じで、DNSの設定の前までやっておいてください。
mongodbを入れてる途中で...
sudo apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get install -y mongodb-orgこんな感じに、失敗してしまいます...
The following packages have unmet dependencies:
mongodb-org-mongos : Depends: libssl1.1 (>= 1.1.0) but it is not installable
mongodb-org-server : Depends: libssl1.1 (>= 1.1.0) but it is not installable
mongodb-org-shell : Depends: libssl1.1 (>= 1.1.0) but it is not installable
E: Unable to correct problems, you have held broken packages.libssl1.1が必要なのですが、どうやらUbuntu 22.04からは同梱されなくなったみたいです。MongoDBの最新版にすると治るそうですが、、、Misskeyのバックエンドいじるのこわい(というかDBが何もわからない)ので、一旦libsslを入れる方面でいきます。
sudo wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.debamd版(Intel、AMD系CPU)なので、armとかの場合は読み替えてください
これでMongoDB入れられるはず
sudo apt-get install -y mongodb-orgMisskeyのコンフィグ、nginxのコンフィグを元のサーバーからコピーしてきます。
コピーはVimのペーストモードが便利です(そのまま貼り付けると#でコメントアウトされたり、インデントされてしまう)
Misskeyを止めます
sudo systemctl stop misskey次にルートユーザーでログインしたあと、ホームディレクトリ(~)にバックアップします
cd ~
mongodump -o "./dump"つぎに、手元のWindowsマシンを使い、バックアップデータを一旦Windowsマシンへコピーします。
もしかしたら直接転送できるかも...(お互いのサーバーの鍵ファイルないので一旦経由することにした)
PowerShellを開いて、SCPコマンドを使います
scp -i '鍵ファイルのパス.pem' -r ubuntu@000.000.000.000:Linuxの保存先 Windowsの保存先以下例
scp -i 'C:\Users\takusan23\.ssh\key.pem' -r ubuntu@000.000.000.000:~/dump C:\Users\takusan23\misskey_backup\フォルダごと移行先のサーバーへアップロードします
またPowerShellを開いて、以下のコマンドを叩きます
scp -i '鍵ファイルのパス' -r Windowsの保存先 ubuntu@000.000.000.000:Linuxの保存先以下例
scp -i 'C:\Users\takusan23\.ssh\key.pem' -r C:\Users\takusan23\misskey_backup\ ubuntu@18.176.65.230:~/dumpそしたら、リストア用コマンドを叩きます。
移行後サーバーにSSHで入って、以下のコマンドを叩きます。(間違えてパス深くなっちゃった...)
Misskeyが動いていない場合は一行目はいらないはず。
sudo systemctl stop misskey
mongorestore --drop ~/dump/dump/-dropで既にあるデータを消した後、リストアをしてくれます。構築手順のsystemctlのところでmisskeyを起動してしまったので、おそらくデータベースが作られてしまっていると思います。
データが復元できたか見てみます。まず以下のコマンドを叩いて
mongo
show dbs;データベース一覧が表示されますが、ここで容量が0GBでなければ成功なはず。
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
misskey 0.011GBexitを叩くと抜けれます。
移行後サーバーで叩きます
sudo systemctl start misskey
sudo systemctl start nginx移行先のサーバーへDNSのレコードを向けます。
どうでしょう、アクセスできましたか???
一応新サーバーで見れているかの確認をするのに、移行後サーバーのnginxのアクセスログを見るという手があります。
まあする必要もないでしょうが。
cat /var/log/nginx/access.log携帯回線からも見れました
金ないのでさっさと止めます。
以上です!!!!!!!!!
今回はギリギリまで(DB引っ越し)まで移行前のサーバーを動かす方法で行きました。
が、多分データベース、画像とかのメディア(S3とかのオブジェクトストレージを使ってないなら)、コンフィグファイル(misskeyとnginx)を手元の Windows マシンとかにバックアップしておいて、VPSを消す方法でも良いはずです。(最後まで残す方法だと、移行作業中は二台VPSを動かすことになるので、お一人様にそこまでのお金をかけられるか...)
Linuxの場合は、npmコマンドの先頭に以下のコマンドを入れることで、メモリ割り当てを手動で調整できます。
単位はMBっぽい
NODE_OPTIONS="--max-old-space-size=2048"以下例:
NODE_OPTIONS="--max-old-space-size=2048" NODE_ENV=production npm build