3
4

More than 3 years have passed since last update.

AWSでUbuntuインスタンスを立ち上げ、指定したバージョンのPythonをソースからインストール、Jupyter Labの設定も

Last updated at Posted at 2021-02-28

:dvd: この記事の目的

用途に合わせたPythonの環境をすばやく構築したい、そんな時のための手順を、備忘を兼ねて書き記します。
なお、本記事執筆時点(2021/02/27)での情報となります。AWSのサービス内容は常にアップデートされるため、内容が合致しない場合はご了承下さい。

:dvd: AWSでUbuntuインスタンスを作成

本記事ではAWSの無料利用枠の範囲で設定を行います。
また、AWSのアカウント取得やログインについては割愛します。

1. AWSでインスタンスを選択し設定を行う

(1)AWS画面の左上の「サービス」をクリックし、「コンピューティング」の「EC2」をクリックします。
image.png

(2)左枠メニュー項目から「インスタンス」をクリックします。
image.png

(3)インスタンス一覧画面が表示されたら、右上の「インスタンスを起動」をクリックします。
image.png

(4)まずは、左内枠の「無料利用枠のみ」にチェックします。
image.png

(5)自分の好きなOSを選択して下さい。ここでは、「Ubuntu Server 18.04 LTS」を選択しました。
image.png

(6)「次のステップ:インスタンスの詳細の設定」をクリックします。
無料利用枠の対象であることを確認し、次へ進みます。
image.png

(7)「次のステップ: ストレージの追加」をクリックします。
image.png

(8)「次のステップ: タグの追加」をクリックします。
image.png

(9)「次のステップ: セキュリティグループの設定」をクリックします。
タグは任意で設定して下さい。
image.png

(10)セキュリティグループの設定を行います。
以下赤枠の通り、タイプに「SSH」「HTTPS」の設定を入れます。
ちなみに「カスタムTCP」のポートは"8888"Jupyter Notebookのための設定で、一般的には不要と思います。。
「確認と作成」をクリックします。
image.png

(11)内容を確認し「起動」をクリックします。
image.png

(12)既存のキーペアまたは新しいキーペアを選択し、インスタンスの作成を実行して下さい。
インスタンスの作成手続きは以上です。

2. 必要なビルドツール・ライブラリをインストールする

(1)作成したインスタンスにログインします。
SSHツールを使用し作成したインスタンスへログインします。
ここではTera Termを使用しました。ログインの仕方はAWSの一般的な手順となりますのでここでは省略します。

インスタンスのOSがUbuntuなので、ユーザ名は「ubuntu」となります。
image.png

(2)以下を実行して必要なライブラリをインストールします。

sudo apt update
sudo apt install build-essential libbz2-dev libdb-dev libreadline-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libsqlite3-dev libssl-dev zlib1g-dev uuid-dev tk-dev

:dvd: バージョンを指定してPythonをソースからインストール

1. Pythonのソースをダウンロードする

(1)Pythonの公式サイトへアクセスします。
AWSインスタンスではなく、ローカルPC端末のブラウザでアクセスします。

:desktop: Python公式サイト
https://www.python.org/

(2)Pythonサイトのメニュー「Download」を選択し、さらに「All releases」をクリックします。
image.png

(3)ソースの一覧から欲しいバージョンのソースを選択しクリックします。
ここでは「Python 3.9.2」を選択しました。
image.png

(4)ソースのURLを取得します。
ソースの選択画面で、欲しいソースのリンクを右クリックしてURLを取得します。
ここでは「Gzipped source tarball」を選択しました。
image.png
右クリックし、「リンクのアドレスをコピー」します。
image.png

(5)AWSインスタンスのプロンプトで、取得したURLからソースをダウンロードします。
プロンプトでは以下のように実行してソースを取得します。

wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz

実行するとソースをダウンロードします。
image.png

(6)ソースを解凍します。
取得したファイルを以下のコマンドで解凍します。

tar -xvf Python-3.9.2.tgz

2. Pythonをインストールする

(1)解凍後、以下のコマンドでPythonフォルダへ移動します。

