モバイル環境でJupyter Notebook(SageMaker)を実行する

2019.09.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

新型iPadが発売されて第6世代のiPadが安く入手できたので色々アプリを入れて楽しんでいます。iPadOSでは複数アプリの起動やマウスが使えるようになったため、「データ分析環境を構築できるのでは?」と思い実際に環境を構築してみました。

環境

  • 第6世代iPad iPadOS 13.1
  • Juno Connect

Juno Connectとは

Juno ConnectはiOS上で動作するJupyterクライアントアプリで、具体的にはiPadOSにインストールしたJuno ConnectからリモートJupyterサーバーにアクセスしてデータ分析を行えます。もちろんiPadOS上でも問題なく動くことは確認済みです。 ただし、有料(1,200円)です。(2019年9月30日現在)

Juno Connect is a Jupyter client, which lets you connect to a remote Jupyter server or cloud-computing service, such as CoCalc or Azure Notebooks, and do everything you can do on desktop, anywhere — from your iPad or iPhone.(Juno Connectのサイトより引用)

同じJuno社からリリースされているJunoというアプリもあるのですが、これはiOS上にJupyter開発環境を展開してローカルで開発を行います。 データ分析環境なのでそれなりのリソースが必要ということもありローカルではなくリモートJupyterサーバーで行うほうが良いのではと思いここでは使用していません。

リモートJupyterサーバーとしてデフォルトで利用可能なサーバーは

  • Juno社のリモートサーバー
  • Azure Notebooks
  • COCALC
  • binder

ですが、今回はSageMakerのノートブックインスタンスを立てて Juno Connectから接続してデータ分析環境を実現してみたいと思います。

SageMaker

1.AWSマネージメントコンソールからSageMakerを開き、ノートブックインスタンス作成画面に進み「Create notebook instance」ボタンを押下します。

2.ノートブックインスタンスの設定情報を入力しますが、そのままの設定で外部からアクセスできるので適切なノートブックインスタンス名を入力してページ下部へ進み「ノートブックインスタンス」の作成を押下します。

3.ノートブックインスタンスができるまでしばらく待ちます。作成が終わると以下のような画面になるので「Open JupyterLab」を押下してJupyterLabを開きます。

4.JupyterLabが開いたらURLをコピーします。

Juno Connect

1.Juno Connectのアプリを起動すると以下のような画面になります。SageMakerはJuno Connectのデフォルトのリモートサーバーに登録されていないので「Add Jupyter Server」をタップします。

2.接続先を入力するモーダルが開きます。入力する項目は以下の通りになります。

  • Description: 接続先名なのでわかりやすいもの
  • Type: Direct connection
  • Address: 上記SageMakerの4でコピーしたURL
  • Port: 443
  • HTTPS: ON

特にPortはjupyterのデフォルト値である8888が入力されていますが、ここを443(もしくは空)にしないとUnreachableとなってしまいSageMakerのノートブックインスタンスに接続できません。

3.接続に成功するとAWSアカウントに接続するおなじみの画面が表示されるので作成したSageMakerのノートブックインスタンスにアクセスできるアカウント情報を入力します。

4.正しく認証されると無事JupyterLabの画面が表示されて無事にデータ分析環境が整います。

まとめ

有料のアプリですがそれだけお金を払う価値のあるアプリだと思います。iPad(iPhone)を使ってどこでもデータ分析環境にアクセスできるのはとても便利だと思います。

最後まで読んで頂いてありがとうございました。