AWS
Ubuntu
EC2
Jupyter
Anaconda

AWSのEC2を使ってJupyterをブラウザから使えるようにする方法

イントロ

初心者のため、いろんなサイトを見ながらやっているうちにつまったことがあったのでメモ。

AWSのアカウントを作成からEC2インスタンスの作成

下のページを参考にさせていただきました。
https://qiita.com/Arashi/items/629aaed33401b8f2265c
ちなみにpemファイルは接続する位置に置いておく必要があります。
もし、WindowsでC:\Users\userから接続するときにはuserフォルダの中にpemファイルを置いてください。

Anacondaのインストール

下のページを参考にさせていただきました。
https://qiita.com/Salinger/items/c7b87d7000e48be6ebe2
https://qiita.com/cafedrip/items/f944f72016ced4ff4361
現時点での最新バージョンは
https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.shのようなので、
wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
で取得して実行するといいのかと思われます。

ちなみに~/.jupyter/jupyter_notebook_config.pyの設定をするときはLinuxの黒い画面テキストエディタで編集します。vimが使えない人は下記ページを参考にしてみてください。
http://www.sejuku.net/blog/5570
基本的には、そのままの状態だと書き込めないので「i」を押してINSERTモードにして編集したあとに「Esc」を押して「:wq」(write quitの略だと思ってます)で保存できます。
INSERTモードじゃないときに「/」を押して検索したい語句を打ち込むと検索もできるので便利です。

AWSのEC2インスタンスへの外部からのアクセスを許可する

下記ページを参考にさせていただきました。
https://www.ipentec.com/document/document.aspx?page=amazon-ec2-add-rule-to-security-group
EC2インスタンスの初期設定では、Jupyterが起動するポート8888(もしくはjupyter_notebook_config.pyc.NotebookApp.port = XXXXで指定したポート番号)は外部からのアクセスができないようになっているようなので、外部からのアクセスを許可する設定に変更します。

Jupyterを起動する

$ jupyter notebook &
で起動して
http://[サーバのホスト名 or IP]:8888/
でブラウザからアクセスできます。
この時、前に起動に失敗したりしていると8888がすでに使用されていて8889等で起動してうまくいかない場合があります。
その場合、
https://hydrocul.github.io/wiki/commands/netstat.html
で使用しているプロセスを特定し、停止しても問題なさそうであればkill -9 プロセス番号で8888を開放して再度Jupyterを起動してみてください。

初心者メモ

①LinuxはDebian系(Ubuntuとか)とRedhat系(CentOSとか)でコマンドが違うらしい。
最近はapt-getではなくaptが推奨されているという話。
http://sig9.hatenablog.com/entry/2015/06/21/081407
https://qiita.com/pocket8137/items/e8370697927220d3fc3c
②Linuxで書いてある手順通りにやってできない場合のよくあるエラー
-Pathが通っていない
-インストールするものが足りていない(もともと使用している環境が違うから)
-パッケージをupdateとかupgradeしていない
-なぜか再インストールしたらうまくいくこともある
-なぜか再起動したらなおることもある