IT人材をお探しの方は、まずはお電話ください。担当営業がすぐにご要望にマッチした人材をご提案いたします。
tel:03-6409-6766 お急ぎの方はお電話ください

ブログTOP > IT・技術関連 > AWS JupyterHubとは?AWSでJupyterHubを構築する方法について解説

AWS JupyterHubとは?AWSでJupyterHubを構築する方法について解説

IT・技術関連 更新日:2024.09.05
エンジニア採用
AWS JupyterHubとは?AWSでJupyterHubを構築する方法について解説

JupyterHubとは?


JupyterHubとは、Jupyterノートブックを複数のユーザーで使用するための環境です。

Jupyterノートブックは、オープンソースの対話型Webアプリケーションで、Pythonなどのプログラムを記述・実行できます。ほかにも、データ分析やドキュメントの作成・共有もできるため、様々な場面で活用できるツールです。

Jupyterノートブックはシングルユーザーで使用しますが、JupyterHubを構築することでJupyterノートブックをグループ管理できるようになり、複数のユーザーで使用することができるようになります。

AWSにはAmazon EMRというコンポーネントが提供されており、その中にJupyterHubクラスターがあります。JupyterHubクラスターを作成すると、Dockerコンテナが作成されて、Jupyterノートブックに必要なコンポーネントがDockerコンテナ内で実行されます。

AWSでJupyterHubを構築する方法


AWSでJupyterHubを構築するには、Amazon EMRを使用します。Amazon EMRを使用してJupyterHubクラスターを作成すると、AWS上にDockerコンテナが作成され、このDockerコンテナ内でJupyterHubとSparkmagicのコンポーネントが実行されます。

Sparkmagicは、分散処理フレームワークのApache SparkとJupyterノートブックを連携させるためのカーネルのライブラリです。

デフォルトでインストールされるSparkmagicだけでなく、カーネルとライブラリは後から手動で追加することもできます。

JupyterHubクラスターの作成


AWSでJupyterHubクラスターを作成するには、AWS マネジメントコンソールを使用します。

JupyterHubクラスターは以下の手順で作成します。

①AWS マネジメントコンソールにサインインします。

②Amazon EMR コンソールを開きます。

③「クラスターの作成」>「詳細オプションに移動」を選択します。

④「ソフトウェア設定」で「JupyterHub」を指定して「次へ」を選択します。

⑤「ハードウェア構成」で「次へ」を選択します。

⑥「クラスターの全般設定」で「次へ」を選択します。

⑦「セキュリティオプション」でキーペアを指定して「クラスターの作成」を選択します。

AWS CLIを使用してクラスターを作成する

AWS マネジメントコンソールだけでなく、AWS CLIのcreate-clusterコマンドを使用してクラスターを作成することもできます。

クラスターを作成するには以下のコマンドを実行します。

aws emr create-cluster --name=[クラスター名] --release-label emr-5.32.0 --applications Name=JupyterHub --log-uri s3://MyBucket/MyJupyterClusterLogs --use-default-roles --instance-type m5.xlarge --instance-count 2 --ec2-attributes KeyName=[キーペア]

JupyterHubクラスターへの接続


JupyterHub の管理者やJupyterノートブックのユーザーは、JupyterHubクラスターのマスターノードにSSH接続します。

JupyterHubとJupyter Web UIにアクセスするために、デフォルトでは9443番ポートを利用しますが、設定ファイル(jupyterhub_config.py)を編集して別のポートを指定することもできます。

なお、マスターノードに接続するためには、JupyterHubクラスターが実行中である必要があります。

SSHアクセスの許可

JupyterHubクラスターに接続できるようにするには、クラスターに対してSSHアクセスを許可する必要があります。

クラスターにSSH接続を許可するには以下の手順で設定します。

①AWS マネジメントコンソールにサインインします。

②Amazon EMR コンソールを開きます。

③対象のクラスターを選択します。

④「セキュリティとアクセス」で「マスター」>「セキュリティグループ」を選択します。

⑤リストから「ElasticMapReduce-master」を選択します。

⑥「受信」>「編集」>「ルールの追加」

⑦SSHアクセスのルールを入力して「保存」を選択します。

JupyterHubの設定


JupyterHubやJupyterノートブックの設定をカスタマイズするには、JupyterHubクラスターのマスターノードの設定ファイルを編集します。

「jupyterhub_config.py」ファイルを編集することで、JupyterHubの設定を変更できます。

「jupyter_notebook_config.py」ファイルを編集することで、Jupyterノートブックの設定を変更できます。

「jupyter-sparkmagic-conf」ファイルを編集することで、Sparkmagicの設定を変更できます。

設定ファイルを編集したら、jupyterhubコンテナを再起動することで設定が適用されます。

JupyterHubでPAM 認証の使用


JupyterHubでユーザーを認証させるには、JupyterHubのPluggable Authentication Module (PAM) を使用します。

PAM認証を使用するには、2ステップの作業が必要となります。

①JupyterHubコンテナにオペレーティングシステムのユーザーを追加する

②オペレーティングシステムのユーザーをJupyterHubユーザーとして追加する

それぞれのステップの詳細を説明します。

JupyterHubコンテナにオペレーティングシステムのユーザーを追加する

jupyterhubコンテナにオペレーティングシステムのユーザーを追加するには以下のコマンドを実行します。

sudo docker exec jupyterhub useradd -m -s /bin/bash -N diego
sudo docker exec jupyterhub bash -c "echo diego:diego | chpasswd"

オペレーティングシステムのユーザーをJupyterHubユーザーとして追加する

オペレーティングシステムのユーザーをJupyterHubユーザーとして追加するには、jupyterHubの管理者パネルを使用するか、REST APIを使用します。

jupyterHubの管理者パネルを使用する場合は、以下の手順で操作します。

①SSHでマスターノードに接続して、管理者権限を持つIDでサインインします。

②「コントロールパネル」>「管理者」を選択します。

③「ユーザーの追加」を選択します。

④「ユーザーの追加」または「管理者」>「管理者の追加」を選択します。

REST APIを使用する場合は、以下の手順で操作します。

①SSHでマスターノードに接続します。

②以下のコマンドを実行します。

curl -XPOST -H "Authorization: token AdminToken" "https:$([ホスト名]):9443/hub/api/users/[ユーザー名]

AWSのJupyterHubを使用して効率的な開発をしよう!


jupyterHubをAWSに構築するということは、AWS上で開発~運用にかかわるツールやリソースがまとまることになり、効率的に開発、運用、管理ができるようになります。

設定することは多いように見えますが、オンプレミス環境でjupyterHubを構築するよりも簡単で、Dockerコンテナで提供されているため、平準化された環境を提供することができます。

一度環境を構築してしまえばあとは管理するだけなので、ぜひともAWSのjupyterHubを活用して効率的な開発作業を目指しましょう。

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニアAWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。

・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
ITエンジニアの派遣を利用したい企業様へ
ITエンジニアを派遣で採用したい企業様へ
  • 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
  • すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!

当社のITエンジニア派遣サービスは

  • 派遣スピードが速い!(最短即日)
  • 4,500名のエンジニアから貴社にマッチした人材を派遣
  • 正社員雇用も可能

こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。

無料相談のお申し込みはこちら
IT・技術関連の記事一覧へ

カテゴリから記事を探す

すべての記事一覧へ