Motivation
twilioとSendGridとherokuでキャリアメール代替プッシュ通知など、いくつかのwebアプリサーバをherokuの無料サービスで動かしていたのですが、11末で終了となると言うことで、移行先を探して私の条件に合うrender.comに移行してみました。
render.comのfree planは同一アカウント内でトータル月750時間までのサーバ起動は無料で、15分アクセスがないとサーバがサスペンド状態になり、次のアクセスが来ると再起動に15秒かかります。多数接続がない、処理にリアルタイム性は不要な私の用には事足ります。
事前準備
- githubまたはgitlabのアカウントを作成(私の場合githubのアカウントを既に持っていたので、以下githubの例です。)
- render.comでアカウントを作成
herokuのlocal repositoryをgithubのprivate repositoryにコピー
- GitHubで無料プライベートリポジトリを設定する方法を参考にgithubでprivate repositoryを作成します。
- 「2.cloneで空のローカルリポジトリを作る」で自分のローカル環境にローカルリポジトリをcloneし、herokuのローカルリポジトリの中にあるソース一式をコピーして、commit/pushします。この時、Procfileはheroku特有のものなので不要です。また、githubはデフォルトではmainブランチが作られるので、明示的に指定しない限りpush先はmasterではなくmainブランチです。
git push -u origin main
renderとgithubのrepositoryを接続
初めて作る時がどうだったか失念しましたが、右上のNew +ボタンからWeb Serviceを選ぶとCreate a new Web Serviceの画面に遷移し、何もrepositoryがありません。
上右のGitHub +Connect accountを押すと、github側でrepositoryへのアクセス許可の画面が現れ、私はAll repositoriesへのアクセス許可にチェックし、installボタンを押しました。
すると、こんな感じでrender側からgithubのrepositoryに接続できるようになるのでrenderで立てたいweb serviceのrepositoryにConnectします。
web serviceの情報を記載して一番下のCreate Web Serviceボタンで、repositoryのdeployが始まります。
また、twilioとSendGridとherokuでキャリアメール代替プッシュ通知の通り、環境変数でtwilioのACCOUNT SID等を設定しているのですが、真ん中より下にあるAdd Environment Variableから環境変数が指定できます。
ログと利用状況
処理時のコンソールログも当該web serviceのDashboardのLogsから見れます。
当月の利用時間はMetricsから見れます。CPUとMemoryの利用率が見えたり見えなかったり
最後に
非常に、簡単でした。