1. 概要
Herokuの無料プランがなくなってしまうので、PythonでつくったWebアプリをRender.comに移管しようとしたらOSError: cannot open resource
に苦しめられました。
解決はできたっぽいですが、無料プランではリソースが足りず[CRITICAL] WORKER TIMEOUT
となっていしまいました。
困っていたところ、学生割あるじゃん!ってことに気付いたので、学生身分をフル活用してそちらに移行します。
2. 詳細
OSError: cannot open resource
の原因
日本語でWordCloudを使っているのでフォントを指定していたのですが、フォントのパスがうまく指定できていなかった模様。
Render.comへの移管の手順
下記手順に従います。
GitHub上に新たにRender.com用のレポジトリを作成しました。
Herokuアプリのコードがあるルートディレクトリで
$ heroku plugins:install @renderinc/heroku-import
$ heroku render:import --app {アプリ名}
を実行し、.render-buildpacks.json
、Dockerfile.render
およびrender.yaml
を生成します。
これらをRender用のレポジトリにAdd
, commit
およびpush
します。
Herokuの場合
font_path='/app/.fonts/ipaexg.ttf'
でいけていました。
Renderの場合
font_path='/opt/render/project/src/.fonts/ipaexg.ttf'
としたらOSError: cannot open resource
は消えました。
しかし、新たに[CRITICAL] WORKER TIMEOUT
となってしまいました。
ディレクトリ構造
├── Procfile
├── app.py
├── create_wordcloud.py
├── .fonts
│ └── ipaexg.ttf
├── model.py
├── requirements.txt
├── runtime.txt
├── static
└── templates
3. しかし、私は学生だった!!
エラーの原因はリソース不足の模様、、、
諦めてHerokuに課金しようと思いましたが、学生向けに1年間有料プランをタダで使わせてくれる制度があることを発見しました。
Herokuは学生向けに$156奢ってくれるみたいです。
If you are registered with the GitHub Student Developer Pack, you are eligible to receive platform credits worth $13 USD per month for 12 months (for a total value of $156 USD).
出典:https://www.heroku.com/github-students
GitHub Student Developer Packから学生認証することで、毎月$13使えるクレジットを1年間使わせてくれるそうです。
余った分の繰り越しできないようです。
Heroku for GitHub Studentsから申請します。
(まだやっていなかれば)GitHub Student Developer Packで学生認証をします。
それが済んだらGitHub経由でHeroku側にも学生であることを確認してもらいます。
名前と学校名を入力し、規約に同意すれば完了です。
入金が完了するとBillingタブから確認できます。
4. まとめ
かなり回り道してしまいましたが、1年間は安心です。
学生向けのGitHub Student Developer Pack
には今回のHerokuだけでなく、使いこなせないほどたくさんのサービスが載っています。
アプリはこちら↓
制作過程↓