エンジニア、オールインも辞さない

スタートアップやってます。Web系、アプリ系の話題多し。好きなことはポーカー、ウイスキー、アウトドア。

Parse.com移行を終えてわかったこと

以前Parse.com移行に関してこのような記事を書きました。それからしばらく時間が経ちましたのでそれ以降にわかったことを書きます。

potcommitted.hatenablog.com

1.サーバ実行環境について

上記記事ではmLabとさくらVPSの構成を書きましたが、結果的にmLab、Herokuの構成になりました。Parse ServerをさくらVPSに設置したときよりもHerokuに設置したときの方が圧倒的に実行速度が早いです。体感的にはParse.comとほぼ変わりませんでした。Herokuのスペックをあげればさらなる高速化が期待できそうです。

 

2.Parse.comのDBマイグレーションツールを使ってもファイルは移行されない件について

これは大変な地雷なので、多くの方に影響するのではないでしょうか。データベース自体を外に移行しても、ファイル自体はParse.comにありますのでそのままではParse.com閉鎖とともにファイルは消えてしまいます。データベースの移行というもっともらしい文言なので、ファイルも一緒に移行されると思いがちですがそんなことはありません。ファイル自体はParseの管理するAWS S3に保存されており、データベースではその参照情報を保持しているだけです。ですので、ファイルの実態を別の場所に移行し、かつデータベースの参照を変更しないとParse.com閉鎖後はアクセスできなくなります。ファイルの移行に対応しているmBaasであればまるっと移行できるようですが、mLabのようにDBだけ移行した人は自力で対応する必要があるので注意が必要です。

 

なお、下記ツールを使えばファイルの移行が可能です。

github.com

ただしファイルを配列で保持している場合はこのツールで移行できないという致命的な欠点があるので、自分で移行スクリプトを書くなりそれなりに頑張る必要があります。また、Parse.comに接続しているクライアントからは、新環境のファイルへのアクセス権限がない(Parse.comはAWS S3などファイルサーバへのアクセスキーを知らない)ので、ファイルを参照できない点にも注意が必要です。ですので、完全にサーバを新環境に移行したあとにファイルの移行を行った方がよいでしょう。

 

3.クライアントプッシュが動かない件について

セキュリティの事情により、クライアント間のプッシュが廃止されました。これは地味に面倒なことでして、それに変わる仕組みを用意する必要がでてきました。一般的にはCloud Codeを使えば解決すると思いますが、Herokuにようにプッシュ自体がうまくいかない環境もあるので(2017.01.26現在)、私の場合別にプッシュサーバを立てることにしました。

 

仕組みとしてはプッシュの送り元と送り先、そして送信ステータスを管理するクラスを用意し、それをバッチで検索、サーバ側でプッシュを行うというものです。メルカリ社のオープンソースでgaurunという優れたプロダクトがありまして、それを使うと簡単にプッシュ配信ができるようになるのでおすすめです。Goで書かれていて高速に動作します。

github.com

 

4.サーバからのメール送信ができない件について

Parse Serverを外だしした場合(外部のmBaasを使っている場合は除く)、パスワードリマインダなどサーバからのメールの送信ができなくなります。その場合、Mailgunを使用することで対応可能です。

www.mailgun.com

 

具体的な方法はこちらに記載されているので割愛しますが、Parse Serverの設定にMailgunの設定を加えて起動すれば動きます。

stackoverflow.com

総括

自前での運用は大変!