《Python – 建立 Jupyter Notebook 雲端開發環境》上篇:DigitalOcean Droplet 設定

DigitalOcean 的 Droplets 是用 Linux 作業系統建立的虛擬機器 (Virtual Machine, VM),對於多數只熟悉 Windows 的使用者來說,如果想要使用 DigitalOcean 的 Droplet 建立 Jupyter Notebook 開發環境,以便在進行 Python 開發的時候不受桌機或筆電的規格限制,或是可以長時間運行程式 (例如爬蟲、蒐集資料等),通常在 Droplets 的設定、Linux 的操作以及 Jupyter Notebook 的安裝會是最大的入門障礙。

相關應用包含了:

  • 爬蟲、蒐集資料
  • 自動化演算法、程式交易

在這個系列文章中,我們將按步驟說明需要準備的工具:

  1. 為了能在 Window 上操作、設定 Droplet,需要安裝 PuTTY 終端控制台、取得加密金鑰、使用 SSH 連線,才能安全的傳輸操作命令。
  2. 在 DigitalOcean 建立符合需求的 Droplet。
  3. Droplet 上安裝 Jupyter Notebook 的準備工作
  4. 安裝 Jupyter Notebook,並開始使用。

本文內容包含上述的 1 與 2,加密金鑰的準備以及建立 Droplet 雲端主機。

準備 SSH 連線的加密金鑰

為了能在 Window 上操作、設定 Droplet 雲端主機,需要安裝 PuTTY 終端,利用 PuTTY 的金鑰產生器取得金鑰,後續透過 SSH 連線時才能安全的傳輸操作指令。

安裝 PuTTY 終端

首先,到 PuTTY 官方網站的下載頁面。

putty-official-site

Package files 中找到適合自己電腦作業系統版本的 *.msi 檔案,下載並跟著安裝精靈 (Installation Wizard) 完成安裝。

註:檢查電腦的作業系統是 32 還是 64 位元,安裝相對應的 MSI 檔案。

install-putty

開始安裝 PuTTY

complete-install-putty

完成安裝

完成安裝之後,從電腦的開始選單中找到並執行 PuTTYgen 程式。

putty-and-puttygen

產生公開金鑰 Public Key

從 PuTTY Key Generator (PuTTYgen) 的介面中,可以選擇要產生的金鑰種類。這裡我們使用預設的 RSA 演算法並按下 Generate 按鈕開始產生金鑰。

由於金鑰的產生方式仰賴於使用者將滑鼠放置在介面中空白處,並隨意移動滑鼠指標的方式,根據移動的隨機性與亂度、他人難以重現的軌跡,製作出金鑰。

持續移動滑鼠直到完成度到達 100%。

puttygen-generate-key

完成後就能在文字框中看到 Public Key 了。先將 Public Key 複製貼到電腦的記事本中,待後續設定 DigitalOcean Droplet 的加密連線 SSH 時使用。

puttygen-generate-key-done

註:文字框中無法使用 Ctrl + A 選取所有文字。記得確保完整選取、複製文字框中的 Public Key 內容。

儲存私密金鑰 Private Key

畫面中會看到「Passphrase」的設定欄位,設定之後每次登入主機時都會需要輸入 Passphrase 以避免他人取得私鑰時也可以直接登入主機。

當然也有其他機制可以避免重複性輸入 Passphrase 的麻煩,我們留待未來再與大家分享。

設定 (或不設定) Passphrase 之後,按下 Save private key 按鈕 (如上圖) 將 Private Key 保存至電腦中。(副檔名為 *.ppk)

設定 PuTTY 終端

主機連線位址

在 PuTTY 終端的設定介面中,在 Session 下的 Host Name (or IP address) 欄位中輸入 Droplet 主機的 IP 位址。

在下方 Saved Sessions 欄位中命名 Session 名稱 (例如:DigitalOcean),並點擊右邊的 Save 按鈕儲存設定。

putty-configuration-session

SSH 連線設定

在 PuTTY 終端的設定介面中,Connection > SSH > Auth 下的 Private key file for authentication 選取前面步驟中儲存好的 Private Key 檔案路徑。

註:記得回到 Session 頁面再次點擊 Save 才能儲存設定。

putty-configuration-ssh-auth-private-key-path

後續按下 Open 就可以打開終端模式 (Console Mode) 與主機連線了。

參考 DigitalOcean 的說明文件 – How to Create SSH Keys with PuTTY on Windows

如何找回遺忘的公開金鑰?

就像密碼一樣,我們時常也會忘記以前設定過的密碼。公開金鑰在設定完之後,有很高的機會未來想再次利用相同的金鑰時,卻找不到當初暫時保存的記事本文件檔案。

別擔心,只要 Private Key 有保存在電腦中,都還是可以透過 PuTTYgen 找回遺忘的 Public Key。

  1. 執行、開啟 PuTTYgen
  2. 在 Actions 下的 Load an existing private key file 右邊,按下 Load 按鈕
  3. 找到之前儲存的 Private Key 檔案
  4. 按下開啟
