はじめに
EC2上にDockerをインストールして、そこでJupyter開発環境を立てます。
EC2の初期設定
まず新しくEC2インスタンスを作成します。最初にインスタンスを立てると、キーペアが発行されるので、そのpemファイルのあるディレクトリに移動します。
次に、アクセス権限を設定します。
ここで初めて、最初に立てたインスタンスに接続します。
この[PUBLIC DNS NAME]はec2-**-**-**-***.ap-northeast-1.compute.amazonaws.comのような形をしています。また、接続の途中でなにやら質問されますが、"yes"と答えましょう。こうして無事サーバーに入れるはずです。
EC2インスタンス上でのDockerインストール
立てたEC2インスタンス上でDockerをインストールします。この辺は、なにをやっているかわからなくてもとりあえず実行しておけばいいでしょう。まず、パッケージのアップデートをしておきます。
次にDockerをインストールします。
無事Dockerがインストールされたら、以下のコマンドで開始します。
いちいち"sudo service"と頭につけるのは面倒なので、ここを参考に"docker ..."で済むようにしておきましょう。
EC2上へのDockerイメージをダウンロード
Dockerがインストールできたら既製のイメージをダウンロードします。今回はJupyter notebookの環境構築をするので、それに見合ったイメージをダウンロードします。本格的なのはdatascience-notebookですが、重いです。手軽なのはbase-notebookです。何れにせよ、以下のコマンドでダウンロードできます。もちろんこれは、インスタンス上で実行します。
以下のコマンドで、ちゃんとダウンロードできたか確認できます。
EC2上のDockerコンテナへのローカルからのアクセス
その上で、このイメージからコンテナを作成します。
そうするとbashに入るので、そこで以下を実行します。
最後にインスタンスのセキュリティグループを設定します。先ほど指定した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/