herokuでのデプロイが便利すぎる件について

はじめに

railsでかいたwebアプリを公開したいなと思い、herokuを使用しました。
https://www.twi-reviews.jp/
こちらが公開したwebアプリです!今人気のゲームを、最新AI技術を用いた独自のシステムで評価しているサイトです。分析は、該当商品に関するツイートを集計し、評価・星付けをしています。ゲームが好きな人はよかったらのぞいて行ってください。

herokuとは

サーバやOS、データベースなどの「プラットフォーム」と呼ばれる部分を、インターネット越しに使えるようにしてくれるサービスの一つです。
今まで別々に扱っていたものを一緒に扱え、さらにgui操作(コマンドで打つんじゃなくて、目に見える形で操作すること)で様々なことができるので扱いやすいです。
さらに、基本的なことは全て無料でできます。優しい世界ですよね。

hetokuの便利な機能

そんなherokuの、特に便利だなって感じた機能をまとめていきます。

heroku Scheduler

今まで、自動的にコードを走らせたい場合は、シェルスクリプトを書かなければいけませんでした。
シェルスクリプトについてはこちらを参考にしてください。
【1分でわかる】シェルスクリプトとは?
それがguiで操作できるのがこのheroku Scheduler、予想以上にわかりやすいです。

add-onsインストール方法

herokuのアプリ管理画面の、Resourcesの下のFind more add-onsからheroku Schedulerをインストールしてください。Add-onsに追加されたら成功です。

Schedulerを登録

heroku Schedulerから、Add new jobを押してください。そこで繰り返し処理させたいコマンドを打ち込みましょう。
当webサイトでは表示している商品情報をamazonのs3に置いていて、そこのファイルを編集すれば自動的にサイト内容が変わるようにしています。f:id:saegusa41010:20190217181751p:plain こうすれば毎日走ってくれます。ここで注意しなければいけないのは、ここに表記されているのは協定世界時なので、日本の標準時間に直さなければなりません。このwebサイトを利用して変換しましょう
UTC/協定世界時とJST/日本標準時の変換と時差の計算

ステージング環境が容易に作れる

webアプリにおいて、localだけでは確認できないことがたくさんあります。どう作動するのかよくわからないものを本番環境にあげることは許されないので、本番環境と全く同じ環境のステージング環境を用意する必要があります。それが容易に作れちゃうのがすごい。
Heroku Pipelineを使ってみる - Qiita この記事がとても親切に方法について書いてありました!参考にしてください。

herokuのここが惜しい

そんな便利なherokuですが、ここはもう少し頑張って欲しかったって感じた点を載せていきます。

独自ドメインは無料じゃない

独自のドメインを載せるには、無料のfreeプランではできませんでした。月7ドルの課金をして、Hobbyプランにする必要があります。
qiita.com とてもわかりやすくまとめてありました。

fileのコードによるアップロードができない

ファイルシステムに画像をアップロードする処理を実装してHerokuにアップロードしたところ、Herokuは1日1度のDynoの再起動に伴いアップロードしたファイルを全消去するという仕様があることが判明しました。なのでそのような機能を使いたい場合はamazon s3などの外部ストレージサービスを用いる必要があります。
その方法については後ほど記事ににしたいと思います。

最後に

随時更新していきたいと思います。最後までお読みいただきありがとうございました!
ご意見ご感想募集しています。気軽にコメントしてね

参考