Python Python開発環境構築

【AWS EC2】Linux仮想マシンでJupyter Notebook環境を構築する


本日はAWSにてJupyter Notebookが使用可能なLinux仮想マシンを構築する初歩的な方法を説明します。

本記事を手順ごとに追えば簡単にAWS上に仮想マシンを構築することができます。

これからの世の中クラウド活用の機会がどんどん増えていくことが想定されるので、ぜひ本記事を参考にクラウド生活の第一歩を踏み出してみてください!


脳みそ男

AWSでの仮想環境を構築したい!けど難しいんでしょ。。?



自分のパソコンしょぼいからプログラミングには厳しいなぁ。けど買い換えるお金もない。。

脳筋太郎




本記事ではそんな疑問にお答えします。





こんな方におすすめの記事

  • AWS上にLinux仮想マシンを構築したい方
  • クラウド環境でどんなことができるのか知りたい方
  • 機械学習を学んでいて将来的に計算リソースが必要とされる方


注意

クラウドのUIは頻繁に更新されていくので今回のブログの内容と異なる部分もあるかもしれませんが、大まかな流れは変わりません。
また今回は簡単のために細かいセキュリティゲートの設定やVPC/サブネットの設定は行っておりません。
漏洩しては困るデータを扱う際は別途セキュリティ対策を考慮してください。


AWS EC2でLinux仮想マシンを構築する方法


それでは順を追ってAWS上にJupyter Notebook使用可能なLinux仮想マシンを構築する方法を説明していきます。

今回はこちらの設定のEC2インスタンスを構築します。

以下の設定であればAWS初回登録後1年間は起動しっぱなしでも無料で利用できます。

設定項目設定値
仮想サーバリージョン東京
マシンイメージUbuntu, 20.04 LTS
インスタンスタイプt2.micro(*1)
サーバー接続開放ポートSSH/HTTP
VPC ネットワーク/サブネットワークデフォルト
ストレージ8GB
IPアドレス動的IPアドレス(*2)

(*1) 月750時間まで1年間の無料枠

(*2)インスタンスを停止、再度起動するとIPアドレスが変わります。AWSで固定された静的IPアドレスを設定したい場合はElastic IPアドレスの導入を検討ください。


1. AWSのアカウントを作成する


まずはAWSのアカウントを作成しましょう!

以下のサイトにアクセスして登録を行ってください。アカウントの作成は無料です。



2. EC2メニューを選択/起動


様々なサービスがあり迷子になりがちですが、上部に検索ウィンドウがあると思うので「EC2」で検索しましょう。

ちなみにEC2のECはElastic Compute Cloudを意味します。


EC2を選択したらインスタンスの起動を選択しましょう!


3. マシンイメージ・インスタンスタイプの設定


次にマシンイメージ、インスタンスタイプを設定します。

ここは構築する仮想マシンの性能を決定するところになるので、非常に重要です。ただ、クラウド環境で構築する仮想マシンのいいところは

行いたい解析に対してスペックが足らない、、

SSD/HDDの容量が圧迫してきたー。

なんてときにインスタンスタイプ/ボリュームを変更することですぐにスペックと容量の更新をすることができる点にあります。もちろん高スペック・大容量に対してはそれなりのコストがかかるのでその点は要注意です。

まずはマシンイメージから設定します。今回は上記で述べたようにUbuntu, 20.04 LTSを使用します。

インスタンスタイプはあとから変更可能ですが、マシンイメージはあとからは変更できない点には注意してください。


次にインスタンスタイプを設定します。

今回はトライアルなのでAWSで無料枠で使用できるインスタンスタイプt2.microに設定しましょう。

無料利用枠の対象と書いてあるので分かりやすいですね。


4. インスタンスとストレージの設定


次にインスタンスの設定とストレージの設定を行います。

次にインスタンスの設定を行っていきます。

今回は簡単のためにVPC/サブネットはデフォルトの設定のままとします。セキュリティを考慮する際はこちらの設定が重要になってきますので注意ください。


つぎにストレージのサイズを決定します。こちらもデフォルトの8GBに設定します。

このストレージサイズもインスタンスタイプ同様、後から変更が可能です。

ただし、ストレージを縮小させるのは複雑なステップが必要になるのでとりあえずは必要とされる最小のサイズに設定しておくことをおススメします。


5. セキュリティグループの設定


次にセキュリティグループを作成します。

セキュリティグループは非常に重要です!今回はWebブラウザ上でJupyter Notebookが使用できるように設定していきます。

設定のステップは以下です。

  • セキュリティグループの名前を設定(他の仮想マシンを起動したときも使いまわせるので判断が付くような名前が良いです。今回はjupyter_portとしています。)
  • Jupyter Notebookを開くことができるようにポート8888を開ける
  • 自分のIPアドレスからの制限に制限する

IIPアドレスの接続制限は以下から自身のIPアドレス(XX.XXX.XXX.XXX)を取得して

XX.XXX.XXX.XXX/32

の形で入力しましょう!





6.作成インスタンスの確認とキーペアの作成


仮想マシン作成まであと一息です!今までの設定を確認しましょう。

問題なければ最後にキーペア(公開鍵と機密鍵)を作成します。

