arrow_back

導入 Cloud SQL (Azure)

登录 加入
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

導入 Cloud SQL (Azure)

实验 1 小时 30 分钟 universal_currency_alt 5 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

最近您受僱加入一間 IT 公司,這間公司的主要雲端服務供應商為 Google Cloud。身為 SQL 資料庫專家,您負責研究及採用 Google Cloud 提供的 SQL 服務,需要考量的主要面向包括:

  • 部署作業
  • 安全性
  • 應用程式整合
  • 連線方式

Azure 圖表 您在前一份工作中使用過 Azure,因此知道如何部署 SQL Server。定價模式是以可自訂的資料庫交易單位 (DTU) 為依據,並根據不同的使用情境提供各式定價選項。

您將在 Azure 中進行下列操作:

  • 導入 Proxy,確保使用者能安全連線至資料庫。
  • 使用 HTTP 負載平衡器維持應用程式資料庫的可用性。

您可以透過多種方式連線至先前部署的應用程式,包括:

  • 連線字串
  • 網頁應用程式服務整合功能
  • 在 Cloud SQL 中使用私人 IP 位址建立連線

現在您將學習如何使用 Cloud SQL 功能建構安全感知資料庫,並連結至應用程式。

總覽

在這個研究室中,您會設定 Cloud SQL 伺服器,並瞭解如何透過採用外部連線的 Proxy 將應用程式連結至伺服器。您也會設定使用私人 IP 連結的連線,藉此提高效能和安全性。我們選擇在這個研究室中展示的應用程式是「WordPress」,不過相關資訊和最佳做法適用於任何必須使用 SQL 伺服器的應用程式。

在這個研究室結束時,您會擁有 2 個運作正常的 WordPress 前端執行個體,這 2 個執行個體是透過 2 種連線連結至 WordPress 的 SQL 執行個體後端,如這張圖表所示:

SQL 研究室圖表

目標

在這個研究室中,您會瞭解如何執行下列工作:

  • 建立 Cloud SQL 資料庫
  • 設定虛擬機器執行 Proxy
  • 建立應用程式與 Cloud SQL 之間的連線
  • 使用私人 IP 位址將應用程式連線至 Cloud SQL

設定

在每個研究室中,您都能在固定時間內免付費建立新的 Google Cloud 專案,並使用一組資源。

  1. 請透過無痕式視窗登入 Qwiklabs。

  2. 請記下研究室的存取時間 (例如 1:15:00),並確保自己能在時間限制內完成作業。
    研究室不提供暫停功能。如有需要,您可以重新開始,但原先的進度恕無法保留。

  3. 準備就緒後,請按一下「Start lab」

  4. 請記下研究室憑證 (使用者名稱密碼),這組資訊將用於登入 Google Cloud 控制台。

  5. 按一下「Open Google Console」

  6. 按一下「Use another account」,然後複製這個研究室的憑證,並貼入提示訊息。
    如果使用其他憑證,系統會顯示錯誤或向您收取費用

  7. 接受條款,然後略過資源復原頁面。

工作 1:建立 Cloud SQL 資料庫

在這項工作中,您會依據 Google Cloud 最佳做法設定 SQL 伺服器,以及建立私人 IP 連線。

  1. 按一下導覽選單 (「導覽選單」圖示) 中的「SQL」
  2. 按一下「建立執行個體」。
  3. 按一下「選擇 MySQL」
  4. 指定下列屬性,其餘設定請保持預設狀態:
屬性
執行個體 ID wordpress-db
根密碼 輸入密碼
區域
可用區 不限
資料庫版本 MySQL 5.7
注意事項: 請記下根密碼,您會在後續步驟中使用這組密碼,屆時會稱為 [ROOT_PASSWORD]。
  1. 展開「顯示設定選項」

  2. 展開「機器類型」專區。

  3. 適量佈建 vCPU 和記憶體。點選下拉式選單並瀏覽選項,選取需要的機器類型

