Render.comをしばらく使ってみて

はじめに

Render.comをここ数ヶ月使ってみて良い点、注意点など見えてきたので整理します。とは言え、Renderは大変多機能かつ、幅の広いプラットフォームなので、その一部だけしか使用していない前提であるとご理解ください。また、自分自身、Webアプリ開発にそんなに慣れているわけではないので、ひょっとしたら思い違い等あるかもしれません。

Render公式サイト

Cloud Application Hosting for Developers | Render

自分の用途と環境

  • 半公開型のWebサービス開発。クリエイター向けのグラフィックを動的に生成する。
  • サーバサイド: Python、Flask、SQLlite
  • クライアントサイド: Javascript、p5.js、Bootstrap
  • 開発環境: Anaconda、VSCode

無料でどこまでできるか

Renderも初めのうちはどこまでできるか分からなかったので、無料の範囲でどこまでできるかトライしてみました。

結論として、結構、無料の範囲で使えるなあという印象です。

無料の範囲でできること概要

項目無料でできること
インスタンスの実行時間(1ヶ月あたり)750時間(31.25日)
ビルド時間(1ヶ月あたり)500時間(20.83日)
一時的なファイル保存1GB
CPU共有(遅い)
Github連携必須
使える環境、言語Python、PHP、Node.js、Go、Rubyなど多数。標準でPostgreSQL、SQLiteサポートなど。※
静的Webサイトの作成無料

※Python、SQLite以外試していないので、公式サイトからの受け売りです。PostgreSQLは90日間無料。この内容は後述します。

Python環境(2023/2/27現在)

  • デフォルトPythonバージョン: 3.7.10
  • pipバージョン: 20.1.1
    • 必要なモジュールはrequirements.txtに記述して、デプロイ時にpipからインストールする。

それぞれ工夫でアップグレード可能(参考)

無料ゆえの制約

  • PostgreSQLのデータ保持は最初の90日間のみ。90日経つとお知らせメールが来た後に、データも全てバッサリと削除される(らしい)
  • プログラムで生成したファイル、ユーザーがアップロードしたファイルなどは永続的でない。
  • 15分間アクセスがないと、サーバーはリブートされる。そのために、上記項目で記したファイルは削除される。
  • リブートからの復帰には数分かかる。もしくはもっとかかる場合もある。そのため、過疎なWebサービスの場合、ユーザーを大分待たせる。
  • この制約のため、SQLiteでのデータファイルも中身が削除される。(そのため、PostgreSQLも含めてDBは長期的には使えない。お試しの範囲と考えた方が良い。)
  • CPUが共有のため、デプロイ時間が遅い。速くて3分。遅いときは1時間以上かかる。時間帯によって異なる。その分、月あたりのデプロイ時間が消費される。
  • 筆者環境では、26日間で363h消費。(無料分は500h)
  • シェルが使えない
  • ログが長期間保存されない

所感

ある程度制約があるものの、無料の範囲で技術的トライアルを行うには十分な環境であると感じます。
その先の有料プランでも、$7/monthからの設定なので、かなり良心的ではあります。
ぎりぎり無料で試せるけれど、あと一歩、のところで有料が必要になる絶妙な無料の範囲設定です。
まだ試せていないのですが、最も安い有料プランであるStarterは、「最大$7」で、さらにその中に細かく料金設定があり、使用した分だけの課金なので、もっと安く済む可能性があります。
費用的な面で安心できるのも魅力ですが、サーバーサイドの環境をすぐ作れるのは、心理的安全性が高いです。もちろん、普段から環境構築に慣れていたりすればよいのですが、なかなかそうもいきません。また、その環境の維持やアップデートもあり、なかなかのストレスと工数を要します。
そんな中、Render.comは、環境構築に良い意味で独自機能が少なく、将来どこかに移行するにも簡単にできそうで、様々な言語環境に対応しているのがとても良いです。
UIも洗練されていて、シンプルでストレスが少ないです。
比較的安価な環境で技術的実験、サービスプロトタイプまで作り込んで、そこから本番環境に移行できるのはとても便利だなあと感じます。

少し課題を感じるのは、Renderというサービス名は、レンダリングなどの一般名称と紛れるので、情報検索が難しいところですね。