チャベログ

Herokuの無料プランが終了するのでStreamlit Cloudとローカルで定期実行する運用に変える

画像が読み込まれない場合はページを更新してみてください。

Herokuの無料プランが撤廃されることが発表されました。

自分の場合、ブログの記事の検索順位を確認するwebアプリをpythonで自作してデプロイしていたので、このアプリをどうするかを考えました。

このアプリはNotionに埋め込んでいて、以下のような感じで動きます。

画像が読み込まれない場合はページを更新してみてください。

このアプリの詳細は以下。

記事順位チェッカーの構成

アプリの構成は以下のようになっています。

  1. 記事の検索順位は1日1回、定期実行で取得
  2. 取得した検索順位は、スプレッドシートに記録
  3. スプレッドシートのデータをグラフ化(Streamlit)

対応(暫定)

検索順位の取得はローカルで定期実行

今までHerokuで定期実行していたので、理想はリモートで定期実行したいです。

ただし、趣味程度なのでできるだけ無料で使いたいと思っています。

無料で使えるサーバー(もしくはサーバレス)があるのかまだわかっていないので、とりあえずローカルで定期実行することにしました。

古いWindows PCがあるので、このPCでタスクスケジューラーを使って定期実行します。

(本当はUbuntuを入れてみようと思っているけど、まだできていない。)

将来的には無料で使えそうなサービスを使いたいのですが、まだよくわかっていません。

  • Amazon Web Services(どこまで無料で使える?)
  • Google Cloud Platform(どこまで無料で使える?)
  • Microsoft Azure(どこまで無料で使える?)
  • レンタルサーバーで定期実行(ワードプレスのブログを運営中の ConoHa WING。Pythonを定期実行できる?)

追々、考えることにします。

スプレッドシートに記録

検索順位の取得と合わせてローカルで定期実行します。

Streamlitでグラフ表示

元々、Streamlitでグラフ表示していたので、Streamlit Cloudで公開することにしました。

Herokuであれば非公開のまま(URLを公開しなければ)自分だけが閲覧できていましたが、Streamlit Cloudを使うと公開状態になります。

それほど本気でSEO対策をしているわけではないので、とりあえず良しとします(積極的には公開しないようにする)。

Streamlit Cloudで公開したアプリをNotionに埋め込む

アプリのURLをそのままNotionに貼り付けても埋め込みはできません。

URLの末尾に?embedded=trueを加える必要があります。

https://streamlit-demo-uber-nyc-pickups-streamlit-app-456wus.streamlitapp.com/
アプリのURL
https://streamlit-demo-uber-nyc-pickups-streamlit-app-456wus.streamlitapp.com/?embedded=true
末尾に?embedded=trueを追加

終わりに

無料枠が無くなると、趣味で使っているユーザーとしてはつらいです。

そのうち Notion も無料枠で使える機能が制限されていったりするんでしょうか。

しかし Notion が仮に有料になっても、そうとう高くならない限りは使い続けることになると思います。

自分はサッカーを見るために Dazn を契約しています。

今年結構値上がりした時に解約するか相当迷いましたが、結局継続しました。

契約している中で一番高いサブスクですが(月2250円)、生活の一部となってしまったらなかなか手放せなかったです。

サブスク管理はNotionでしていますが、これからもきちんと管理していかないと破産します。