注意事項:以下列出幾個考量要點:

  • 共用核心的機器適合用於原型設計,而且不涵蓋在 Cloud SLA 中。
  • 每個 vCPU 的網路處理量效能上限為每秒 250 MB。每增加一個核心即可提高網路上限,理論上最多可以增加至每秒 2000 MB。
  • 以線上交易處理 (OLTP) 等講求效能的工作負載來說,基本原則為確保執行個體具備充足的記憶體保存整個工作集,並能容納所有有效連線。
    1. 在這個研究室中,請在下拉式選單中依序選取「標準」和「1 個 vCPU,3.75 GB」

    2. 接著,請展開「儲存空間」專區,並選取「儲存空間類型」和「儲存空間容量」

    注意事項:以下列出幾個考量要點:

  • 在多數用途中,SSD (固態硬碟) 是最佳選擇。HDD (一般硬碟) 的效能較低,但儲存空間費用相對低廉,因此較適合儲存不常存取且不需要極低延遲的資料。
  • 儲存空間容量與處理量有直接關係。
    1. 按一下各個容量選項,瞭解這對處理量有何影響。請將選項重設為「10 GB」。
    注意事項: 如果您設定的儲存空間容量過小,而且未啟用自動增加儲存空間的功能,執行個體可能會無法達到服務水準協議的保證。
    1. 展開「連線」專區。

    2. 選取「私人 IP」。

    3. 選取「網路」下拉式選單中的「預設」

    4. 按一下隨即顯示的「設定連線」按鈕。

    5. 依序點選右側面板中的「啟用 API」、「使用系統自動分配的 IP 範圍」、「繼續」和「建立連線」。

    6. 按一下頁面底部的「建立執行個體」,建立資料庫執行個體。

    注意事項: 您可能需要等待私人 IP 變更全面生效,才能點選「建立」按鈕

    按一下「Check my progress」,確認目標已達成。 建立 Cloud SQL 執行個體

    工作 2:在虛擬機器中設定 Proxy

    如果您的應用程式與 Cloud SQL 執行個體並非位於相同的虛擬私有雲連線網路和區域,請使用 Proxy 保護外部連線。

    為設定 Proxy,您必須取得 Cloud SQL 執行個體的連線名稱。

    注意事項: 這個研究室提供 2 個已預先設定 WordPress 及其依附元件的虛擬機器。只要按一下虛擬機器名稱,即可查看開機指令碼和服務帳戶存取權。請注意,我們採用最低權限原則,僅允許該 VM 的 SQL 存取權。我們也預先設定了網路標記和防火牆,允許任何主機中的通訊埠 80。
    1. 在「導覽選單」「導覽選單」圖示 中,點選「Compute Engine」

    2. 點選「wordpress-proxy」旁的「SSH」

    3. 下載 Cloud SQL Proxy 並設為可以執行:

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy

    為啟動 Proxy,您必須取得 Cloud SQL 執行個體的連線名稱。不要關閉 SSH 視窗,返回 Cloud 控制台。

    1. 按一下導覽選單 (「導覽選單」圖示) 中的「SQL」

    2. 按一下 wordpress-db 執行個體,待名稱旁顯示綠色勾號即代表執行個體已可運作,這項作業可能需要幾分鐘才能完成。

    3. 請記下執行個體連線名稱,您會在後續步驟中使用這個名稱,屆時會稱為 [SQL_CONNECTION_NAME]。

    4. 另外,為了讓應用程式發揮作用,您必須建立資料表。按一下「資料庫」

    5. 按一下「建立資料庫」、輸入應用程式預期的名稱「wordpress」,然後按一下「建立」

    6. 返回 SSH 視窗,並在環境變數中儲存連線名稱,然後以您在前一個步驟中複製的不重複名稱取代 [SQL_CONNECTION_NAME]:

    export SQL_CONNECTION=[SQL_CONNECTION_NAME]
    1. 執行下列指令,確認環境變數是否已設定完成:
    echo $SQL_CONNECTION

    畫面中應會顯示連線名稱。

    1. 執行下列指令,啟動 Cloud SQL 資料庫的 Proxy 連線,並將處理程序傳送至背景:
    ./cloud_sql_proxy -instances=$SQL_CONNECTION=tcp:3306 &

    預期的輸出內容如下:

    Listening on 127.0.0.1:3306 for [SQL_CONNECTION_NAME] Ready for new connections
    1. 按下 Enter 鍵。
    注意事項: Proxy 會監聽 127.0.0.1:3306 (localhost),以及透過安全通道安全地連線至 Cloud SQL 的 Proxy (使用機器的外部 IP 位址)。

    按一下「Check my progress」,確認目標已達成。 建立資料庫並在虛擬機器中設定 Proxy

    工作 3:將應用程式連線至 Cloud SQL 執行個體

    在這項工作中,您會將範例應用程式連線至 Cloud SQL 執行個體。

    1. 設定 WordPress 應用程式。為找出虛擬機器的外部 IP 位址,請查詢中繼資料:
    curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip && echo
    1. 在瀏覽器中前往 wordpress-proxy 外部 IP 位址,並設定 WordPress 應用程式。

    2. 點選「開始執行」

    3. 指定下列屬性,並以您在建立機器時設定的密碼取代 [ROOT_PASSWORD],其餘設定則保留預設值:

    屬性
    使用者名稱 root
    密碼 [ROOT_PASSWORD]
    資料庫主機 127.0.0.1
    注意: 您使用的資料庫 IP 是 127.0.0.1 (localhost),這是因為您啟動的 Proxy 會監聽這個位址,並將流量安全地重新導向至 SQL 伺服器。
    1. 點選「提交」

    2. 請在連線建立後按一下「執行安裝」,在 Cloud SQL 中將 WordPress 及其資料庫執行個體化。這項作業可能需要一些時間才能完成。

    3. 隨意填入示範網站資訊,然後按一下「安裝 WordPress」。您不需要記住或使用這些詳細資料。

    注意事項: WordPress 最多可能需要 3 分鐘才能安裝完畢,這是因為 WordPress 會將所有相關資料傳送至您的 SQL 伺服器。
    1. 畫面中出現「成功!」視窗之後,請前往網路瀏覽器的網址列,並移除 IP 位址後方的文字,然後按下 Enter 鍵。
      接著,您就會看見運作正常的 WordPress 網誌!

    工作 4:透過內部 IP 連線至 Cloud SQL

    如果您的應用程式可以託管於 Cloud SQL 所在的區域和虛擬私有雲連線網路,即可使用私人 IP 提高設定的安全性與效能。

    使用私人 IP 之後,您就可以透過內部 IP 建立專屬通訊,藉此降低延遲並提高效能,盡可能減少 Cloud SQL 執行個體的受攻擊面。

    1. 在 Cloud 控制台的導覽選單 (「導覽選單」圖示) 中,按一下「SQL」
    2. 按一下「wordpress-db」
    3. 記下 Cloud SQL 伺服器的私人 IP 位址,屆時會稱為 [SQL_PRIVATE_IP]。
    4. 在「導覽選單」中,點選「Compute Engine」
    備註: wordpress-private-ip 與 Cloud SQL 同樣位於 us-central1,因此您可以使用更安全的連線。
    1. 複製 wordpress-private-ip 的外部 IP 位址並貼到瀏覽器視窗,然後按下 Enter 鍵。

    2. 點選「開始執行」

    3. 指定下列屬性,其餘設定請保持預設狀態:

    屬性
    使用者名稱 root
    密碼 輸入您在建立 Cloud SQL 執行個體時設定的 [ROOT_PASSWORD]
    資料庫主機 [SQL_PRIVATE_IP]
    1. 點選「提交」
    注意事項: 請注意,您這次會直接連線至私人 IP,而非設定 Proxy。連線不會公開,這代表連線不會將流量輸出至網際網路,因此效能與安全性較高。
    1. 按一下「執行安裝」
      如果畫面中出現「已安裝!」視窗,即代表您的應用程式已透過私人 IP 連線至 Cloud SQL 伺服器。

    2. 前往網路瀏覽器的網址列,並移除 IP 位址後方的文字,然後按下 Enter 鍵。
      接著,您就會看見運作正常的 WordPress 網誌!

    工作 5:回顧

    在這個研究室中,您建立了 Cloud SQL 資料庫並進行設定,讓資料庫透過安全的 Proxy 進行外部連線,且使用安全性與效能較高的私人 IP 位址。請記住,如要透過私人 IP 建立連線,應用程式與 Cloud SQL 伺服器必須位於同一區域和虛擬私有雲網路。如果應用程式託管於其他區域、虛擬私有雲,甚至是不同專案,則請使用 Proxy 保護外部連線。

    瞭解如何在 Cloud SQL 中建立及設定資料庫後,現在來看看 Google Cloud SQL 和 Azure SQL 的相似與差異處。

    相似處:

    • Azure SQL 和 Google Cloud SQL 都是用來管理資料庫基礎架構,並提供執行個體、備份、更新和容錯移轉等功能。
    • 您可以透過 Cloud SQL 和 Azure SQL 部署 Proxy,以安全接收來自虛擬私有雲外部的連線。
    • 兩項服務都可透過連線字串來建立連線。
    • 兩項服務都可以使用內部 IP 直接連結應用程式和 SQL Server 執行個體,前提是兩者必須位於相同的區域,並位於同一個虛擬私有雲網路。只使用內部 IP 位址有助於提升安全性,因為系統會阻擋所有公開連線。

    差異處:

    • 透過 Google Cloud 和 Azure 建立 SQL Server 時,考量的規格會有不同。若使用 Azure 服務,您需要在類別、DTU 和定義儲存空間中選擇。如為 Google Cloud 服務,您可以直接指定所需的 CPU 數量和儲存空間大小。
    • Google Cloud 內建資料庫驗證機制 (使用者名稱 + 密碼),您也可以導入 Cloud SQL Auth Proxy 和 Cloud SQL 連接器資料庫,依據 IAM 提供存取權。而在 Azure 中,您可以運用連線原則來定義如何允許要求,透過「重新導向」(預設) 或「Proxy」連線原則來處理要求。您也能使用 Azure Active Directory 驗證功能。
    • 在 Cloud Cloud 中,您將使用 Cloud SQL 連線至執行個體,主要方法有下列兩種:
      • Cloud SQL Auth Proxy:有了這項安全通道,您就不需要採用授權網路或 SSL 等機制,驗證與授權將透過 Identity and Access Management (IAM) 和 OAuth 2.0 完成
      • 私人 IP:在您的虛擬私有雲網路,或主要 Google 服務供應商的虛擬私有雲網路之間進行私人連線

    關閉研究室

    如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。

    您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)

    星級評等代表您的滿意程度:

    • 1 星 = 非常不滿意
    • 2 星 = 不滿意
    • 3 星 = 普通
    • 4 星 = 滿意
    • 5 星 = 非常滿意

    如果不想提供意見回饋,您可以直接關閉對話方塊。

    如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。

    Copyright 2022 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

    此内容目前不可用

    一旦可用,我们会通过电子邮件告知您

    太好了!

    一旦可用,我们会通过电子邮件告知您