在 GCP 上開立一台虛擬機

本篇將會做什麼?

  • 利用 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 optoinstwo 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, 例如:

gcloudGoogle Cloud Platform 的 command-line 工具, 他已事先被安裝在 Cloud Shell 並且支援自動補齊

使用這個 command, 你可以列出有效帳戶名稱:

gcloud auth list

輸出:

Credentialed accounts:
- <myaccount>@<mydomain>.com (active)

範例輸出:

Credentialed accounts:
- google1623327_student@qwiklabs.net

你可以使用以下 command 來列出專案 ID

gcloud config list project

輸出:

[core]
project = <project_ID>

範例輸出:

[core]
project = qwiklabs-gcp-44776a13dea667a6

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-4n1-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.
利用GCP Marketplace來提供服務 Stackdriver 快速開始

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×