新社会人は通勤時間を使ってAndroidスマホから外部サーバ上のJupyter Notebookで分析する


背景

  • 新社会人になって通勤時間が長くなった
  • 満員電車で通勤しなくてはいけない(電車内でPCなんて論外)
  • 実験結果の分析を(はやく)しなくてはいけない

上記のような状況になったので以下の環境を構築しました

  • スマホから外部サーバに接続する
  • Jupyter Notebookで分析する

流れ

  1. ターミナルアプリをスマホにいれる(Termux)
  2. スマホ上からssh設定をする
  3. サーバ上でJupyter notebook起動
  4. ポートフォワーディングする
  5. Chrome等からアクセスする

Termux

sshクライアントなどを見ましたが、黒い画面が1番使いやすそうだったので、Termux を入れました。
そこまで扱ったわけではありませんが、普通にターミナルとして使えます。

ssh設定

sshするためにopensshを入れます。

$ pkg install openssh

あとは、私は公開鍵設定をしたので、ssh-keygenなどでいろいろ設定します。
この辺はPCで公開鍵設定する時と一緒です。
1. ssh-keygenで公開鍵・秘密鍵を作る。
2. 公開鍵を接続するサーバのauthorized_keysにいれる。

(余談)キーボードについて

Androidキーボード(POBoxなど)ではCtrlなどがなくて不便です。特にemacs派の人は。
Hacker's keyboard で解決します。

サーバ上でJupyter Notebook起動

接続先サーバ上でJupyter Notebookを起動します。
Termuxでsshして起動させてもいいですし(screen上でやっておくと良い)、他の方法でやってもいいです。

ポートフォワーディング

Termux上でポートフォワーディングをして、localhostとサーバ上のJupyter Notebookをつなぎます。
私の場合は、Jupyter Noterbookをlemonというサーバのポート8888で使っているので、下記のようにつなぎます。

$ ssh -L 8000:localhost:8888 lemon

ブラウザからアクセス

ブラウザから localhost:8000 にアクセスします。
私はChromeを使いましたが、無事見ることができました。

結論

  • 満員電車で小さいスマホで黒い画面見てポチポチするのはつらいです。