DAY24 — 利用 uptime 讓你的 Heroku 永不休眠

Jason Z
jason-read-code
Published in
Mar 28, 2022

上一篇成功將 Nestjs 部屬到 heroku 上面,不過我們使用的是免費方案,免費方案有幾個限制:

  • 如果 30 分鐘內,沒有請求的話,機器會進入休眠,直到新的請求才會喚醒,但是喚醒的時候需要一點時間,新的請求 API 會卡住很久
  • 免費的機器使用上限只有 500 多個小時,如果都不關機的話,會有一陣子要關機才夠應付限制使用

於是這一篇要來解決上述兩個限制

利用 uptime 讓 heroku 永不休眠

uptime 是一個監控服務,可以監控你的服務目前運行的狀態,如果不正常的時候也能發出警告。

而我們可以利用 uptime 的免費額度裡面,去監控 heroku 的狀態,雖然有點弔詭,就會變成用一個免費的服務去監控另一個免費的服務確保他不會休眠

設定的方法也很簡單,在uptime 新增一個監控後,輸入 heroku API 的位置之後,在設定監控的頻率。以這個例子而言,設定每15分鐘打一次網站的請求,如果網站有回應,就會被視為運作中。

而heroku 也因為每15分鐘都有來自 uptime 的請求,所以不會進入休眠模式

增加機器免費運行的時間

增加機器運行的時間其實沒有什麼特別厲害的技巧,就是綁定信用卡,綁定信用卡可以增加額外500小時的免費運行時間,這樣總共有1000小時左右的免費運行時間。

如果只有一個服務在運作的話,這樣的免費時間已經超過一個月的時間了,也可以達成機器使用時間永遠不會超過,也不必擔心被額外收費

--

--

Jason Z
jason-read-code

哲學系畢業的前端工程師,大部分時間都在搞鐵路系統,喜歡寫程式外,更喜歡鐵道,欣賞路上每個平凡的風景