arrow_back

導入 Cloud SQL (AWS)

登录 加入
访问 700 多个实验和课程

導入 Cloud SQL (AWS)

实验 1 小时 30 分钟 universal_currency_alt 5 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

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

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

您在前一份工作中使用過 Amazon Web Services (AWS),因此知道如何根據作業需求,設定 Relational Database Service (RDS) 執行個體。AWS RDS 執行個體的容量可調整且符合成本效益,能執行耗時的資料庫管理工作。

使用 AWS 時,連線至資料庫 (DB) 執行個體的方式會因環境而異。例如:

  • 連線至相同虛擬私有雲 (VPC) 中的 DB 執行個體:設定 VPC 安全性群組規則,限制 DB 執行個體的存取權。
  • 連線至不同 VPC 中的 DB 執行個體:在資料庫執行個體和用戶端所在的 VPC 之間,設定對接連線。
  • 透過公開網際網路連至 DB 執行個體:如果先前已設定 VPC 和子網路來支援這類連線,則需要網際網路閘道和安全性群組規則。
  • 透過私人連線連至 DB 執行個體:如要在 VPC 和 AWS RDS 端點之間建立私人連線,必須透過 AWS PrivateLink 建立介面 VPC 端點,這樣就能連線至 AWS RDS 執行個體,且不需要網際網路閘道、網路位址轉譯 (NAT) 閘道,甚至連公開 IP 也不需要。

AWS 圖表

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

總覽

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

您會在實驗室中建立 2 個可正常運作的 WordPress 前端執行個體,這 2 個執行個體是透過 2 種連線連至各自的 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. 按一下「Choose 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. 點選「Let's Go」

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

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

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

    3. 隨意填入示範網站資訊,然後按一下「Install 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. 點選「Let's Go」

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

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

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

    工作 5:回顧

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

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

    相似處:

    • Google Cloud SQL 和 AWS RDS 都屬於代管服務,可執行下列工作:

      • 更新執行個體
      • 安裝及修補資料庫軟體
      • 備份
      • 容錯移轉
    • 在 Google Cloud SQL 和 AWS RDS 中,DB 執行個體都是採用虛擬機器技術,因此您可以根據自身需求,選擇執行個體類型、大小和儲存空間容量。

    • 兩項服務都能透過安全通道安全連至 DB 執行個體,且不需要授權網路或 SSL。如要建立這類安全連線,請在 AWS 中採用 AWS PrivateLink,或在 Google Cloud 中採用 Cloud SQL Auth Proxy。

    • 兩項服務都支援 MySQL、PostgreSQL 和 SQL Server 引擎。

    差異處:

    • 除了先前提到的伺服器引擎相似處,AWS RDS 還支援 Oracle 和 MariaDB 伺服器引擎。
    • 兩項服務都能在 DB 執行個體和其他資源之間建立私人連線,且不需在公開網際網路上暴露流量,或建立 NAT 連線。不過,兩項服務啟用此功能的方式不同:
      • 在 AWS RDS 中,您需要建立 AWS PrivateLink VPC Endpoint,並設為 DB 執行個體的目標。
      • 在 Google Cloud SQL 中,您需要在 DB 執行個體的設定選項中啟用私人 IP 功能。

    關閉研究室

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

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

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

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

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

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

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

    准备工作

    1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
    2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
    3. 在屏幕左上角,点击开始实验即可开始

    使用无痕浏览模式

    1. 复制系统为实验提供的用户名密码
    2. 在无痕浏览模式下,点击打开控制台

    登录控制台

    1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
    2. 接受条款,并跳过恢复资源页面
    3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

    此内容目前不可用

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

    太好了!

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

    一次一个实验

    确认结束所有现有实验并开始此实验

    使用无痕浏览模式运行实验

    请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。