JavaScriptを有効にしてください

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

 ·  ☕ 3 分で読めます

【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を発行するサンプルコードです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
!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)

ポイント

  • conf.get_default().auth_token = "<YOUR_NGROK_TOKEN>"でトークンを設定します。
  • ngrok.connect(5000)で、Flaskが使用する5000番ポートをトンネル経由で公開。
  • 実行後、出力にhttps://xxxx.ngrok.ioといった形式のURLが表示され、これをブラウザで開くと"Hello, World!"が表示されます。

まとめ

  • ngrokを使うことで、ローカルで起動したWebアプリケーションを外部へ公開可能。
  • 認証トークンはアカウント作成後に取得し、conf.get_default().auth_tokenで設定。
  • このサンプルを活用することで、Google Colab上で手軽にWebサービスをデプロイする代替策として利用できます。
共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer