AWS EC2 で JupyterHub (TLJH) をセットアップして使用する


ビデオチュートリアル

Jupyter Notebook は、学界や業界全体で使用されているオープン ソース アプリケーションです。 インタラクティブ コンピューティング アプリケーションは、Markdown 構文を使用して記述された説明テキストをレンダリングするセルと、プログラミング コード (Python、R、Julia、および Scala を含む) を実行するセルで構成されます。 これは、ノートブックが同じドキュメント内にテキスト、コード、および視覚化を含めることができることを意味します。 Jupyter ノートブックは、ローカル マシンで使用することも、以前のチュートリアルで説明したようにクラウドで使用することもできます。 ただし、問題は、Jupyter Notebook が単一ユーザー向けにのみ設計されていることです。 JupyterHub は、この問題を解決するために設計されました。 JupyterHub は、次の機能を含む多くの利点を備えた組織向けに設計された Jupyter Notebook のマルチユーザーでコンテナーに適した (Docker、Kubernetes など) バージョンです。

  • ユーザーと認証の管理 (PAM、OAuth、SSO など)
  • クラウド (AWS、Azure、Google Cloud など) または独自のハードウェア (オンプレミス) で、共有可能、スケーラブル、およびカスタマイズ可能な計算リソースとデータ サイエンス環境を作成します。
  • インストールとメンテナンスのタスクから解放されたユーザー。

JupyterHub には 2 つのディストリビューションがあります。

  • Zero-to-JupyterHub (ZTJH)、Kubernetes に基づく JupyterHub のマルチノード バージョン
  • Littlest JupyterHub (TLJH) は、JupyterHub の単一ノード バージョンです。

このチュートリアルは、AWS で JupyterHub (TLJH) をセットアップする方法に関する優れた公式の JupyterHub チュートリアルを少し超えており、画像と YouTube ビデオによって、この 15 以上のステップのプロセスで問題が発生する可能性が低くなります。

1)。 アマゾン ウェブ サービスの Web サイトにアクセスし、[サインイン]をクリックします (AWS アカウントを持っていない場合は作成します)。


上で サインイン ページ、どちらかを選択 ルートユーザー (ア)ゴールド IAM ユーザー (B)。 メールアドレスを入力。 IAM ユーザーの場合は、少なくとも AWS EC2 インスタンスを作成できるように、適切なアクセス許可を持っていることを確認してください。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

公式チュートリアルでは、JupyterHub ユーザーがいる場所に基づいて AWS リージョンを選択する必要があることを強調しています。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

2)。 クリック EC2. 表示されない場合は、画面上部の検索バーを使用して EC2 と入力します。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

3)。 ダッシュボード | EC2管理コンソール、クリック インスタンス. この画面が少し違うように見える場合は、切り替えたことに注意してください 新しい EC2 エクスペリエンスについて.

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

4)。 クリック インスタンスの起動 (ボタンにラベルを付けることもできます インスタンスの起動)。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

5)。 名前と [optionally] インスタンスにタグを追加します。 AWS は、「タグは、AWS リソースに割り当てるラベルです」と述べています。 インスタンスの用途を識別する名前とタグをインスタンスに付けることをお勧めします (例: MyJupyterHubTutorial)。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

6)。 に行く アプリケーションおよび OS イメージ (Amazon マシン イメージ) Ubuntu バージョン 18.04 LTS を選択し、 Ubuntu 20.04 LTS (このチュートリアルで使用するもの)、Ubuntu 22.04 LTS ( 潜在的なエラー この AMI を選択する場合はセクション)またはTLJHがサポートするその他のもの。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

7)。 に行く 典型的な例. インスタンスを選択する前に、各インスタンスのコストと、同時ユーザー数に基づいて必要なメモリ/GPU/ディスク容量の見積もりに関する JupyterHub のガイドを確認することを強くお勧めします。 基本的に、最低でも 1GB+ (基本的に t2.micro 以上) の RAM を搭載したサーバーを使用する必要がありますが、私のニーズ (データ サイエンスの教育と実践) に合うように 8GB+ (t2.large 以上) を見つけました。 JupyterHub を使用している人が複数のコア (特に Ray/Dask/Spark) を使用する必要があるタスクを実行することがわかっている場合は、より多くの vCPU (t2.micro: 1 vCPU、t2.large: 2vCPU、t2. 2xlarge: 8vCPU)。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する
AWS の使用には費用がかかることを忘れないでください (無料のクレジットがない場合)。

8)。 に行く キーペア (ログイン). 既存の鍵ペアを選択するか、 新しい鍵ペアを作成する (下の画像に示されています)。 キーペアを作成する場合は、必ずダウンロードして安全な場所に保管してください。 あなたはそれを置き換えることができなくなります。 インスタンスに SSH で接続したり、ファイルを簡単にダウンロードしたりするにはキーが必要になるため、キー ペアの選択は重要なステップです。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

をクリックした後 新しい鍵ペアを作成する、キー ペア名 (例: MyJupyterHubTutorial_pem) を入力し、 キー ペアの作成 (下のスクリーンショットの右下)。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

ノート: Windows を使用している場合は、代わりに ppk を選択できます。 ただし、私は Windows で GOW を使用するのが好きです (私の SSH チュートリアルを使用して EC2 インスタンスに接続する) これにより、(PuTTY を必要とする代わりに) Windows で pem ファイルを使用できるようになります。

9)。 に行く ネットワーク設定. これは、セキュリティ グループを作成するか、既存のセキュリティ グループを選択できるチュートリアルの一部です。 これは、インスタンスへのアクセス方法に影響します。 このチュートリアルでは、次のチェックを追加することをお勧めします。

これらのオプションをクリックすると、3 つのセキュリティ グループが作成されます。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

必要に応じて、[編集]をクリックして、これらのセキュリティ グループを表示することもできます。 これにより、セキュリティ グループ名を変更することもできます。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する
このイメージでは、セキュリティ グループ 1 はポート 22 を使用した SSH を許可します (Ubuntu 20.04 の代わりに Ubuntu 22.04 を使用してみたときのイメージ).

10)。 に行く ストレージを構成する. これにより、必要なストレージの量 (GiB の数) とボリュームの種類 (gp2、gp3、io1、io2、sc1、st1、標準など) を選択できます。 このチュートリアルでは、手順 6 で選択した AMI のデフォルト ストレージ (gp2) を使用します。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

この画像では、セキュリティ グループ 1 がポート 22 を使用した SSH を許可しています (Ubuntu 20.04 の代わりに Ubuntu 22.04 を使用しようとしたときの画像)。 gp2よりもコストパフォーマンスが良さそうです。

11) に行く 高度な詳細 [ユーザー データ]まで下にスクロールします。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

このステップでは、インスタンスの起動時に実行されるコマンド スクリプトを提供します。 以下のインストーラー スクリプトは、JupyterHub をインストールします (インストーラーの機能)。 テキストをユーザー データに貼り付ける前に、少なくとも を管理者ユーザー (mgalarnyk など) に置き換える必要があります。 このチュートリアルの後半で設定するため、スクリプトにはパスワードが設定されていません。 ただし、インストーラー スクリプトを変更して、パスワードの追加、追加の管理者ユーザーの追加、ユーザー環境への Python パッケージのインストール、およびプラグインのインストールを行うことができます。

#!/bin/bash
curl -L https://tljh.jupyter.org/bootstrap.py 
| sudo python3 - 
--admin  
--show-progress-page

コード キャプション: コード --show-progress-page インスタンスが起動された直後に、一時的な「TLJH is building」進行状況ページが作成されます。これにより、インストールがうまくいっているかどうかをすぐに確認できます。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

JupyterHub の起動後に変更を加えたい場合は、いつでも追加の conda、pip、または apt パッケージをインストールしたり、管理者ユーザーを追加/削除したりできます。

12)。 に行く 概要 インスタンスの起動をクリックします。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

13)。 上で 打ち上げ状況 通知画面で、リンクをクリックします。 それはあなたをに連れて行きます EC2 管理コンソール.

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

14)。 EC2 管理コンソールが表示されます。 JupyterHub のインストールが完了するまで待つ必要があるため、この手順には少し時間がかかります。 公式ドキュメントによると、これには 10 分以上かかる場合があります (私にとってははるかに高速でした)。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する
これは、公開アドレスを見つけることができる場所の 1 つです。

サーバーがセットアップされているかどうかを確認するには、 公開アドレス あなたのブラウザに(私はクロムが好きです)。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

数分後、コピーします 公開アドレス 新しいタブにログインすると、サインインするよう求められます。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する
JupyterHub の HTTPS と SSL をセットアップする方法については、こちらをご覧ください。

15)。 手順 11 で指定した管理者ユーザー名 (mgalarnyk など) を入力し、7 文字以上のパスワードを入力します。

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

ノート 手順 11 のインストーラー スクリプトを変更して、パスワードを追加し、追加の管理者ユーザーを追加し、ユーザー環境に Python パッケージをインストールし、プラグインをインストールすることができた可能性があります。

[サインイン]をクリックすると、JupyterHub にようこそ!

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

JupyterHub の起動後に変更を加えたい場合は、いつでも追加の conda、pip、または apt パッケージをインストールしたり、管理者ユーザーを追加/削除したりできます。

潜在的なエラー

404 ページが見つかりません

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

このエラーが発生する理由は多数あります。 「TLJH が設定されている間お待ちください」画面の後にこのエラーが表示された場合は、アドレスを別のタブにコピーするのと同じくらい簡単かもしれません。

サーバーの再起動後の「接続が拒否されました」エラー

この問題を解決する方法については、公式ドキュメントを参照してください。

このサイトにアクセスできません

AWS EC2 で JupyterHub (TLJH) をセットアップして使用する

元々は Ubuntu 22.04 を使用してこのチュートリアルを作成したかったのですが、ブラウザーに IP アドレスを入力するとこのエラーが発生しました (もちろん、エラーが発生する理由は他にもあります)。 Ubuntu 22.04 を使用する場合、これを解決する方法の 1 つは、EC2 管理コンソールのシステム ログをチェックして、curl の問題を確認し、この askubuntu 投稿のアドバイスを使用してインストーラー スクリプトを変更することです。

このチュートリアルでは、AWS で Jupyterhub (TLJH) をセットアップする方法について説明しました。 インストールのセットアップにはかなりの時間がかかり、管理にはさらに時間がかかる場合があります。 サーバーのインストールと保守に対処したくない場合は、Saturn Cloud などの製品を使用できます。 とにかく、チュートリアルについて質問や考えがある場合は、YouTube または ツイッター.

マイケル・ガラニク はデータ サイエンスの専門家であり、Parallel Domain の製品マーケティング コンテンツ リードで働いています。

Leave a Comment

Your email address will not be published. Required fields are marked *