本篇將會做什麼?
- 利用 GCP 主控台建立一個 virtual machine
- 利用 gcloud command line 建立一個 virtual machine
- 在 virtual machine 上部署一個 web server
前言
本篇主要是利用 Google 的 Qwiklab 平台學習的同時,做的一份學習筆記
原文可參閱
Refer to official link
設定及要求
在你按下 Start Lab 按鈕之前
詳讀所有的教學。 Labs 是有時間限制的, 而且你不可以停止時間倒數。 倒數計時器在你按下 Start Lab 按鈕後開始倒數, 上面顯示的時間為你還能使用 Cloud 資源的時間。
Qwiklabs 的手把手環境, 讓你可以在真實環境中來操作進行 Qwiklabs 上提供的課程, 而不是在一個模擬或是展示的環境。 我們透過提供你一個全新的、暫時的帳號密碼, 在計時器歸零之前, 你可以用來登入並存取 Google Cloud Platform。
你需要什麼?
要完成這個 lab, 你需要:
- 一個一般的網路瀏覽器(推薦 Chrome)
- 完成這個 lab 的時間
備註: 如果你已經有你自己的個人 GCP 帳號或專案,請不要使用在這一個 lab
現在你已經開始你的 lab
, 你將會登入 Google Cloud Shell
主控台, 然後開啟命令列工具
如何開始你的 lab, 然後登入 Console?
- 按下 Start Lab 按鈕。 如果你需要付費, 會有一個彈出視窗來讓你選擇付費的方式。 在左方你會看到一個面板, 上面有暫時的帳號密碼, 你必須使用這些帳號密碼在此次 lab
- 複製
username
, 然後點擊Open Google Console
。 Lab 會開啟另外一個視窗, 顯示選擇帳號
的頁面
tip: 開啟一個全新的視窗,然後跟原本的頁面並排
- 在
選擇帳號
頁面, 點擊Use Another Account
- 登入頁面開啟, 貼上之前複製的
username
以及password
, 然後貼上
重要: 必須使用之前於 Connection Details 面板
取得的帳號密碼,不要使用你自己的 Qwiklabs 帳號密碼。 如果你有自己的 GCP 帳號, 請不要用在這裡(避免產生費用)
- 點擊並通過接下來的頁面:
- 接受
terms
以及conditions
- 不要增加
recovery optoins
或two factor authentication
(因為這只是一個臨時帳號) - 不要註冊免費體驗
- 接受
稍待一些時候, GCP 控制台將會在這個視窗開啟。
注意: 按下左上方位於 Google Cloud Platform
隔壁的 Navigation menu
, 你可以瀏覽選單, 裡面有一系列的 GCP 產品以及服務
啟動 Google Cloud Shell
Google Cloud Shell
是載有開發工具的虛擬機器。 它提供了5GB的 home 資料夾, 並且運行在 Google Cloud
上。 Google Cloud Shell
讓你可以利用 command-line 存取 GCP
資源
- 在
GCP 控制台
, 右上的工具列,點擊Open Cloud Shell
按鈕
- 在打開的對話框裡, 按下
START CLOUD SHELL
:
你可以立即按下 START CLOUD SHELL
當對話視窗打開。
連結並提供環境會需要一點時間。 當你連結成功, 這代表你已成功獲得授權, 且此專案已被設為你的專案ID, 例如:
gcloud 是 Google Cloud Platform
的 command-line 工具, 他已事先被安裝在 Cloud Shell
並且支援自動補齊
使用這個 command, 你可以列出有效帳戶名稱:
gcloud auth list |
輸出:
Credentialed accounts: |
範例輸出:
Credentialed accounts: |
你可以使用以下 command 來列出專案 ID
gcloud config list project |
輸出:
[core] |
範例輸出:
[core] |
gcloud
的完整文件可以參閱 Google Cloud gcloud Overview
理解 Regions 和 Zones
- 特定的 Compute Engine 資源位於特定的 regions 或 zones.
- Region 表示一個你可以運行你的資源的特定地理位置。
- 每個 region 都有一個或多個 zones,舉例來說,us-central1 region 位於 Central United States,並且下面有 us-central1-a, us-central1-b, us-central1-c, us-central1-f 這些 zones
- 位於 zone 的資源算是 zonal 資源。
- Virtual machine instance 還有 persistent disk 都位於 zone, 如果要在一個 virtual machine 上加一個 persistent disk,那兩者必須位於同一個 zone
- 很類似的,如果你要分配一個 static IP 位址到一個 instance,這個 instance 必須要跟這個 static IP 同一個 region
從 Cloud Console 建立一個新的 instance
- Navigation menu > Compute Engine > VM instance
- 按 create
欄位 | 值 | 額外資訊 |
---|---|---|
name | gcelab |
|
region | us-central1(Iowa) or asia-south1(Mumbai) |
更多regions的資訊 |
zone | us-central1-c or asia-south1-c 注意:記住你選擇的 zone, 待會會用到 |
更多zone的資訊 |
Machine Type | 2 vCPUs 這是一個(n1-standard-1), 1-CPU, 3.75GB RAM instance 有很多種類型可以選擇,從基礎型的到 32-core/208GB RAM 的都有,更多資訊可以參考機型種類文件 |
一個新專案有所謂的resource quota, 他會限制可以開立的機型規格。我們可以要求更高規格的機型在此 lab 之外 |
Boot Disk | New 10 GB standard persistent disk OS Image: Debian GNU/Linux 9 (Stretch) |
有很多種類的 images 可以選擇,包含 Debian, Ubuntu, CoreOS,以及一些高級的iamges,像是 RedHat Enterprise, Linux,和 Windows Server, 更多資訊可以參考作業系統文件 |
Firewall | 勾選 Allow HTTP traffic 勾選這個選項,所以我們等等才能存取安裝好的 server |
注意:這會自動建立防火牆規則,容許 HTTP 80 port 通道 |
- 點擊 Create
- 點擊 SSH, 經由瀏覽器連到 virtual machine
注意:更多資訊可以參考文件
安裝 NGINX web server
- 經由 SSH 連接 virtual machine 之後,先取得 root 權限
sudo su -
- 更新 OS
apt-get update
- 安裝 NGINX
apt-get install nginx -y
- 確認 NGINX 正常運行中
ps auwx | grep nginx
- 現在我們可以經由點擊 Cloud Console 上的 External IP 連結按鈕,或者直接在瀏覽器上輸入
http://EXTERNAL_IP/
IP位址來連結到 Server 的網頁
使用 gcloud 來建立一個 instance
除了使用 GCP 主控台之外,我們也可以使用 gcloud 的 command line 工具來建立一個 virtual machine instance, 這個工具已經事先被安裝在 Google Cloud Shell 中了。 Cloud Shell 是一台以 Debian 為基礎的 virtual machine, 預載有所有你需要的開發工具 (gcloud, git, 還有其他的等等), 並且提供 5GB persistent disk 的 home 目錄
如果你之後想要在自己的機器上嘗試看看,可以參考[gcloud command line tool guide](https://cloud.google.com/sdk/gcloud/)
在 Cloud Shell, 利用 command line gloud 工具建立一台新的 virtual machine instance
gcloud compute instances create gcelab2 --zone us-central1-c
建立的 instance 將會有以下的預設值
- 最新的 Debian 9 image
n1-standard-1
machine type, 在這個 lab 中,你可以選擇其他的 machine type, 像是n1-highmen-4
或n1-highcpu-4
, 如果你在做這個 lab 之外的專案,你可以選擇客製化的 machinee type- 預設的 persistent disk 名稱將與此 instance 一樣,並自動加到此 instance
使用
gcloud compute instances create --help
檢視所有預設
如果你總是使用同一個區域,你可以將指定的地區設為預設,這樣就不需要每次都要使用
--zone
參數gcloud config set compute/zone
gcloud config set compute/region
檢視你的 instance,
Navigation menu > Compute Engine > VM instances
最後,你可以使用 gcloud 經由 SSH 連線到你的 instance, 當你在連接時,確定一下後面的 zone 是跟你當初建的時候指定的一樣,或者如果你已經使用的上述的指定默認指令,那就不需要在指定一次。
gcloud compute ssh gcelab2 --zone us-central1-c
選 y 繼續
測試你的理解
下面有多重選擇的問題來鞏固你對本教程概念的理解,盡你所能的回答吧:
- Through which of the following ways you can create a VM instance in Google Compute Engine(GCE)?
- Through web console
- The gcloud command line tool.
留言