Published on

Renderサーバーのフリープランでサービスを公開してみた

Authors

去年の6月ごろまでDnangoで作った家計簿アプリを公開していた。

物価高などもあって渋々サービスを終了したのだが、コツコツ開発し続けてきたのもあり、せっかくなのでフリープランのあるサーバーを探して再び公開することにした。

公開した家計簿アプリはこちら

チャッピーにDjangoアプリをデプロイできるサーバーがないか聞いたところ、3つほど候補が出てきた。

  1. PythonAnywhere
  2. Render
  3. Railway

PythonAnywhereは使ってみたことがあり、使えるライブラリに制限があることや一定期間アクセスがないとプロジェクトが消えてしまうなど制限が多いため真っ先に候補から外した。

RenderはRailswayと比べてスリープからの再起動が速いらしいことと、一定期間アクセスがないときの自動プロジェクト削除や無料枠の稼働時間などの猶予が緩いためRenderに決定した。

DBもRenderに置いているが、こちらはフリープランだと30日程度で期限切れになってしまうらしいので永続化するためには外部の無料DBに繋げる必要がある。 チャッピーいわく、NeonかSupabaseがおすすめらしい。

Renderに一つ面食らったフリープランの制限があり、587番ポートが使えないためSMTPサーバーにアクセスできない。つまり、ポート指定が必要なメール配信はできない。(技術がどれだけ進歩しても、結局金か)

そのため、フリープランでメール配信しようとするとAPIを使ってメール配信できるようなサービスを利用する必要がある。

今回は使ったことのあるResendでメール配信できるようにした。

デプロイの手順は公式にドキュメントがあり、概ね手順通りに進めることで公開できた。

サーバーエラーになる問題に躓いたが、先述のメール送信の件とDjangoをv4からv5に引き上げたことで解決できた。おそらくパッケージの依存関係の問題だと思われる。

家計簿アプリはGitHubに公開しているので、こちらにもリンクを置いておく。

https://github.com/nisyuu/sumuma