公開鍵と秘密鍵ってなんやねんって感じかと思いますが、簡単に説明すると公開鍵を用いて通信が暗号化され、秘密鍵を使用してのみ暗号を解読できるという仕組みです。

この仕組みをもって安全な接続を可能にしています。

ここでキーペアをダウンロードすると公開鍵が自動的に作成されたインスタンス内に保存され、手元のローカルマシンに秘密鍵がダウンロードされます。

ダウンロードは一度だけしかできないので注意してください!

このダウンロードされた秘密鍵はローカルの自分のみがアクセスできる環境に保存しましょう。メールでの共有やクラウドストレージ上に置くのもおススメはしません。

秘密鍵が流出すると誰でも作成したインスタンスにアクセス可能になってしまいます。

秘密鍵のダウンロードが完了したらインスタンス作成を押しましょう。今回はキーペアの名前をjupyterに設定したので手元にはjupyter.pemという秘密鍵がダウンロードされます。

これで少し待てば無事がAWS上にLinux仮想マシンを作ることができるはずです!


仮想マシン上でJupyter Notebook開発環境を構成する


それでは作成した仮想マシン上にJupyter Notebookの開発環境を構築していきます。

まずはご自身の作成した仮想マシンが正しく構成されていることを確認し、同時にIPアドレスも確認しましょう。

1. 仮想マシンのIPアドレスを確認する

上記のステップでインスタンスの作成が終了したらインスタンスに移動してください。

Nameのタグで設定した名前のLinux仮想マシンができているはずです。

そこでパブリックIPv4アドレスを確認します。これがアクセスに必要な作成した仮想マシンのIPアドレスになります。


2. 仮想マシンへSSH接続する


WindowsとMacではそれぞれSSH接続を行う手法が異なります。接続手法はご自身の環境に応じて以下を参照ください。

WindowでSSH接続する場合


Windowsで接続する場合はTera Termなどのソフトを使います。

ダウンロードしたら以下のTera Termの接続画面で上記で確認した作成した仮想マシンのIPアドレスを指定します。


OKを押して次に進んだ後、特に設定していなければユーザー名をubuntu、仮想マシン作成時にAWSからダウンロードした秘密鍵を指定します。

これでOKを押すと作成したLinux仮想マシンにSSHで接続することができます。


MacでSSH接続する場合

MacでSSH接続する場合はwindowsよりも簡単です。

ターミナルを開いて以下を入力します。秘密鍵の名称、仮想マシンのIPアドレスはご自身の環境に合わせて適宜変更ください。

入力

#秘密鍵保存場所に移動
$cd <秘密鍵を保存した場所>

#秘密鍵のパーミッションを変更
$chmod 600 mykey.pem

#SSHコマンドで仮想マシンへ接続
$ssh -i jupyter.pem ubuntu@<作成仮想マシンのIPアドレス>


3. 仮想マシンへのJupyter Notebook環境のインストールと設定



無事作成した仮想マシンにSSH接続ができたらあと一歩です!最後にJupyter Notebookをインストールしましょう!

まずはLinuxのおまじないの後にJupyter-labをインストールするためにpipを入れます。

仮想マシンにSSH接続した状態で以下を入力してください。

入力

#sudoとpipのインストール
$ sudo apt update
$ sudo apt install python3-pip -y

次にJupyter-labをインストールし、コマンドで起動ができるようにパスを通します。

入力

#Jupyterのインストール/パスの追加
$ pip3 install jupyterlab
$ export PATH=$PATH:~/.local/bin

次にjupyter Notebookの設定ファイルを作成、接続するためのパスワードを設定しましょう。

以下を実行するとパスワードの入力を求められるのでコンソール上で入力ください。

入力

#Jupyterの設定ファイルの作成
$ jupyter notebook --generate-config

#Jupyterのサクセスパスワード設定
$ jupyter notebook password


これでインストールしたJupyter Notebookの最低限の設定は終わったので実際に接続できるか試しましょう。

以下のコマンドでJupyter-labを立ち上げます。

入力

#Jupyter Notebookを開く
$ jupyter-lab --ip='0.0.0.0'


上記をコンソールに入力すると作成したLinux仮想サーバー上にJupyter-labが立ちあがります。

ブラウザを開いて以下のアドレスにアクセスしてみましょう!ログイン画面が出てくるはずです。

ログイン画面で上記で設定したパスワードを入力すればJupyter-lab内に入れるのでJupyter Notebookを選択しましょう。

開発画面に移行できると思います!


まとめ


本日はAWS上のLinux仮想マシンにJupyter Notebookの開発環境を立ち上げる一通りのステップを解説しました。

今回の方法にプラスしてpythonの仮想環境もインストールすればご自身のpython開発環境をAWS上に構築でます。

計算コストの高い機械学習を行いたいと思った場合、AWS上でインスタンスのタイプを変更するだけですぐに最適な開発環境に移行できます。

常にPCを動かし続ける必要がなければコスト自体もコントロールできるので、これからはクラウド上に自分のメイン環境を移すのも選択肢のひとつかもしれませんね!


AWS上での開発のためにもっと詳しくPythonの使い方を勉強したいと思ったそこのアナタ!pythonを用いたコーディング学習にはData Campがおススメです!

詳細に関してはこちらで紹介しています。↓

こちらもぜひ参考にしてください。


それでは本日は以上です!

-Python, Python開発環境構築