LoginSignup
3
0

More than 3 years have passed since last update.

AWSでJupyterHub (nginx)

Last updated at Posted at 2019-12-08

概要

全体概要は,AWSでJupyterHub (概要) にあるので,参照してください.

ここでは,webサーバとしてnginxを用意を用意して,のちにJupyterhubへのリバースプロキシの設定の手前までやっておきます.
ポートの制御はEC2のセキュリティグループで行います.
作業はすべてec2-userユーザで行います.(ほんとは分けたほうが良いと思うけど,今回はそれが目的ではないので割愛)

おしながき

  • nginxのインストール
  • nginxの設定
  • ポート開放

nginxのインストール

まず,インストールされていないことを確認

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$ systemctl status nginx
Unit nginx.service could not be found.
[ec2-user@ip-xxx-xxx-xxx-xxx ~]$

EC2にnginxをインストールするとき,yum install nginxとすると失敗するので,以下のコマンドを使ってインストールします.

sudo amazon-linux-extras install nginx1.12

コマンド実行後,インストールが始まり,下図のようにComplete! と出力されればインストール完了です.

nginxインストール.png

nginxの設定ファイルなどは /etc/nginx/配下にあります.
jupyterHubへの簡単なリバースプロキシの設定だけにするので,nginx.confのファイルとconf.dのディレクトリだけ触ります.

設定ファイル.png

nginxサービスの操作

nginxの起動

以下のコマンドで起動できます.

sudo systemctl start nginx

現在の状態を確認するには次のコマンドを使います.

systemctl status nginx

こんな感じで,現在の状態を出力してくれます.このログは,起動中を表すactive (running) と表示されているのが分かります.
起動.png

nginxの停止

停止させるには起動時と同じように以下のコマンドを使います.

sudo systemctl stop nginx

停止コマンドを実行した後にステータスを確認すると,下図のようになっています.
Activeinactive (dead)になっているのが分かると思います.
停止.png

nginxの確認

nginxを起動させている状態で次のコマンドを実行します.

curl http://localhost/

実行すると,HTMLがターミナルに出力されると思います.
途中で,<h1>Welcome to <strong>nginx</strong> on Amazon Linux!</h1> な感じで確認出来たらnginx自体のセットアップは出来ていることになります.

EC2で,パブリックDNSを確認して,ブラウザからhttp://ec2-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com/という感じにしてアクセスしてみます.
しばらくすると「表示できません」のように出てくると思います.
当然のことですが,httpプロトコルの80番ポートをセキュリティグループで許可していないためです.
そのため,80番ポートを開放する必要があります.

セキュリティグループの変更

前回のEC2のセットアップの時にインスタンスに紐づけてあるセキュリティグループを変更していきます.
以下のようにEC2インスタンスの詳細から【セキュリティグループ>インバウンドルールの表示】を選択します.(下図の赤枠のリンク)

セキュリティグループ.png

選択すると次のような画面になるので,【インバウンド】タグを選択して,ルールを表示します.
画像では,【タイプ】がSSH(22番ポート)しか許可していないことを表しています.また【ソース】が0.0.0.0/0となっているので,すべてのIPアドレスを許可しています.
今回は80番ポートを開放したいので,【編集】ボタンを押して編集ダイアログを表示させます.
インバウンド設定.png

ダイアログが出てくるので,【ルールの追加】ボタンを押して,現れたレコードの【タイプ】プルダウンメニューからHTTPを選択します.
そうすると,以下のように設定されると思います.【ソース】は,IPv4IPv6を同時に設定してくれます.気になる場合は,カスタムからマイIPに変更することで,操作しているIPアドレスのみ許可することが出来るようになります.
設定出来たら,【保存】ボタンを押して,設定を反映させます.
ルールの編集.png

設定はすぐに反映されるため,先ほどブラウザでアクセスに失敗していたと思うので,再度アクセスしてみます.
以下のようにブラウザに表示されれば,設定完了です.
welcome.png

まとめ

今回は,nginxを使ったwebサーバのインストール,起動を行い,HTTPプロトコルで利用する80番ポートをセキュリティグループで開放しました.
ひとまずnginxはここまでとして,jupyterHubのセットアップが終わり次第,nginxとjupyterHubをつなぐ作業をします.
ということで,次回はpython周りを準備していきます.

3
0
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
3
0