puttygen-load-private-key

如果當時儲存 Private Key 的時候有設定 Passphrase 的話,需要輸入 Passphrase;如果沒設定的話,按下開啟就能看到 Public Key 顯示在介面上了。

註冊 DigitalOcean 帳號,取得免費額度 $100

首先,我們先完成 DigitalOcean 的帳號註冊,可以直接使用 email 帳號或 Google 帳號註冊。

DigitalOcean-sign-up-with-free-100-credits

前往 DigitalOcean 免費額度 $100 註冊頁面

註冊過程中需要提供信用卡資料,註冊完成後即可在登入後的管理頁面中看到免費試用額度美金 $100 了。

DigitalOcean-free-credits

DigitalOcean 很大方的提供了相當高的免費試用額度。

提醒:經過 60 天的試用期測試後,如果覺得 DigitalOcean 提供的服務無法滿足需求,記得要將創建的主機 Destroy、選取的加值服務取消掉,避免試用期滿後開始計費。

在 DigitalOcean 上建立新的 Droplets

登入 DigitalOcean 帳號之後,可以看到右上有個 Create 按鈕。

digitalocean-create-droplets

從 Create 選單中選擇建立 Droplets 之後就會進入設定畫面。

選擇作業系統版本

OS 版本我們選擇安裝:

  • Ubentu 20.04 x64 版
digitalocean-choose-an-image

選擇規格、方案

接著選擇主機的規格,規格決定了每個月的費用支付方案。

對剛入門或是以測試目的為主的人來說,可以選擇一般的 CPU 規格,最為經濟實惠每個月只要美金 $5 元。實際上是按小時計算費用,不使用的時候可以直接 Destroy Droplet 相當划算,不會有多餘的成本。

主機規格:

  • 1 CPU、1 GB、25 GB SSD、1 TB 資料傳輸
digitalocean-choose-a-plan

選擇主機地點

下一步是主機的座落地點,可以選擇距離你最近的地點網路傳輸效率較高一些。

主機地點:

  • Singapore
digitalocean-choose-a-datacenter-region

設定 SSH 金鑰

終於來到了這個步驟,還記得在前面我們已經將 SSH 連線使用的加密金鑰準備好了嗎?我們來把 SSH Key 加上。

首先,點擊 New SSH Key 按鈕。

digitalocean-authentication-ssh-key

註:如同畫面所示,也可以使用之前建立過的金鑰,像是我在使用 CloudPages、ServerAvatar 伺服器控制面板時建立的 SSH Keys。

將之前儲存在電腦中記事本的 Public Key 複製貼上到 SSH key content 的文字框中,並為這個金鑰取名,例如:Home Desktop。

digitalocean-droplet-authentication-add-public-ssh-key-done

按下 Add SSH Key 按鈕之後就完成了 SSH 金鑰的設定了。

digitalocean-authentication-choose-your-ssh-keys

建立 Droplet

最後,在開始建立 Droplet 前我們需要添加關於這個主機的標識:

  • Choose a hostname
    替主機命名
  • Add tags
    增加標籤,例如:Python。
  • Select Project
    選擇專案
digitalocean-finalize-and-create-droplet

完成之後,按下 Create Droplet 開始建立 Droplet。

稍待一會 (不到 1 分鐘) 我們的雲端主機就建立完成囉!

digitalocean-droplet-for-python-project

與雲端主機連線

參考前述的設定 PuTTY 終端章節,連線進入終端模式之後使用 root 帳號登入,如果之前創建 Private Key 時有設定 Passphrase,每次登入都會需要輸入。

理論上在 Droplet 建立完成時,DigitalOcean 就會將 root 帳號的密碼用電子郵件寄給我們,如果沒有收到,可以從 DigitalOcean 進入 Droplet 的管理頁面中的 Access > Reset root password 重新設定 Root 密碼即可。

digitalocean-droplet-reset-root-password

重設密碼主機需要重新啟動,靜待重啟完成之後即可在電子郵箱找到 DigitalOcean 寄來的「臨時密碼」通知郵件。

記得,使用臨時密碼登入時,系統會要求立刻重新設定新密碼。

digitalocean-droplet-login-and-reset-password

這樣我們就成功建立並登入雲端主機囉~

註:當然,大家也可以使用 Droplet 管理頁面中的 Access > Droplet Console > Launch Droplet Console 登入主機,只是每次都需要先進入 DigitalOcean 的管理頁面,而且網速延遲感較高。

下一篇文章我們接著介紹安裝 Jupyter Notebook 的前置準備工作、安裝 Jupyter Notebook,並開始使用。

DigitalOcean Droplet 雲端主機

免費額度美金$100,無負擔試用60天!

Thrive-Apprentice-4.0

發佈留言