检查点
Prepare a source PostgreSQL database for migration
/ 20
Migrate a stand-alone PostgreSQL database to Cloud SQL
/ 20
Promote a Database Migration Services continuous replica to a stand-alone instance.
/ 20
Update permissions and add IAM roles to users
/ 10
Create networks and firewalls
/ 10
Create a BigQuery log sink
/ 20
Set Up a Google Cloud Network:挑戰研究室
GSP314
總覽
在挑戰研究室中,您必須在特定情境下完成一系列任務。挑戰研究室不會提供逐步的操作說明,您必須運用從解決研究室任務中所學到的技巧,自行找出完成任務的方法!自動評分系統 (如本頁面所示) 將根據您是否正確完成任務而提供意見。
在您完成任務的期間,挑戰研究室不會介紹新的 Google Cloud 概念。您須靈活運用所學技巧,例如變更預設值或詳讀並研究錯誤訊息,解決遇到的問題。
若想滿分達標,就必須在時限內成功完成所有任務!
本研究室適合已參加 Set up a Google Cloud Network 技能徽章課程的學員。準備好迎接挑戰了嗎?
設定
點選「Start Lab」按鈕前的須知事項
請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。
您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。
如要完成這個研究室活動,請先確認:
- 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
- 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
挑戰情境
Cymbal Direct 是直接面對消費者的線上零售商,販售鞋子與服飾,您在裡面擔任雲端工程師。Cymbal Direct 迅速擴大規模,並在期間收購了一家新公司 Antern。Antern 是現有的電子商務商店,擁有大量資料,若能妥善整合至您現有的雲端環境,將能發揮極大助益,讓貴公司進一步拓展業務並觸及更多顧客。收購過程中,Cymbal Direct 希望將 Antern 現有的工作負載和基礎架構,從地端部署環境遷移至 Google Cloud。
以下是 Antern 需要遷移、複製的資源,或在 Cymbal Direct 現有雲端環境中,重新建立的內容:
- PostgreSQL 資料庫 (在虛擬機器上運作):需遷移至 PostgreSQL 適用的 Cloud SQL
- 容器化微服務應用程式程式碼:需在 GKE 上部署 (測試期間曾回報出現可靠性問題,必須排解)
- 虛擬私有雲網路:需建立兩個子網路及防火牆,以互相連結新資源
- 多項專案中的 IAM 使用者:需取得特定資源的適當權限及角色
您的工作是協助 Cymbal Direct 達成上述目標。
工作 1:將獨立 PostgreSQL 資料庫,遷移至 PostgreSQL 適用的 Cloud SQL 執行個體
Antern 在儲存電子商務商店訂單時,都是使用地端部署 VM 的 PostgreSQL 資料庫。做為收購策略的一環,Cymbal 要求使用資料庫移轉服務,將此資料庫遷移至 PostgreSQL 適用的 Cloud SQL。在 Cloud SQL 上執行資料庫,可讓 Cymbal 發揮 PostgreSQL 作業方面的所有優勢,並取得企業級的可用性、穩定性及安全性。
在這項工作中,您必須使用資料庫移轉服務持續遷移工作,以及虛擬私有雲對等互連連線,將 antern-postgresql-vm
虛擬機器的獨立 PostgreSQL orders
資料庫,遷移至 PostgreSQL 適用的 Cloud SQL 執行個體。
為 PostgreSQL 資料庫準備遷移作業
在這項子工作中,您必須為獨立 PostgreSQL 資料庫做準備,滿足資料庫移轉服務的遷移要求。
請採取下列步驟,完成這項子工作:
- 啟用資料庫移轉服務所需的 Google Cloud API。
需啟用 Database Migration API 和 Service Networking API,資料庫移轉服務才能運作。請為專案啟用這些 API。
- 使用
pglogical
資料庫擴充功能,升級antern-postgresql-vm
虛擬機器的目標資料庫。
您必須在 antern-postgresql-vm
Compute 執行個體 VM 的獨立 PostgreSQL 資料庫上,安裝並設定 pglogical 資料庫擴充功能。您必須安裝的 pglogical 資料庫擴充功能套件名為 postgresql-13-pglogical
。
如要完成 pglogical 資料庫擴充功能設定,請編輯 PostgreSQL 設定檔 /etc/postgresql/13/main/postgresql.conf
,以啟用 pglogical 資料庫擴充功能,並編輯 /etc/postgresql/13/main/pg_hba.conf
,以允許所有主機傳出的存取要求。
- 為獨立資料庫的資料庫遷移作業建立專屬使用者。
為了 antern-postgresql-vm
虛擬機器上獨立 PostgreSQL 建立的新使用者,請使用下列使用者名稱及密碼:
-
遷移使用者名稱:
-
遷移使用者密碼:
DMS_1s_cool!
- 授予該使用者遷移資料庫所需的權限。
資料庫移轉服務要求遷移使用者須具備特定結構定義的權限,以及要遷移的目標資料庫關聯,在本例中為 orders
和 postgres
資料庫。
- 資料庫移轉服務要求所有遷移的資料表均具備主鍵。授予使用者必要權限後,請執行下列指令,將主鍵加入
inventory_items
資料表並退出 psql。
點選「Check my progress」,確認目標已達成。
將獨立 PostgreSQL 資料庫,遷移至 PostgreSQL 適用的 Cloud SQL 執行個體
在這項子工作中,您必須使用資料庫移轉服務執行遷移工作。
請採取下列步驟,完成這項子工作:
- 使用先前建立的
遷移使用者憑證,為獨立 PostgreSQL 資料庫建立新的資料庫移轉服務連線設定檔。
-
使用者名稱:
-
密碼:
DMS_1s_cool!
-
區域:
您必須使用來源運算執行個體的內部 IP 位址,設定連線設定檔。
- 建立新的持續資料庫移轉服務工作。
- 對於「遷移工作名稱」,請輸入
。 - 在「來源資料庫引擎」部分,請選取「
PostgreSQL
」。 - 在「目的地資料庫引擎」部分,請選取「
Cloud SQL for PostgreSQL
」。 -
目的地區域:
做為遷移設定的一部分,請務必為目的地 Cloud SQL 執行個體指定下列屬性:
- 「目的地執行個體 ID」必須設為「
」 - 遷移的執行個體「密碼」必須設為「
supersecret!
」 - 「資料庫版本」必須設為「Cloud SQL for PostgreSQL 13」
- 在「選擇 Cloud SQL 版本」部分,請只選取「Enterprise」。
- 「區域」必須設為「
」 - 在「連線」部分,請設定「公開 IP」和「私人 IP」
- 在「私人 IP」部分,請使用系統自動分配的 IP 範圍,然後點選「分配並連線」。
- 選取配備 4 個 vCPU 和 16 GB 的標準機器類型
- 在「儲存空間類型」部分,使用「SSD」
- 儲存空間容量設為「10 GB」
在「連線方式」部分,請使用「虛擬私有雲對等互連」和「預設」虛擬私有雲網路。
- 測試並開始持續遷移工作。
點選「Check my progress」,確認目標已達成。
將 Cloud SQL 升級為適用於讀取與寫入資料的獨立執行個體
- 在這項工作中,您必須將 PostgreSQL 適用的 Cloud SQL 升級為獨立執行個體,以完成遷移作業。
- 升級完成時,工作狀態會更新為「已完成」。
點選「Check my progress」,確認目標已達成。
工作 2:更新權限並為使用者新增 IAM 角色
現在資料庫已遷移至 PostgreSQL 適用的 Cloud SQL 執行個體,請透過 IAM,為 Antern 和 Cymbal 團隊的不同成員更新使用者角色。具體來說,您需要授予權限,讓 Antern 編輯者使用者可存取 Cloud SQL 資料庫、Cymbal 擁有者可全權管理 Cloud SQL 資源,以及 Cymbal 編輯者可編輯專案。
-
向 Antern 編輯者使用者授予 CloudSQL 資料庫的 Cloud SQL 執行個體使用者角色。使用者名稱:
。 - 前往剛建立的 Cloud SQL 資料庫。在「使用者」部分,將 Antern 編輯者使用者帳戶新增至建立的資料庫。使用 Cloud IAM 驗證,對主體使用上方使用者名稱。
-
向 Cymbal 擁有者使用者授予 CloudSQL 資料庫的 Cloud SQL 管理員角色。使用者名稱:
。 - 前往剛建立的 Cloud SQL 資料庫。在「使用者」部分,將 Cymbal 擁有者使用者帳戶新增至建立的資料庫。使用 Cloud IAM 驗證,對主體使用上方使用者名稱。
-
將「Cymbal 編輯者」使用者角色從「檢視者」變更為「編輯者」。使用者名稱:
。
點選「Check my progress」,確認目標已達成。
工作 3:建立網路和防火牆
做為收購策略的一環,您必須在 Cymbal 專案中重新建立虛擬私有雲網路,從內部連接資源。具體來說,您需要建立具有兩個子網路的虛擬私有雲網路,以及防火牆,建立資源間的連線。此外,您的團隊必須能透過這個網路,使用 SSH 和 RDP 連至 Linux 及 Windows 機器,並透過 ICMP 診斷網路通訊問題。
在這項工作中,您將建立虛擬私有雲網路和防火牆規則,並滿足上述要求。
建立具有兩個子網路的虛擬私有雲網路
-
建立虛擬私有雲網路
,當中具有兩個子網路: 與 。使用「區域」動態轉送模式。 -
在「
」部分,將區域設為「 」。 - 將「IP 堆疊類型」設為「IPv4 (單一堆疊)」
- 將「IPv4 範圍」設為「
10.10.10.0/24
」
-
在「
」部分,將區域設為「 」。 - 將「IP 堆疊類型」設為「IPv4 (單一堆疊)」
- 將「IPv4 範圍」設為「
10.10.20.0/24
」
為虛擬私有雲網路建立防火牆規則
-
建立防火牆規則
。 - 在網路部分,使用「
」。 - 將優先順序設為「65535」、將流量設為「Ingress」,並將動作設為「允許」。
- 目標應設為「網路中的所有執行個體」,而「IPv4 範圍」應設為「
0.0.0.0/24
」 - 將「通訊協定」設為「TCP」,並將「通訊埠」設為「
22
」。
- 在網路部分,使用「
-
建立防火牆規則
。 - 在網路部分,使用「
」。 - 將優先順序設為「65535」、將流量設為「Ingress」,並將動作設為「允許」。
- 目標應設為「網路中的所有執行個體」,而「IPv4 範圍」應設為「
0.0.0.0/24
」 - 將「通訊協定」設為「TCP」,並將「通訊埠」設為「
3389
」。
- 在網路部分,使用「
-
建立防火牆規則
。 - 在網路部分,使用「
」。 - 將優先順序設為「65535」、將流量設為「Ingress」,並將動作設為「允許」。
- 目標應設為「網路中的所有執行個體」,而「IPv4 範圍」應設為「
0.0.0.0/24
」 - 將「通訊協定」設為「icmp」。
- 在網路部分,使用「
點選「Check my progress」,確認目標已達成。
工作 4:排解並修正 GKE 叢集故障問題
部署電子商務網站 GKE 叢集後,您收到團隊的通知,表示有幾個已知的 GKE 叢集問題需要解決。他們發現三個需要修正的錯誤:
- 錯誤 1:前端服務延遲時間過長
- 錯誤 2:評分過時
- 錯誤 3:推薦服務異常終止
做為收購策略的一環,您需要修正
提示:
- 錯誤 1:前往示範應用程式的外部 IP,確認是否有變更。您也能使用監控資訊主頁,查看與各項服務相關的指標。
-
錯誤 2:產品評分由「評分服務」代管,託管於 Google App Engine,透過定期呼叫 API 端點將評分資料保持在最新狀態。這個 API 端點會收集每項產品最近傳送的所有新分數,並計算新評分。請查看 App Engine 服務的記錄檔,確認評分服務是否正常運作。另一位團隊成員表示這可能與
main.py
檔案中的問題有關。 - 錯誤 3:瀏覽您的網站,直到遇到問題為止,接著使用 Cloud Logging 查看每項服務匯出的記錄檔。另一位團隊成員表示,這個異常終止錯誤可能是由服務中的整數轉換階段造成。
建立 BigQuery 記錄檔接收器
修正根本問題前,您已要求建立記錄檔接收器,傳送與故障服務相關的錯誤。屆時您必須使用 IAM 授予 Antern 使用者不同層級的 BigQuery 存取權,方便他們查看資料庫並互動。
-
使用記錄檔探索工具調查運作中的 GKE 應用程式,並檢查服務是否有誤。提示:請找出嚴重性為
ERROR
的記錄檔。 -
找出服務錯誤記錄檔後,請建立接收器,將記錄檔傳送至 BigQuery。
- 將接收器命名為
。 - 在「目的地」部分,建立 BigQuery 資料集
gke_app_errors_sink
,且位置為「美國 (多個美國地區)」。 - 在「包含」篩選器中,請務必包括:「
resource.type
、「」及「 severity
」。
- 將接收器命名為
-
將這項專案的 BigQuery 資料檢視者角色,授予 Antern 編輯者使用者。使用者名稱:
。 -
將這項專案的 BigQuery 管理員角色,授予 Antern 擁有者使用者。使用者名稱:
。
點選「Check my progress」,確認目標已達成。
修正 GKE 叢集
您已在 BigQuery 中對服務錯誤建立記錄檔接收器,團隊中的幾位工程師在查看後,找出了修正問題的正確步驟。在這項工作中,您將下載、執行解決方案程式碼,修正 GKE 叢集中的服務。
- 連至 cloud-ops-sandbox GKE 叢集並執行下列指令來修復問題。在系統提示時,回答驗證問題。
- 確認電子商務商店是否正常運作。
恭喜!
您已完成雲端工程師一天的工作!您把 PostgreSQL 資料庫遷移至 PostgreSQL 適用的 Cloud SQL 執行個體,並建立具有子網路和防火牆的虛擬私有雲網路。此外,您也排解某個 GKE 叢集的問題,並為多項專案授予 IAM 使用者權限。
取得下一枚技能徽章
這個自修研究室屬於 Deploy and Manage Cloud Environments with Google Cloud 技能徽章課程的一部分。完成這個技能徽章課程即可獲得上方的徽章,表彰您的成就。您可以在履歷表和社群平台中分享徽章,並使用 #GoogleCloudBadge 公開成就。
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2024 年 3 月 8 日 研究室上次測試日期:2024 年 3 月 8 日
Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。