脱Heroku! Renderのススメ
はじめに
私は 東京電機大学未来科学部 情報メディア学科 実空間コンピューティング研究室 に所属するmattunです。
普段はC#をこよなく愛しUnityで食ったり、Linuxとイチャツイたり、人のPCにUbuntu強制インストールさせてたりします。
この記事は TDU Advbent Calendar 2022 21日目の記事です。
Herokuが死んじゃった... 😭
Herokuが死にましたね...
無料でサクッとWebアプリをデプロイしたいときはとても優秀なので、私も結構重宝していました。
確か11月末で無料枠のアプリケーションをシャットダウンするみたいな告知だったので、死んだネタサービスも多いでしょう。
今回はHerokuが死んで困っている民を救済するRenderの解説&ハンズオンをやっていきたいと思います。
Renderとは?
原文
Render is a unified cloud to build and run all your apps and websites with free TLS certificates, a global CDN, DDoS protection, private networks, and auto deploys from Git.
DeepLコピペ
Renderは、無料のTLS証明書、グローバルCDN、DDoS保護、プライベートネットワーク、Gitからの自動デプロイなど、あらゆるアプリケーションやWebサイトを構築・運用するための統合クラウドです。
要するに、PaaSです。
Renderは次世代Herokuを自称しており、Herokuを踏襲してサービスを行っているようで、Herokuでできたことの殆どをRender上でもできます。
一番良く使われるであろう、WebServiceではPythonやNode.jsなどの有名所からRustみたいな変態向け言語、銀の弾丸であるDockerなど大体の環境が動くようにサポートされています。
RenderにFlaskアプリケーションをデプロイしてみる
では、とりあえずFlaskをRenderにデプロイしてみましょう。
雑にrootでにゃーんと返すFlaskアプリケーションを用意しました。
キモはrequirements.txtに必要なモジュールを全部書いて置くことです。
サクッとRenderのアカウントができたら ダッシュボードにアクセスし、右上の "New +" で Web Service を選択しましょう。
右でGitHubなりGitLabなりのアカウントと連携 & Renderにアクセス権を与えるリポジトリを選択します。
あとは対象のリポジトリを選択して、 "Connect" をクリックしましょう。
ここか諸々の設定をしていきます。
書いてあることを読めば詳しいことがわかるのでサックリと説明します。
項目 | 例 | 効果 |
---|---|---|
Name | flask_neta_app | アプリケーション固有の名前です。基本的にこいつがURLになります。 |
Branch | main | デプロイ対象のブランチです。 |
Root Directory | . | 実行するときのディレクトリです。 |
Environment | Python 3 | Webサービスを実行する環境です。大体これはリポジトリを推察してぶち込んでくれることが多いです。 |
Build Command | $ pip install -r requirements.txt | ビルド時に実行するコマンドです。 |
Start Command | python3 app.py | 実行時に必要なコマンドです |
ここまで書いてきましたが、大体は勝手に推察してくれるやつをぶち込めばなんとかなります。
プランはとりあえずFreeを選択して、そのまま "Create Web Service" をクリックしましょう。
ちょっと待つとこんな感じでビルドタスクが走っているのがわかります。
割りと長いのでコーヒーでも飲んで待ちましょう。
デプロイが終わったらなんかそれっぽい表示が出ると思います。
そこで、左上のリンクをクリックしたら
と出ており、デプロイできているのがわかるでしょう。
感想
ここまでRenderを触ってきました。
率直にRenderを触ってて思うのは全体的に動作が重いなーという点です。
ビルドはもちろん、DashBoard自体もそこそこ重いので、Herokuや有料サービスに慣れ親しんだ人だとかなり気になりますね。
(あと、Herokuだと無料枠で動かすマシンのRAMは1GBまで使えたけど、Renderは512MBまで...)
個人的には”無料でサクッと試したいときにとりあえず使ってみる”というときに使うのがいい気がします。
本記事は以上です。
うちの研究室でもアドカレやってるのでぜひ見てみてください。
東京電機大学アドベントカレンダー2022の21日目でした。
Discussion