遠隔でMongoDBサーバのバックアップを取る1

 クッソなバックアップシステムを組んでしまった。まあとりあえず動く。だからメモとして残すが、バックアップシステムは組みなおす。



 MongoDBのホスティングサービスを使いたいのだが、経済的な理由から安いVPSをMongoDBサーバにしている。
ConoHaにMongoDBサーバを立てた

 ↑の自動バックアップを組みたい。バックアップは外部に置く。外部にバックアップを置くことを考えると、もっとも簡単な方法は、バックアップを置く端末からバックアップコマンドを実行することだろう。
mongodump --host foo -u bar -p pw


 うちの常時稼動RaspberryPiで上記を実行したい。しかしそのコマンドが入ったMongoDB ToolsはARMでは64bit用しか用意されていない。標準のRaspbianは今のところ32bitOSなので今のところ無理。経済的に超ローコストで問題を解決したい。
 RaspberryPiにMongoDB Toolsは入れられん。だけどAzureのCLIは入れられる…
・RaspberryPiでAzureのVMの電源を入れたり切ったり
→AzureのVMにMongoDB Toolsを入れてそっちでバックアップ
 上記のようにすれば、VMの電源は一時的にしか入らないので大したコストはかからん。

 まずRaspberryPiにAzureCLIを入れて、VMの電源をコントロールできるようにする。AzureCLIをインストールしたら、下記のような.shを用意してCRONで走らせるようにする。
az login -u foo -p bar

az account set -s xxx-xxx-xxx
az vm start -g xxx -n yyy
#az vm deallocate -g xxx -n yyy


 次にVMでmongodumpコマンドをCRONに入れる。これでMongoDBサーバのバックアップが自動でとれるようになった。しかもVMは一時的にしか電源が入らないからコストにはならん…アホらし。
 MongoDBサーバのバックアップを取るのに、コストを抑えるためだからってわざわざこんな構成組むのはアホらし。
・問題解決はシンプルに
・金を払ってシンプルに解決できるならそれで
・金がなくても極力シンプルに


 課題はシンプルに解決する。一通り組み終わって、べつの解決法を思いついたのでバックアップシステムの組み直し。
comment: 0