以前開発したWebアプリMappin-Qを本格的に始動させるためにサーバー探しをしていたんです。
その際、もともと契約しているXサーバーでなく、Herokuというクラウドサーバーを使うことを決めて、2019年5月1日にデプロイされました。
【参考記事】初めてWebアプリを開発した!作り方や必要だった知識を語る
なぜ契約していたXサーバーを使わずにHerokuを採用したのか、今回はそこを語ります。
なぜエックスサーバーを使わなかったのか?
一言で言うと、環境の構築が面倒だったからです。
xサーバーは標準でLinuxとPythonが入っているのですが、それ以外は自分でやらないといけません。
「まぁサーバーの勉強になるか」と思って気長にやるつもりだったんですが、途中で事件が起きました。
1.サーバーの環境構築に失敗してPATHが狂った
実はXサーバーにはPython3.4が標準で入っています。
しかし世の中のトレンドは3.7、おまけに3.4は2019年3月からサポートが終了するため、Xサーバーではpipインストールが出来なくなったのです。
それでは困るため最新版にアップデートしようとHomebrewでインストールしたら、うっかりHomeでやったため、領域全体を汚染するという初歩的ミスを犯しました。
修復するにもかなり時間がかかると悟り、完全に戦意喪失してしまいました。
実際に使って分かったHerokuのメリット
Heroku使えばインフラ設定が簡単だよ。
そんな噂を聞いてすぐに飛びつき、結局のところHerokuでデプロイしました。
実際にHerokuを使ってみて良いと思った部分を挙げていきます。
1.一定の基準まで無料で使える
Herokuは一定の基準まで無料で使える枠が設けられています。
趣味でアプリ公開したいけどお金かけたくないなぁ…。
そんな時はとりあえず無料枠で試してみてから、今後の方針を決めていくという流れで良いでしょう。
お試しで月1000円を払うというのは少しハードルが高いので、無料枠を使って公開して、つかみが良ければそのまま有料サービスを使うというのもアリですね。
2.URL発行も無料枠の範囲内
実はURLもアプリ公開の度にもらえます。
Xサーバーは.comのURLを取得するのに1500円/年の経費が必要であるのを考えるだいぶお得感があります。
.comの直前にherokuappの文字が入るとはいえ、好きな文字を入れることが出来るので便利なサービスだなと思いました。
3.慣れれば数分でデプロイ(配備)可能
最初こそアプリをデプロイするまでに休日の2日間を全て費やしましたが、必要なものと流れを理解できれば10分とかからず公開できます。
インフラがあらかじめ用意されているため、こちら側はプログラミング言語&ライブラリのバージョンが記されたテキスト、それからソースコードをHerokuにアップすれば必要なものはHerokuが準備します。
よって、こちら側はアプリ開発のみに専念できるという訳です。
4.クラウドサーバーの勉強になった
勉強になったと言っても、インフラを整備していないのに厳密な意味でサーバーの勉強になったかと効かれれば困りますが「Herokuの使い方が分かるよ」は確実に需要がある知識です。
また、今後AWSなどの難易度の高いクラウドサーバーに挑戦するための基礎になると考えると今回の経験は有意義でしょう。
逆にXサーバーの良い部分
とはいっても、やはりXサーバーにあってHerokuにない魅力も存在します。
やはり3年も契約しているだけあって、Xサーバーの良い部分というのも知っているつもりなので、その部分を挙げていきます。
1.Cronが使えるから簡単なプログラムを乱発可能
他のレンタルサーバーでは付いていない可能性がある機能の一つにCronがあります。
24時間ずっと動いているを実行するなら関係ありませんが、クローリングやスクレイピングなど定期的に実行したい場合はCronは重宝します。
数時間に一回づつ実行するタイプのプログラムを使いたいならばHerokuよりもXサーバーの方が使いやすいでしょう。
2.毎月有料なだけにストレージや処理速度はHeroku無料枠より充実
さっきのCronの機能にも通じるのですが、毎月1000円課金しているだけに利用できるサービスが充実しています。
ストレージ然り、処理速度然り。Herokuも有料オプションは存在しますが、すでにXサーバーで課金している身としてはダブルでお金を使う気になれないので、無料という性質を活かしたHerokuの使い方をこれから模索していきたいところです。
まとめ
以上、ボクがアプリ公開のために元々契約しているXサーバーを使わずにHerokuを採用した理由でした。
今回は縁あってHerokuを使いましたが、環境構築に失敗しなければそのままXサーバーを使っていた可能性も高いので、どっちかに優劣があるわけではないので、両者の良い部分を汲み取って、2つを上手に使って行きたいと思いました。