cd Python-3.9.2/

(2)以下の各コマンドを順次実行し、インストールを行います。

./configure
make
sudo make install

途中でエラーが発生せず、最後に「Successfully ...」と表示されたら完了です。
image.png

(3)pipを使用するため、以下のコマンドでpipライブラリをインストールします。

sudo apt install python-pip

もし上記のコマンドでpipのインストールができない場合は、以下も試してみて下さい。

python -m pip install pillow # ... (※)

上記(※)で以下のメッセージが出た場合、
image.png
指示通り、次のコマンドで更新を行います。

/home/ubuntu/Python-3.9.2/python -m pip install --upgrade pip

image.png
さらに、/home/ubuntu/.local/binにパスを通します。

PATH=$PATH:/home/ubuntu/.local/bin

以下、pipがインストールされました。
image.png

(4)以下のコマンドでPythonのバージョンを確認します。
想定通りのバージョンが表示されればOKです。

./python -V

image.png

(5)最後に、pythonコマンドのパスを設定します。
ここではインストールしたpythonのディレクトリが以下ですので、
image.png

次のようにコマンドを実行します。

sudo ln -s /home/ubuntu/Python-3.9.2/python /usr/bin/python

上書きエラーが出る場合は、強制実行オプション[-f]を付けて実行します。

以上でインストールは完了です。
Pythonコマンドでバージョンの確認を行って下さい。

:dvd: Jupyter Labのインストール

1. Jupyter Labをインストールする

Jupyter Labは以下のコマンドでインストールします。

pip install jupyterlab

以下のようにダウンロードとインストールが実行されます。
image.png
エラーが出ず終了すればOKです。

2. ブラウザでJupyter Labにアクセスするための設定

AWSインスタンス上にJupyter Labをインストールした場合は、Jupyter Labを実行した後、例えば自宅などの外部ネットワークからアクセスすることになります。この場合、以下のような設定が必要になります。

(1)Jupyter Labの設定ファイルを作成します。
以下のコマンドを実行して下さい。 /home/ubuntu/.jupyter/フォルダ配下に「jupyter_lab_config.py」というファイルが作成されます。

jupyter lab --generate-config

(2)設定ファイルを修正します。
viなどのエディタを使用して、上記の設定ファイルを開きます。

(3)受信するIPアドレスを修正します。
以下の段落の「c.ServerApp.ip = 'localhost'」をコメントアウトし、IPアドレスとして'0.0.0.0'を設定します。
image.png
↓修正後
image.png

(4)内部プロセスがブラウザを起動しようとする処理を停止します。
Jupyter Labを起動すると、内部プロセスにおいてブラウザを起動しようとします。
この処理は不要なので、設定をFalseにします。

以下では、「c.ServerApp.open_browser = False」がコメントアウトされていたところを、#記号を削除して設定を有効にしました。
image.png

(5)設定が終わったら、保存して閉じます。

3. Jupyter Labを起動する

以下のコマンドでJupyter Labを起動します。

jupyter lab --allow-root

無事起動しました。
image.png

4. Jupyter Labにアクセスする

Jupyter Labにアクセスするには、上記の画像の赤枠部分のURLを使用します。
ただし、このURLのドメイン部分はローカルドメインなので、AWSの「パブリック IPv4 DNS」などに置き換える必要があります。

「パブリック IPv4 DNS」とは、インスタンスの詳細画面の以下の赤枠部分のドメインです。
image.png

ローカルPCでブラウザを開き、上記のURL及びパブリック IPv4 DNSから成るURLを入力し、画面を表示することで、Jupyter Labの画面を表示することができます。

<注意>
・プロトコルはhttpのままですので、セキュリティを確保するためにhttpsに変更することをお薦めします。
・AWSインスタンスのセキュリティグループにポート:8888の設定を入れておく必要があります。
・Jupyter Labへアクセスするための認証がかかっていない状態です。Jupyter Labの認証機能を有効にすることをお薦めします。

:dvd: ご意見など

ご意見、間違い訂正などございましたらお寄せ下さい。

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