🌅

Renderで無料デプロイしたアプリをキープアライブする方法

2024/03/15に公開

先日、開発段階のオリジナルアプリをRenderへデプロイしました。
https://word-chain-image-generator.onrender.com/

ただ、ユーザーフィードバックを得るうえでの小さな課題...サーバーが寝てしまう問題。( ˘ω˘)スヤァ
アクセスが遅いだけでフィードバックを得る機会が減るのは勿体無いので対策を講じようと思いました。

Render無料プランの制限(一部のみ紹介)

  • Renderの無料プランは15分間非アクティブな状態が続くとサーバーがスリープ状態になる
  • アカウント内のすべての無料Webサービスで1か月あたり750時間の実行時間と、無料サービスごとに100GBの送信帯域幅が許可される
    • 1つのアプリケーションだけなら問題なし(24h * 31日 = 744h)

つまり、15分の間に通信をすればスリープ状態に入ることはありません。

対策方法

GAS(Google Apps Script)を用いて定期的にリクエストを送る

手段としてはいくつかあるようですが、私が一番手軽だと思う方法がこちらです。
Googleアカウントを持っていれば無料ですし、設定も難しくないのでおすすめの方法です。

手順

以下の方法でサーバーのキープアライブ[1]を実現します。

  1. 自身のマイドライブ(Googleドライブ)へアクセス
  2. Google Apps Scriptファイルを作成
手順図解

  1. スクリプトを作成
    以下のコードを定期実行するだけです。
コード.gs
function wakeUp()
{
  const url = 'https://{自身のアプリケーションURL}.onrender.com';
  const data = UrlFetchApp.fetch(url).getContentText();
}
手順図解

①コード.gs内にスクリプトを書き保存→隣の「▶︎実行」を押す


②権限の確認をクリック


③自身の任意アカウントを選択


④詳細をクリックして非表示領域を展開し「安全ではないページへ移動」をクリック


⑤許可をクリック

  1. トリガーを設定
手順図解

⑥トリガー一覧画面へ移動しトリガーを追加


⑦トリガー設定

さいごに

Renderのスリープでお困りの方はぜひ試してみてください。
「他にもっと簡単な方法あるよ」などなどありましたら教えていただけると嬉しいです。
でゅわ。

脚注
  1. ネットワークで接続された機器やソフトウェア同士が、お互いに正常に接続されていることを確認するために、定期的にやり取りする通信のこと ↩︎

Discussion