Jupyter NotebookをAnacondaを使いAWS上に構築
AIとPython
昨今テクノロジーの発達によりAIへの関心が高まりました。それに伴ってAIと関連が深いプログラミング言語、Pythonの関心も高まり近年では人気が高いプログラミング言語です。
そのPythonを実行するためのツールにJupyter Notebookというツールがあります。
※このJupyter NotebookはもともとIPython Notebook (アイパイソン・ノートブック) と呼ばれてPythonを実行するためのツールでしたが今はいろいろな言語に対応させることができます。
Jupyter Notebookとは
Jupyter Notebook (ジュピター・ノートブック) は、プログラムを実行し、実行結果を記録できるツールで、数値計算・データ解析を行うときによく利用されます。普通のプログラムにも利用可能です。
プログラム内容や実行結果はnotebookという形式のファイルに保存され、プログラムやちょっとした繰り返し作業は、Jupyter Notebookを使って作業も可能です。
このようにJupyter Notebookを利用することで数値計算・データ解析するプログラムを実行し、実行結果を記録できるツールなのですがAWSにJupyter Notebookを構築してリモートで使用することも可能になります。この記事ではAWSにJupyter Notebookを構築するまでの流れを簡単に紹介し、その中でAWSの簡単な説明とインストールが必要なPython関連ツールをまとめてインストールできる「Anaconda」について紹介していきたいと思います。
AWSとは
まず簡単にAWSについて紹介したいと思います。AWSはAmazonが提供しているクラウドコンピューティングサービスで、そのサービスの種類は100以上あります。このAWSを利用することにより、Amazonに管理されているサーバーで仮装サーバーを作成できたり、データの保存ができるようになります。今回選択するサービスはAWSの中のEC2というサービスです。
Jupyter Notebookを構築するまでの流れ
まず、AWSアカウント取得しAWSインスタンス作成します。
次にサーバへの接続
その後Anacondaをインストールします。
先にこのAnacondaとはどのようなソフトウェアなのかも紹介します。
Anacondaとは
通常Pythonを使う場合はPython本体をインストールした後に、必要なライブラリ(パッケージ)を追加インストールしていく必要があります。
なのでPythonでの開発環境を整えるのは開発初心者にとってはややハードルが高めです。
しかしAnacondaを利用することによりPython本体はもとより、Pythonでよく利用されるライブラリ(パッケージ)を最初からまとめて入れることができます。
Python本体やライブラリをそれぞれインストールするよりも環境が確実に完成させることができます。
しかし、環境構築になれているエンジニアにとってはAnacondaを利用することで、独自のPython環境を構築できなくなるデメリットもあるので注意が必要です。
手早く環境構築をしたい場合はAnacondaを利用し一括で開発環境を整える、独自のカスタマイズをしつつ開発を進めたい場合は他の方法で開発環境を整えるという選び方で良いでしょう。
ここからAWS上にJupyter Notebookを構築するまでの流れに戻り、Anacondaのインストール後仮想環境作成をします。
conda create -n py37 python=3.7.1 anaconda
というコマンドを入力することで仮想環境を作成することができます。
その後notebookやデータを保管するディレクトリを作成などのJupyter Notebook設定をし仮想環境をアクティ化、jupyterのログインパスワード、Jupyter Notebookのコンフィグを設定をしたのち
$ jupyter notebook --ip='0.0.0.0' --allow-root &
というコマンドでjupyterを起動します。
最後にAMIからサーバのイメージを作成し、AMIを元に好きなスペックでサーバを立て直し完了です。
以上の工程でAWSにjupyterを構築することができます。
最後に
この記事ではPythonを実行するためのツール、Jupyter NotebookについてとJupyter NotebookをAWS上で構築するまでの手順、Pythonでよく利用されるライブラリ(パッケージ)を最初からまとめて入れることができるAnacondaについて紹介させていただきました。Jupyter Notebook数値計算・データ解析を行うことができるので、数値計算・データ解析などを取り入れたプログラムについて興味があるのであれば参考にしてみてください。