學習目標
- GCP VM 執行個體環境設定
- 安裝 Anaconda Distribution
- 設置 Jupyter Notebook Service
- 瀏覽器連接 Jupyter Notebook
GCP VM 執行個體環境設定
● 先在 Google Cloud Platform (GCP) 上建立 Computer Engine - VM 執行個體。
● 名稱:輸入執行個體名稱作為識別。
● 開機磁碟:選用 Ubuntu 18.04 LTS。
● 防火牆:勾選「允許 HTTP 流量」及「允許 HTTPS 流量」。讓我們可以用瀏覽器連接 Jupyter Notebook Service。
● 管理、安全性、磁碟、網路、單獨租用:網路 --> 網路介面 --> 外部 IP --> 建立 IP 位址 --> 輸入名稱 --> 按下「預約」(GCP 會分配靜態外部 IP 給您,讓瀏覽器連線,可能產生額外費用)。
● 按下「建立」等 VM 執行個體建立好。
● 建立好的 VM 執行個體就已啟動,我們使用的環境是 Ubuntu 18.04 LTS,注意這是 Server 版。
● 確定靜態外部 IP 已設定。
Source: Google Cloud Platform (GCP) |
如果沒有,到「VPC 網路」-->「外部 IP 地址」,將 IP 從 "臨時" 改為 "靜態",GCP 會要求輸入自訂靜態 IP 的名稱。這樣即使 VM 執行個體重新啟動,外部 IP 也不會改變。
Source: Google Cloud Platform (GCP) |
Source: Google Cloud Platform |
● 設定防火牆規則:同樣在「VPC 網路」-->「防火牆規則」,點選「建立防火牆規則」。
Source: Google Cloud Platform (GCP) |
Source: Google Cloud Platform (GCP) |
● 名稱:輸入自訂防火牆規則名稱。
● 目標:改選「網路中的所有執行個體」。
● 來源 ip 範圍:填入 "0.0.0.0/0"。
● 通訊協定和通訊埠:選擇「指定的通訊協定和通訊埠」,勾選「tcp」輸入 "5000" (可更改)。
● 按下「建立」,安裝 Jupyter Notebook Service 需要的 VM 執行個體環境設定就完成了。
● 回到「VM 執行個體」頁 --> 連接 SSH:選擇在瀏覽器視窗中開啟,建立 SSH 連線。
安裝 Anaconda Distribution
接下來要安裝 Anaconda Distribution (Anaconda 套件包)。這個套件包已包含了 Jupyter Notebook,關於 Anaconda Distribution 的介紹,您可以參考《Python 超強套件包 - Anaconda Distribution》。
本篇介紹的安裝方式是針對 GCP VM 執行個體 Ubuntu 18.04 LTS 環境:
● 取得 Anaconda installer archive。到 https://repo.anaconda.com/archive/ 選擇您要安裝的 Anaconda installer 版本。這裡有新舊及不同平台各種版本,注意選擇正確的版本。在您要的版本上按滑鼠右鍵複製連結 (Copy link address)。
Source: Google Cloud Platform (GCP) |
● 移動至您想暫存安裝檔的目錄 (安裝完成就可以刪除安裝檔了),例:/tmp,執行:
cd /tmp # 移動至暫存安裝檔的目錄● 以 wget 取回安裝檔,注意 https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh 要用您剛剛複製的 archive 連結取代,執行:
wget -b https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh-b 參數會讓下載在背景中執行,下載的結果會記錄在同目錄的 “wget-log” 檔案中。
● 開始安裝 Anaconda installer archive,注意 Anaconda3-2019.03-Linux-x86_64.sh 要換成您下載的 archive 檔名,執行:
bash Anaconda3-2019.03-Linux-x86_64.sh安裝開始後會有一串的確認問題,輸入 yes,按下 Enter 即可。
● 啟動 Anaconda 環境,執行:
source ~/.bashrc● 確認 Anaconda 安裝完成,執行:
conda list # 列出 Anaconda 安裝的套件清單 conda -V # 檢查 conda 版本 conda update conda # 更新 conda (不一定要執行)
設置 Jupyter Notebook Service
接著要設置 Jupyter Notebook Service,再啟動 Jupyter Notebook Service。
● 查看 ~/.jupyter/jupyter_notebook_config.py 設定檔是否存在?執行:
ls ~/.jupyter/jupyter_notebook_config.py● 如果存在,跳到下一步編輯 jupyter_notebook_config.py;如果不存在,則執行:
jupyter notebook --generate-config # 產生 jupyter_notebook_config.py● 編輯 jupyter_notebook_config.py,執行:
vi ~/.jupyter/jupyter_notebook_config.py # 使用 vi 或 nano 編輯都可以● 複製下列設定內容,貼入 jupyter_notebook_config.py 第一行下方,<port number> 要和防火牆規則中設定的 tcp 相同:
c = get_config() c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.port = <port number> # port number=防火牆規則中設定的 tcp:5000貼好的 jupyter_notebook_config.py 會像下圖,完成後存檔離開 vi。
● (非必要) 設定 Jupyter Notebook 登入密碼,執行:
jupyter notebook password # 設定 Jupyter Notebook 登入密碼這動作會為 Jupyter Notebook 設定登入密碼。因為 Jupyter Notebook Service 是一個可由瀏覽器登入的服務,任何知道您外部 IP 的人都能訪問,設定登入密碼會較為安全。不設定密碼的話,Jupyter Notebook 會在每次啟動的時候,設定一個 token 在連線 URL 中,必須有該 token 才能連線成功。也就是密碼的意思了,只是每次都不同。
啟動 Jupyter Notebook Service
以上的設定完成後,以後要使用 jupyter notebook,先啟動 Anaconda 環境:
● 啟動 Anaconda 環境,執行:
source ~/.bashrc● 再啟動 Jupyter Notebook Service,執行:
jupyter notebook --ip=0.0.0.0 --port=5000 --no-browser # --port=前述的<port number>
瀏覽器連接 Jupyter Notebook
開啟瀏覽器,輸入前述步驟取得的 GCP 靜態外部 IP 與 jupyter_notebook_config.py 中設定的 <port number>,如下的 URL 登入 Jupyter Notebook:
http://<GCP 靜態外部 IP>:<port number> # 登入 Jupyter Notebook就會看到 Jupyter Notebook 的登入畫面,輸入設置的密碼即可登入。
關閉 Jupyter Notebook Service
● 先將 Jupyter Notebook 瀏覽器關閉後,回到啟動 Jupyter Notebook Service 的 SSH 視窗,按下 Ctrl-c,服務會詢問是否確認關閉 notebook server?
● 按 y 確定關閉,再按下 Enter,Jupyter Notebook Service 就關閉了。
參考資料 (References):
😺 電癮院:GCP教學:將臨時外部IP位址改為靜態IP位址
😺 Amulya Aankul:Running Jupyter Notebook on Google Cloud Platform in 15 min
😺 Lisa Tagliaferri:How To Install Anaconda on Ubuntu 18.04 [Quickstart]