どうも、月見(@Suzuka14144156)です。
今回の記事では、Pythonを無料サーバーで定期実行する方法を解説したいと思います。
よって、この記事では、このような悩みをお持ちの方におすすめです。
- Pythonを無料で定期実行する方法が分からない
- Herokuの代わりになるサーバを探している
- Google Cloud Functions で、Pythonを定期実行する方法がオススメ!
- 簡易的なDashbord系のサイトを立ち上げるには、Streamlit Shareを活用するのがオススメ(Link)
Pythonを定期実行できる無料サーバー一覧
- Google Cloud Functionsが無料枠の観点からオススメです
プラットフォーム | Google Cloud Functions | AWS Lambda | Heroku |
---|---|---|---|
無料枠 | 200万回/月の呼び出し 400,000 GB 秒、200,000 GHz 秒のコンピューティング時間と、1 か月あたり 5 GB のインターネット下りトラフィック | 100万回/月の呼び出し 40万GB秒のコンピューティング時間 | 無料枠終了(22年11月) |
対応言語 | Node.js、Python、Ruby Go、PHP、Java | Java、Go、PowerShell Node.js、C#、Python、Ruby | Ruby、Java、PHP、Python、Node、Go、Scala、Clojure |
リンク | 参考:Cloud Functions の料金 | 参考:AWS Lambda 料金 | 参考:「Heroku」の無償プランが廃止へ |
Google Cloud Functionsとは?
スケーラブルな従量課金制 Functions as a Service(FaaS)プロダクトにより、サーバーやコンテナによる管理なしでクラウド上でコードを実行します。
なので、Pythonなどのコードをクラウド上で、実行できるということですね。
Google Cloud Functionsの登録方法
Google Cloud Functionsの登録は、以下から可能です。
- ニーズを入力
- 利用規約に✓
- 続行をクリック
- クレジットカードの情報を登録
- 検討理由の入力
- チュートリアルは、スキップ
Google Cloud Functionsの使用方法
- 今回は、Pythonスクリプトを定期実行する方法を解説します。
大まかなな流れは、以下です。
- 1Pythonスクリプトを登録
- 2Cloud Schedulerで定期実行を登録
Pythonスクリプトを登録して、それを指定した時間間隔で定期実行するというものです。
Pythonスクリプトを登録
以下にアクセス。
プロジェクトの作成
- 画面上の、「My First・・・」をクリック
- 画面上の、「新しいプロジェクト」をクリック
- 適当なプロジェクト名にして作成
- 作成したプロジェクトを選択
- 以下のアイコンをクリック
- 下にスクロールして、「その他プロダクト」をクリック
- 下にスクロールして、「Cloud Funcrtion」をクリック
- 画面上の「関数を作成」をクリック
- APIの有効化ですべて有効化します
- トリガーのタイプはhttpではなく「Cloud Pub/Cub」を指定
- トピックを新規作成(適当名前でOK)
- 「トピックを作成する」をクリック
- 今回は、以下のような感じで作成します
- 画面したの「次へ」をクリック
- ランタイムから「Python3.8」を選択
import base64
def hello_pubsub(event, context):
"""Triggered from a message on a Cloud Pub/Sub topic.
Args:
event (dict): Event payload.
context (google.cloud.functions.Context): Metadata for the event.
"""
pubsub_message = base64.b64decode(event['data']).decode('utf-8')
print(pubsub_message)
このコードがデフォルトで記述されます。
- 画面左下から「デプロイ」を選択
Cloud Schedulerで定期実行を登録
- プロジェクトのホーム画面
- 画面左上のメニューから「Cloud Scheduler」をクリック
- 「ジョブのスケジュール設定」をクリック
- 名前、リージョン、説明、頻度、タイムゾーンを設定する
- 「続行」をクリック
- ターゲットタイプ「Pub/Sub」
- トピックは、先ほど作成したトピックを指定
- メッセージ本文を入力
- 「続行」をクリック
- 「作成」をクリック
- 1分後、「最後の実行ステータス」が成功となっていればOK
Google Cloud Functionsの料金アラート設定
Cloud Billing の予算を作成して、Google Cloud のすべての料金を 1 か所でモニタリングすることで、想定外の請求が発生する事態を回避します。
参考にした情報:本
筆者が、本記事を作成するにあたり参考にした、Pythonの本は以下です。
Python 1年生 体験してわかる!会話でまなべる!
Pythonの基本的な記述方法は、以下の本がオススメです。
図解即戦力 Google Cloudのしくみと技術がこれ1冊でしっかりわかる教科書
Google Cloudのしくみは以下の本を参考にしています。
参考にした情報:Udemy
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
シリコンバレーでバリバリコーディングしている酒井 潤 (Jun Sakai)さんの講義で、非常に参考になりました。
Google Cloud(GCP)の基礎 – 図解と実践でインフラの基礎を固める
Google Cloud(GCP)の基礎は、この講義で包括されているので、オススメです。
より簡単な方法(Streamlitを使う方法)
簡易的なDashbordを作成するには、Streamlitというライブラリを活用するのがオススメです。
作成した画像を以下にはっておきます。
サイトの詳細は、以下に作成したサイトを公開しているのでみてみてください。
参考:作成したサイト
本サイトのに関しては、以下の記事を参考にしてみてください。
コメント