見出し画像

AWS Cloud9 Python環境構築スクリプト

--------------------------------------------------------------------------------------
[2021/05/31] pyenvインストール修正
pyenvのバージョンアップにより、「.bashrc」設定を修正しました。
--------------------------------------------------------------------------------------

本noteは、下記ツールの特典として配布された環境構築シェルスクリプトの解説になります。

損益グラフ作成ツール「PLCreator」

【2019/07/07】追記
AWS Cloud9 Python環境構築スクリプト自体の需要があることを受けてシェルスクリプト単体でも入手できるように有料化しました。

シェルスクリプトの使い方は全て無料パートに記載していますのでPLCreator特典をお持ちの方は本noteを購入する必要はありません。

また、単なる切り売りでは心苦しいのでTwitterで反響が大きかったJupyter Labの環境構築スクリプトも特典として同梱します。

本noteを購入すると以下の2つのシェルスクリプトをダウンロードできます。

python開発 / BOT運用に必要な基本的なセットアップ
「base_setup.sh」
 ◆ インストール済パッケージ更新
 ◆ 基本的なパッケージインストール
 ◆ タイムゾーン変更(JST)
 ◆ pyenv環境設定(Pythonインストール)
 ◆ pipアップデート
 ◆ talibインストール

Jupyter Lab (Notebook)環境セットアップ
「jupyter_setup.sh」
 ◆ 「base_setup.sh」のセットアップ内容
 ◆ Jupyter Notebookインストール
 ◆ Jupyter Notebook拡張機能インストール
 ◆ Jupyter Labインストール
 ◆ Jupyter Lab拡張機能インストール
 ◆ Jupyter環境設定(パスワード、ポートetc.)
 ※ セットアップ後はJupyter Lab / Notebookどちらもお好みで選択して
  使用することができます。

以下は、AWS Cloud9のPython環境構築シェルスクリプトの使い方になります。
(解説では「setup.sh」と記載していますが、上記シェルスクリプトを使用する場合はファイル名を読み替えてください。)

AWSアカウントをお持ちでない方は、まず以下より登録を行ってください。
AWS アカウント作成の流れ


【0. 環境構築を動画で解説】

百聞は一見に如かずということで、実際の環境構築を動画にまとめました。動画の解説に沿って行えば10~20分で初期設定は完了です。
文章より動画での解説を好まれる方はこちらを参照ください。
動画は無音なので音量を気にせず視聴できます。

【PLCreator】AWS Cloud9環境構築スクリプト解説

【Jupyter Lab】AWS Cloud9環境構築スクリプト解説


【1. AWS Cloud9 インスタンス(environment)作成】

AWS Cloud9コンソールより、「Create environment」を押下します。

画像1

Name」に任意の名前を入力して「Next step」を押下します。

画像2

スペックやOSなどを選択しますが、デフォルトのままでOKです。
BOT運用などインスタンスを常時稼働させる予定の方は「Cost-saving setting」を「Never」に変更してください。
インスタンスと切断して一定時間経過すると節約のため、自動で停止してくれる設定です。
Neverにすると自動停止OFFになります。
(この設定は後でも変更可能です。)

画像3

設定内容を確認して、「Create environment」を押下します。

画像4

しばらく待つとAWS Cloud9画面が開きます。

画像5

【2. 環境構築シェルスクリプト実行】

setup.sh」をドラッグ&ドロップで「environment」ディレクトリにコピーします。

画像6

setup.sh」を開き、必要に応じて「PYTHON_VER」を変更します。
指定したバージョンのpythonをインストールします。(pyenv)

画像7

「jupyter_setup.sh」のみ---------------------------------------------------
「PYTHON_VER」と合わせてJupyterで使用するTCPポート「PORT」も必要に応じて変更してください。
(「4. TCPポート設定」にて設定するTCPポートを入力してください。)

画像8

「jupyter_setup.sh」ここまで-----------------------------------------------

ターミナル(bash)に以下のコマンドを入力し、実行してください。

bash setup.sh
または
bash base_setup.sh
または
bash jupyter_setup.sh

画像9

しばらくセットアップ処理が実行されるため、完了するまで待ちます。
(だいたい10分程度)
セットアップが完了するとインストールされたPythonバージョンが表示されます。

画像10

「jupyter_setup.sh」のみ---------------------------------------------------
最後にJupyterのログインパスワード設定を行います。
設定するパスワードを2回入力して下さい。
(パスワードはキー入力しても表示されませんので打ち間違いにご注意ください。)

画像11

入力すると完了します。

画像12

「jupyter_setup.sh」ここまで-----------------------------------------------


【3. environmentを再起動】

環境構築後に一度、「environment」を再起動します。
AWS Cloud9を閉じてください。
AWS Cloud9コンソール上部の「サービス」から「EC2」を選択します。

画像13

実行中のインスタンス」を開きます。

画像14

作成したインスタンスを右クリックし、「インスタンスの状態」から「停止」を選択します。

画像15

インスタンスの状態」が「stopped」になったら、停止済みです。
再度、AWS Cloud9コンソールを開き、該当の「environment」の「Open IDE」を押下してください。

以上でAWS Cloud9の環境構築は完了です。

Jupyterの場合、外部ネットワークからアクセスするためにTCPポート設定を行います。

【4. TCPポート設定(Jupyterのみ)】

TCPポートを設定することで外部からアクセスすることが可能になります。
本解説では特定のTCPポートを解放し、パスワード認証でJupyterアクセスができるようにしますが、セキュリティについては自己責任でお願い致します。
(よりセキュリティを高めるにはアクセス許可するIPアドレス制限やSSH接続などを導入してください。)

AWS Cloud9コンソール上部の「サービス」から「EC2」を選択します。

画像16

左サイドバーの「セキュリティグループ」を選択します。
該当インスタンスのグループを選択し、下欄「インバウンド」「編集」を押下します。

画像17

「ルールの追加」を押下し、以下の入力を行い、「続行」を押下します。
◆ タイプ  「カスタムTCP」
◆ ポート範囲「任意のポート番号」(本noteでは18080)
◆ ソース  「カスタム」「0.0.0.0/0」

画像18

左サイドバーの「インスタンス」を選択し、該当インスタンスの「IPv4パブリックIP」を確認します。

画像19

Cloud9の「environment」を開き、ターミナルに「jupyter lab」と入力します。

画像20

画像21

お使いのパソコンのブラウザにて「http://[確認したIPv4パブリックIP]:[設定したポート]/」にアクセスしてください。
例) http://54.154.219.24:18080/

パスワード入力画面が開きます。

画像22

設定したパスワードを入力してログインしてください。

画像23

以上でJupyterに外部からアクセスする設定は完了です。

Jupyterインスタンスを常時稼働させるには「Cost saving settings」を「Never」に設定し、アクセスしていないときに自動でインスタンスが停止しないようにしてください。

また、インスタンスは停止する度に「IPv4パブリックIP」が変更になります。
固定したい場合は「Elastic IP」の設定を行ってください。

「jupyter_setup.sh」ファイル内の「Jupyter Lab拡張機能」様々な拡張機能のインストールと解説リンクをコメントアウトしてありますので、必要に応じてコメントアウトを外してインストールしてください。

《以下、有料パートですが、解説はここまでで全てです。》

ここから先は

373字

¥ 500

期間限定!PayPayで支払うと抽選でお得

この記事が気に入ったらチップで応援してみませんか?