※ Heroku 無料プランは 2022/11 月で終了することが発表されました。
本記事で解説している方法は 2022/12 月以降は
使用できなくなるので参考情報程度に留めておいてください。
代わりに、Django アプリケーションを Xserver にデプロイする方法を記事にしました。
Herokuって無料だと何ができるの・・・?
Herokuは無料プランでも様々なことができる。
アプリケーションをデプロイして、
運用するところまで無料でできるぞ。
✔️ 本記事のテーマ
Herokuで無料で使える機能とデプロイ方法
✔️ 読者さんへの前置きメッセージ
本記事は「Herokuを無料でフル活用する方法」について書いています。
この記事を読むことで「Herokuを使うことで、コストを抑えて、Webサービスを運用すること」をイメージできるようになります。
Herokuは、無料プランも用意されている個人開発向けのWebサーバーです。
DjnagoやRuby on Railsなどとの親和性も高く、スピード感のある開発を可能にします。
この記事では、そんなHerokuで無料で使える機能や使用手順を解説していきましょう。
Herokuの無料プランで出来ること
結論から言うと、Herokuは無料プランでもたいていのことはできます。
基本的に無料プランと有料プランとの大きな違いは、どれだけのアクセスをさばけるかと言う点です。
無料プランにも制約がありますが、この制約は少しの工夫で回避できます。
(後述の「Heorkuの無料プランの制約」で解説します)
たしかに大規模なシステム開発では無料プランではやや心もとないですが、個人開発なら無料プランで十分でしょう。
特にリリース初期は、心配しなくてもアクセスなんて大して多くないです。
万が一、バズってアクセスが多くなったら、そこで初めて有料プランに切り替えれば良いのです。
ちなみに、有料プランへの切り替えは随時行うことができます。
むしろHerokuの強みは無料でアプリケーションを運用できること
個人的にHerokuの一番の強みは「無料で、アプリケーションをWeb上に公開して、稼働させることができる」ところだと思っています。
AWSにしろ、Xサーバーにしろ、有名なWebサーバーは使うのにお金がかかります。
アプリケーションを運用するためのコストは低いに越したことはありません。
特にリリース初期は収益も発生しません。
個人開発で細々とやるなら、サーバー代は抑えたいところです。
Herokuなら、作ったアプリケーションを無料でWeb上に公開できるので、オススメです。
なお、Herokuを使って無料でサービスを作る方法については
「Django + Heroku のセットで無料でサービスを作る」の記事でも解説しています。
Herokuは無料だがやや開発者(エンジニア)寄り
Herokuはコマンドベースで操作します。
ブラウザから操作できるGUIな部分もありますが、
基本的にはHerokuへのデプロイはCUIで行います。
Gitと連携して、プッシュやアプリケーションのデプロイを行うので、Gitへの知見がない方には少しその難易度が高く感じるかもしれません。
ここら辺が、Herokuがメジャーになりきらない点だと思っているのですが、エンジニアならGitは避けられないツールなので、Gitについての知識はつけておきましょう。
Gitを最低限使えるなら、Herokuは非常に便利なWebサーバーです。
また、HerokuはPythonとの親和性が高いサービスなので、
その点もエンジニアにとってはメリットの一つと言えるでしょう。
なお、HerokuとPythonの親和性については
「HerokuとPythonは相性が良いという話」の記事でも解説しています。
Heorkuの無料プランの制約
Herokuの無料プランには大きく2つほどの制約があります。
ただし、結論から言うと、この制約は少しの工夫で回避することができます。
詳しく解説していきましょう。
無料プランでは550 時間/月しか使えない
Herokuの無料プランはデフォルトのままだと月に550 時間分の Dyno 時間しか与えられません。Dyno時間とはここでは解説を省略しますが、ざっくり言うとアプリ稼働時間だと捉えてOKです。
単純計算で、30 日 × 24 時間 = 720 時間 なので、
1ヶ月フル稼働させようとすると無料プランでは足りません。
ただ、これはクレジットカードを持っていれば解決できます。
無料プランでもクレジットカードをアカウントに登録すると、450 時間/月 の 無料 Dyno 時間が加算され、合計 1,000 時間/月 まで使えるようになります。
無料プランでもクレジットカードを登録さえしておけば、
アプリケーションをフル稼働させることができます。
30分アクセスが無いとアプリがスリープしてしまう
無料プランでは 30分アクセスが無いとアプリがスリープしてしまいます。
これにより、次回アクセス時にアプリが立ち上がる時間分、
レスポンスが遅く なってしまいます。
ただ、これは Heroku Scheduler で解決できます。
Heroku Scheduler とはHerokuの機能で、指定したコマンドの定期実行を可能にする機能です。Heroku Scheduler でアプリのURLに対してcurlコマンドを実行することでアプリを落とすことなく稼働し続けることが出来ます。
このように、無料プランによる制約は基本的に回避可能なので問題ないです。
Herokuの無料デプロイ手順(Django)
Herokuのデプロイ手順はコマンドベースで行います。
最初は少しややこしく感じるかもしれませんが、一度覚えれば、サクサクできるので簡単です。
順番に、作業手順を解説していきましょう。
これ以降の手順はPythonのDjangoアプリケーションのデプロイを前提に記載しています。
なお、Django の使い方については
「Djangoの使い方【Pythonフレームワーク】」
の記事で詳しく解説しています。
必要なライブラリのインストール
プロジェクトがHeroku上で稼働するために必要なライブラリをインストールします。
pip install gunicorn django-heroku
実行環境ファイルの追加
プロジェクトの実行環境をHerokuに伝えるファイルを
プロジェクトディレクトリ直下に作成します。
runtime.txt
Pythonバージョンを記載するファイルです。
以下のように記載すればOKです。
python-3.6.6
Procfile
Herokuプロセスの起動コマンドを記載するファイルです。
<your-project-name>は自身のプロジェクト名に読み替えて下さい。
以下のように記載すればOKです。
web: gunicorn <your-project-name>.wsgi --log-file -
requirements.txt
依存パッケージのリストを記載します。
pip freezeコマンドの出力結果をそのままファイルにしましょう。
pip freeze > requirements.txt
プロジェクトの設定ファイルの修正
以下のように、settings.pyのDEBUG = Tureの部分を本番運用向けに変更します。
DEBUG = False
Gitでコミット
Gitでローカルリポジトリの作成 & コミットを行います。
以下のコマンドを順に実行していけばOKです。
git init
git config user.name "Your Name"
git config user.email you@example.com
git add .
git commit -m "first commit"
Herokuコマンドでデプロイ
HerokuコマンドでHerokuにデプロイします。
heroku loginコマンド実行時にブラウザが立ち上がり、Herokuの認証を求められます。
ログインした後、ブラウザを落とさずにターミナルに戻ると後続の作業が行えます。
以下のコマンドを順に実行していけばOKです。
heroku login
heroku create <your-app-name>
git push heroku master
heroku ps:scale web=1
heroku run python manage.py migrate
Herokuについてもっと学ぶなら
今回は Python で作成したアプリケーションを Heroku にデプロイする方法について解説しました。
Python をマスターすることでアプリケーションを作成することもできます。
Pythonを深く網羅的に学ぶためには以下の書籍がオススメです。
この書籍はPythonについてかなり深く、そして丁寧に書かれています。
Python の基本文法だけでなく、
いかにして Python の持つ力を最大限引き出せるかという視点で書かれています。
Python 初心者はもちろん、すでに Python を使える方にもオススメの一冊です。
エンジニアとしての自身の価値をチェックする(完全無料)
エンジニアとして、
自分の価値がどれくらいのものかご存知でしょうか?
エンジニアとしてIT業界に身を置いていると
今の会社でずっと働くのか、フリーランスとして独立するのか …
と様々な選択肢があります。
どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも
自身の価値を知っておくことはとても重要です。
TechClips ME では、
職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。
▼▼▼▼▼
▲▲▲▲▲
しかもTechClips MEでは想定年収を企業から提示してくれるので、
自身の価値を数字で分かりやすくたしかめることができます。
登録はもちろん完全無料なので、一度登録してみると良いかもしれません。
コメント