Copy & Paste Engineer

【Python】Google Colabでngrokを使ってアクセスする方法

【Python】Google Colabでngrokを使ってアクセスする方法

Google Colab でWebサーバーを立てたりすると通常ではアクセスできないので ngrok を使ってアクセスする方法のメモ。

ngrokとは

ngrokはローカルで動作しているWebサーバー(localhost)を、外部からアクセス可能なURLとして公開するためのトンネリングツールです。 Google Colabやローカル開発環境でテスト中のWebサービスを、クライアントや他の開発者に簡単に共有したい場合、ngrokを通じて一時的なパブリックURLを発行できます。 オペレーターにとっては、ミッション達成への迅速なアクセスルートを提供するための戦術的支援ツールと言えます。

ngrokトークンの取得方法

ngrokの利用には無料アカウント作成が可能で、アカウント作成後に認証トークンを発行します。 具体的な手順は以下のとおりです:

  1. ngrokにアクセスし、アカウントを作成(無料プランでOK)。
  2. ログイン後、ダッシュボードからAuth Tokenが表示されます。
  3. このトークンをngrok利用時にコード内で設定します。

認証トークンは、まるでローカルのミッションを外部ネットワークへ安全に届けるための暗号キーのような存在です。

サンプルコード

以下はGoogle Colab上でFlaskサーバーを起動し、ngrokを用いて外部からアクセス可能なURLを発行するサンプルコードです。

!pip install flask pyngrok
import os
from flask import Flask
from pyngrok import ngrok, conf

# ngrokトークンを設定
conf.get_default().auth_token = "<YOUR_NGROK_TOKEN>"

app = Flask(__name__)

@app.route("/")
def home():
    return "Hello, World!"

if __name__ == "__main__":
    # ngrokで5000番ポートを外部公開
    public_url = ngrok.connect(5000)
    print(f"ngrok URL: {public_url}")
    # Flaskサーバーを起動
    app.run(port=5000)

ポイント

まとめ