【Google Colab】VSCodeを設定して使ってみよう!
【Google Colab】VSCodeを設定して使ってみよう!
Google Colabは、データサイエンティストやプログラマーにとって便利な環境ですが、標準のインターフェイスではVSCodeのような統合開発環境 (IDE) を利用することはできません。しかし、少し工夫をすることで、Google Colab上でVSCodeを使うことが可能です。本記事では、Code Serverとngrokを活用して、Colab上でVSCodeを設定する手順をわかりやすく解説します。
Code Serverのインストール
Code Serverは、ブラウザベースでVSCodeを動作させるためのオープンソースツールです。以下のコマンドを実行してCode Serverをインストールします。
# @title VSCodeインストール
!wget https://github.com/coder/code-server/releases/download/v4.13.0/code-server-4.13.0-linux-amd64.tar.gz
!tar -xvf code-server-4.13.0-linux-amd64.tar.gz
!mv code-server-4.13.0-linux-amd64/code-server /usr/local/bin/
Code Serverの設定
Code Serverが正常に動作するためには、設定ファイルを作成する必要があります。以下のコマンドで、必要な設定を行います。
# @title CodeServer設定
!mkdir -p ~/.config/code-server
!echo "bind-addr: 0.0.0.0:8888" > ~/.config/code-server/config.yaml
!echo "auth: none" >> ~/.config/code-server/config.yaml
これにより、Code Serverがポート8888でリッスンし、認証なしでアクセス可能になります。
Code Serverの起動
Code Serverをバックグラウンドで実行するには以下のコマンドを使用します。
# @title Codeserver軌道
!nohup /usr/local/bin/code-server > server.log 2>&1 &
このコマンドを実行すると、Code Serverが起動し、サーバーログがserver.logに保存されます。
ngrokを使った外部公開
Colabは外部から直接アクセスすることができません。そのため、ngrokを使って、Code Serverを外部に公開します。
必要なパッケージをインストール
まず、ngrokをインストールします。
!pip install pyngrok
ngrokトークンの設定とサーバー公開
以下のコードを使ってngrokを設定し、公開URLを取得します。
# @title ngrokを使った公開
import os
from flask import Flask
from pyngrok import ngrok, conf
# ngrokトークンを設定
ngrok_token = "<ngrok_token>" # ngrokのトークンを入力
conf.get_default().auth_token = ngrok_token
# ポート8888を公開
public_url = ngrok.connect(8888)
print(f"ngrok URL: {public_url}")
<ngrok_token> には、ngrokの公式サイトから取得した認証トークンを入力してください。このコードを実行すると、ngrok URLとして外部からアクセス可能なリンクが表示されます。このURLをブラウザに入力すると、VSCodeのインターフェイスが表示されます。
VSCodeの画面が現れてターミナルなども操作可能で感動します!

注意点
-
セキュリティ 認証が無効化されているため、ngrok URLを第三者に共有しないように注意してください。
-
リソース制限 Colabのリソース制限があるため、大規模なプロジェクトには不向きです。
-
セッションの持続性 Google Colabのセッションが終了すると、サーバーも停止します。作業中はセッションを維持するようにしましょう。
まとめ
本記事では、Google Colab上でVSCodeを使用するための設定手順を解説しました。この方法を使えば、Google Colabのリソースを活用しながら、VSCodeの利便性を享受できます。必要なコマンドを実行するだけで簡単にセットアップできるため、ぜひ試してみてください。