概要
自分の研究でEC2を使う機会があったので,その時にしたことをメモ書きとして残しておきます.これからEC2でPython開発を行う人の助けになればと思います.
実行環境はMac Catalinaです.
(追記:Windowsでも,同様の内容をGit Bashで行うことで,環境構築ができました.)
Step.1 インスタンスの作成
自分は無料利用枠で使用できるubuntu 18.04 LSTを使用しました.
nvidiaが提供してるイメージがありますが,そっちで試してうまくいかなかったので,1から作りました.
インスタンスタイプは無料枠でいいです.環境構築の間に高い使用料を払うことはないです.あとで重い負荷の計算がしたくなったら,その時に変更してください.
他の設定は特にしていないので,「確認と作成」って進んじゃってOKです.
pemファイルの作成などは別途調べてください.
不親切ですいません.以降pemファイルを作成済みという前提で話を進めます.
Step.2 インスタンスに接続
作成したインスタンスが実行中で,ステータスチェックで2/2のチェックに合格していたら,インスタンスに接続しようとしてみてください.
すると,
EC2 Instance Connect / セッションマネージャー / SSH クライアント
というタブがあるページに飛ぶと思います.
そのSSHクライアントのタブを開いてください.
また,ターミナルで,pemファイルが置いてあるディレクトリに移動してください.
そしてSSHクライアントのタブにある,
chmodから始まるコマンドを実行したのち,
ssi -i "~~~.pem" ubuntu@みたいなコマンドを実行してください.
作成したインスタンスに接続できると思います.
Step.3 JupyterLabのインストール
作成したインスタンスで以下のコードを実行していきます.
sudo apt update
sudo apt upgrade
sudo apt install -y software-properties-common
sudo apt-add-repository -y ppa:git-core/ppa
sudo apt install -y git
sudo apt install -y python3-pip
sudo pip3 install --upgrade pip
sudo pip3 install jupyterlab
sudo pip3 install ipywidgets
jupyter nbextension enable --py widgetsnbextension
これで,今作成したインスタンスにjupyterLabがインストールできました.
Step.4 JupyterLabに接続
ここまでできたら,一旦インスタンスを停止して,停止が確認できたら,もう一度開始してください.
Step.1同様チェックに合格したら,先ほど同様SSHクライアントで接続を行いますが,コマンドに" -L 8889:127.0.0.1:8889 "を追加してください.
ssh -i "***.pem" -L 8889:127.0.0.1:8889 ubuntu@ec2-***-***-***-***.*********.compute.amazonaws.com
接続できましたら,次に以下のコマンドをインスタンスで実行し,jupyterLabを起動してください.
jupyter-lab --ip=0.0.0.0 --port=8889 --no-browser --allow-root --NotebookApp.token=''
何もエラーが出なければ,ブラウザで
127.0.0.1:8889
に接続してみてください.立ち上げたインスタンスで起動しているjupyterLabに接続できていると思います.
最後に
何もエラーが出ないことを祈っております.
このあと,tensorflowをなどのpackageをインストールしましたが,そこでもいろいろ問題が...
現在はその問題も解決しているため,↓で聞いていただければ力になれるかと思います.(場合によっては別の記事として書きます)
読んでいただきありがとうございました.
参考にした記事など (ありがとうございました!!)
SSH先のサーバ上のjupyter notebookをローカルPCで操作する
https://sishida21.github.io/2019/12/12/remote-jupyter-notebook/
【画像で説明】DockerでAnaconda環境をつくり、コンテナの中でVSCodeを使う
https://qiita.com/komiya_____/items/96c14485eb035701e218
昔作成したdockerfileを参照して環境構築を行ったので,当時参考にした記事が他にもあるのはず... なんですが思い出せません...すいません