Google Cloud Shell

Google Cloud Shell 提供了一個雲端 UNIX 環境,主要目的是用來管理 Google Cloud 資源,但把他拿來當作 UNIX 系統練習環境也很適合,尤其當電腦教室有還原卡的時候。Google Cloud Shell 的進入網址為 https://cloud.google.com/shell,首頁有相關的特色說明,這裡不贅述。 只要有 Google 帳號就可以使用,不需綁定信用卡,每個帳號有 5G 空間。

進入後建立一個 project(不建好像也可以但不確定),開啟「終端機」後就可以看到 UNIX 的終端機畫面,如下,然後我們就有一個標準的 UNIX(Linux)環境了。確定可安裝 x86 上跑的 64 位元 Ubuntu 程式。

截圖 2022 05 12 09.44.56

Google Cloud 的 UNIX 環境分成兩部分:VM 與 Home Directory。VM 在每次斷線 20 分鐘後會自動清除,但家目錄不會,所以我們自己安裝的程式或系統設定檔是在家目錄下時,是會被洗掉的,安裝軟體時要特別注意路徑。

除了雲端使用外,在本機還可以安裝 gcloud 工具程式,方便在本機使用 ssh 協定直接連上 Google Cloud。gcloud 安裝方式請參考官網說明 https://cloud.google.com/sdk/docs/install-sdk,安裝完畢後開啟終端機(命令提示字元)執行 gcloud init 初始化,接下來就可以在本機使用下列指令連線到雲端環境中了。

gcloud cloud-shell ssh

SSH Tunnel

此外,如果要啟動 ssh tunnel,讓本機的網路應用程式(例如瀏覽器或是資料庫管理系統)連線到我們在雲端 UNIX 環境中啟動的 Web Server 或 DB Server,只要啟動 ssh tunnel 就可以,但這裡 Windows 作業系統與 macOS / Linux 作法不一樣。

※ Windows 作法

Windows 的 gcloud 在啟動 ssh 連線時會開啟 putty 視窗進行連線,連線後在 putty 左上角的選單選擇「Change Settings」,如下圖。

截圖 2022-05-19 下午5.13.48

然後在「Tunnels」的位置輸入相關資料,注意本地端的 port 要打在 source 位置,按下 「Add」 按鈕後再「Apply」就完成 tunnel 建立了,如下圖。這樣的設定就是連本地端的 8080 port 相當於連遠端的 80 port。

截圖 2022-05-19 下午5.14.56

※ macOS / Linux 的作法

這兩種作業 ssh 連線使用的是作業系統內建的 ssh 程式,因此在 ssh 連線時加上適當的參數,如下,這樣就可以在連線本機的 8080 時相當於連線到 Google Cloud 上的 port 80。 

gcloud cloud-shell ssh --ssh-flag="-L 8080:localhost:80"

切換登入帳號

若有兩個以上的 gmail 帳號,想要登入其他帳號時,可以使用下面指令,這個指令會帶出一個登入 Google 帳號的網頁,之後使用 ssh 連線時預設就是這個帳號了。

gcloud auth login

只要執行過上面這個指令,之後就可以透過 –account 參數快速的連線到各個帳號,而不需要再使用上面指令登入一次,參數使用方式如下。

gcloud cloud-shell ssh --account=[ACCOUNT]@gmail.com

Quota

Google Cloud Shell 有一些使用限制,除了斷線 20 分鐘之後 VM 會刪除之外,重要的限制還有每週最多使用 60 小時,以及未使用 120 天後家目錄會被清除。官方內容公布於 https://cloud.google.com/shell/docs/quotas-limits

X forwarding

Google Cloud 的 UNIX 環境理論上支援 X Forwarding,也就是可以將雲端開啟的 X Window 轉送到本機上,但我到目前為止尚未試成功,不論是最常見的 xeyes,或是 matplotlib、opencv 程式都不行。這部分若之後找到正確設定方式再更新。

★ UNIX 的重要操作請至選單中的「影片集」參考 UNIX 相關影片。傳送門在此

★ 安裝 XAMPP。傳送門在此

★ 安裝 MongoDB。傳送門在此

發表迴響