LoginSignup
9
7

More than 5 years have passed since last update.

EC2+Docker+Jupyterの初期設定

Last updated at Posted at 2019-01-22

はじめに

EC2上にDockerをインストールして、そこでJupyter開発環境を立てます。

EC2の初期設定

まず新しくEC2インスタンスを作成します。最初にインスタンスを立てると、キーペアが発行されるので、そのpemファイルのあるディレクトリに移動します。
cd path

次に、アクセス権限を設定します。
chmod 400 [KeyPair名].pem

ここで初めて、最初に立てたインスタンスに接続します。
ssh -i [KeyPair名].pem ec2-user@[PUBLIC DNS NAME]

この[PUBLIC DNS NAME]はec2-**-**-**-***.ap-northeast-1.compute.amazonaws.comのような形をしています。また、接続の途中でなにやら質問されますが、"yes"と答えましょう。こうして無事サーバーに入れるはずです。

EC2インスタンス上でのDockerインストール

立てたEC2インスタンス上でDockerをインストールします。この辺は、なにをやっているかわからなくてもとりあえず実行しておけばいいでしょう。まず、パッケージのアップデートをしておきます。
sudo yum update -y

次にDockerをインストールします。
sudo yum install -y docker

無事Dockerがインストールされたら、以下のコマンドで開始します。
sudo service docker start

いちいち"sudo service"と頭につけるのは面倒なので、ここを参考に"docker ..."で済むようにしておきましょう。

EC2上へのDockerイメージをダウンロード

Dockerがインストールできたら既製のイメージをダウンロードします。今回はJupyter notebookの環境構築をするので、それに見合ったイメージをダウンロードします。本格的なのはdatascience-notebookですが、重いです。手軽なのはbase-notebookです。何れにせよ、以下のコマンドでダウンロードできます。もちろんこれは、インスタンス上で実行します。
docker pull base-notebook

以下のコマンドで、ちゃんとダウンロードできたか確認できます。
docker images

EC2上のDockerコンテナへのローカルからのアクセス

その上で、このイメージからコンテナを作成します。
docker run -it -p [EC2のポート番号]:8888 base-notebook

そうするとbashに入るので、そこで以下を実行します。
jupyter notebook

最後にインスタンスのセキュリティグループを設定します。先ほど指定したEC2のポート番号をHTTPか何かで解放しましょう。

ローカルのブラウザから[インスタンスのグローバルIP]:[EC2ポート]に接続できればOKです。インスタンスのグローバルIPはec2-**-*-*-*-*************.ap-northeast-1.compute.amazonaws.comのようなものです。パスワードについては、ターミナル上で"token=*****************"のような形でどこかに載っているので、それをコピペしましょう。

参考URL

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/docker-basics.html
https://wisteriasec.wordpress.com/2017/03/11/ec2docker%E3%81%A7jupyter-notebook%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99-part2/

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7