Day 30 — Terraform/GCP實戰:使用 GCP Console 創建 創建 GCP 資料庫服務Cloud MemoryStore — Redis
示範如何使用 GCP Console 創建記憶體快取服務 Cloud MemoryStore — Redis,實現快取資料的管理。
- Day1 — Introduction — 現代 IT 架構問題與解決方案
- Day 2 — Introduction — Terraform 與基礎架構即代碼 (IAC) 的解決方案
- Day 3 — Terraform 基礎 — 申請 GCP 免費帳號
- Day 4 — Terraform基礎 — Terraform 簡介與安裝
- Day 5 — Terraform基礎 — 掌握 Terraform 元件
- Day 6 — Terraform基礎 — Terraform 工作流程
- Day 7 — Terraform基礎 — 效率提升:使用 bash alias
- Day 8 — Terraform基礎 — Provider version 的概念與使用
- Day 9 — Terraform基礎 — 資源 (Resources) 的概念與使用
- Day 10 — Terraform基礎 — 配置器 Provisioners 的概念與使用
- Day 11 — Terraform基礎 — 變數 (Variables) 與輸出 (Outputs)
- Day 12 — Terraform基礎 — 變數 (Variables) 種類與使用順序
- Day 13 — Terraform基礎 — 資料來源 Data Sources 的概念與使用
- Day 14 — Terraform基礎 — State 的概念與使用
- Day 15 — Terraform基礎 — Backend 遠端狀態後台的概念與使用
- Day 16 — Terraform/GCP基礎 — GCP服務帳號 (Service Account) 與使用者 (User) 的差異
- Day 17 — Terraform/GCP基礎 — 設定 GCP 服務帳號 Service Account
- Day 18 — Terraform/GCP基礎 — 連結 Terraform 與 GCP:使用者帳號與密碼
- Day 19 — Terraform/GCP基礎 — 建議的 Terraform 開發最佳實踐 best practices
- Day 20 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 運算資源服務
- Day 21 — Terraform/GCP實戰:使用 Terraform 創建 GCP 運算資源服務
- Day 22 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 無伺服器服務Cloud Function
- Day 23 — Terraform/GCP實戰:使用 Terraform 創建 GCP 無伺服器服務Cloud Function
- Day 24 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 無伺服器服務 (Cloud Run)
- Day 25 — Terraform/GCP實戰:使用 Terraform 創建 GCP 無伺服器服務 (Cloud Run)
- Day 26 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 運算服務 Kubernetes GKE
- Day 27 — Terraform/GCP實戰 :使用 Terraform 創建 GCP 運算服務 Kubernetes GKE
- Day 28 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 資料庫服務 Cloud Sql (PostgreSQL)
- Day 29 — Terraform/GCP實戰:使用 Terraform 創建 GCP 資料庫服務 Cloud Sql (PostgreSQL)
- Day 30 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 資料庫服務 Cloud MemoryStore — Redis
- Day 31 — Terraform/GCP實戰:使用 Terraform 創建 GCP 資料庫服務Cloud MemoryStore — Redis
1. GCP 資料庫服務 Cloud MemoryStore 的主要功能和用途
Google 的資料庫服務 Cloud Memorystore 是一種受管型的記憶體資料庫服務,專為提供高效率和低延遲的快取解決方案而設計。快取解決方案、受管型服務、自動擴展與Redis相容,是主要的賣點:
- 記憶體資料庫:Memorystore支援兩種資料庫引擎:Redis和Memcached,讓您可以根據應用程式和使用情境來選擇最適合的引擎,達到更高的效能和低延遲性。
- 完全托管的服務:Memorystore是完全托管的,這意味著您不需要管理任何伺服器或基礎架構。這樣可以大大減少您的維護成本和風險,同時提高您的開發效率和生產力。
- 快速和可擴展:由於Memorystore是基於記憶體的資料庫,因此它可以提供非常快速和低延遲的資料存取。此外,它還支援自動擴展,可以輕鬆地應對大流量的應用程式和工作負載。
- 高可用性和可靠性:Memorystore提供多個可用區域,以保證資料的高可用性和可靠性。它還提供了備份和還原功能,以防止資料丟失或損壞。
- 簡單易用:Memorystore易於設置和管理。您可以使用GCP控制台、命令列介面或API來操作Memorystore,並輕鬆地集成到您的應用程式中。
2. GCP 資料庫服務 Cloud MemoryStore 的使用情境
Google Cloud Platform 的資料庫服務 Cloud MemoryStore 可在多種場景下使用,以下是一些常見的使用情境:
- 電子商務網站:在電子商務網站中,您需要存儲和緩存大量的產品和用戶資料,以提高網站的效能和用戶體驗。Memorystore可以提供快速和可擴展的資料存取能力,並且易於管理和維護。
- 多人遊戲:在多人遊戲中,您需要存儲和共享大量的遊戲狀性和玩家資料,以便在遊戲中快速且即時地呈現。Memorystore可以提供快速和可靠的記憶體資料庫解決方案,以支援遊戲中的高流量和低延遲性。
- 即時數據分析:在即時數據分析中,您需要快速地存儲和查詢大量的數據,以便在分析和決策過程中使用。Memorystore可以提供快速和可擴展的資料庫解決方案,並且支援常用的數據分析工具和平台。
- 醫療保健:在醫療保健領域中,您需要存儲和處理大量的病歷和醫療資料,以便提供高質量和高效率的醫療服務。Memorystore可以提供快速和可靠的記憶體資料庫解決方案,以支援醫療資料的存儲和查詢需求。
3. GCP 資料庫服務 Cloud MemoryStore — 使用GCP Console創建資料庫 Cloud MemoryStore — Redis
在這個章節中,我們將深入探討如何使用GCP Console在Google Cloud Platform上創建Cloud MemoryStore — Redis。我們將依次進行以下步驟:
- 創建一個memory store 的 redis
- 創建一個用於redis forward的vm
- 使用ssh forward到個人電腦
- 使用redis-gui來進行測試 (連結)
下載Another Redis Desktop Manager 來進行Redis測試
- 前往Another Redis Desktop Manager的官方網站:https://goanother.com/#download
- 在下載頁面上,選擇適用於您的操作系統的版本。Another Redis Desktop Manager支援多個操作系統,包括Windows、macOS和Linux。點擊下載連結以開始下載安裝文件,請耐心等待下載完成。
- 完成下載後,根據您的操作系統執行安裝後,打開Another Redis Desktop Manager 應用程序。在首次運行時,您將需要配置連接到您的資料庫的設定,包括主機名稱、用戶名、密碼等。稍後我們會配合Redis來進行後續練習。
使用GCP Console創建GCP Cloud MemoryStore
- 登入GCP Console:首先,使用您的Google帳戶登入Google Cloud Platform(GCP)Console:https://console.coud.google.com。
- 選擇或創建專案:在GCP Console左上角,點擊專案選單,然後選擇現有的專案或創建一個新專案。
- 創建GCP Cloud MemoryStore 服務:
- 在GCP Console左側的導覽窗格中,點選”Cloud MemoryStore”
選項。
- 創建GCP Cloud MemoryStore,在GCP Cloud MemoryStore頁面點擊Redis並點選”建立執行個體”按鈕來開始創建一個新的GCP Cloud MemoryStore Redis個體。
- GCP Cloud MemoryStore 服務設定:
- Cloud MemoryStore Redis執行個體基本資訊:包括執行個體 ID、顯示名稱與選取級別等。這邊可以使用cloud-memory-redis作為個體 ID與顯示名稱,級別使用基本。
- Cloud MemoryStore Redis容量與區域:容量選擇最基本的1GB,地區使用單一區域並選擇asia-northeast1 東京。
- Cloud MemoryStore Redis 網路與其他設定:網路選擇default網路,連線則使用直接對等互連。
- Cloud MemoryStore Redis 版本設定:選擇 6.x的redis版本,不使用快照,最後建立執行個體。
使用GCP Console創建VM,作為Redis forward的vm
由於gcp的redis我們無法直接從公開網路存取,所以我們要透過創建一個vm,再利用這個vm來連線遠端的redis。這個原理就像我們要打公司的電話號碼總機接通以後,在撥打分機號碼,才能夠真的聯絡到對方。所以這個vm就是公司的電話號碼總機,下面的章節就會來介紹。
- Port forwarding VM設定:
- VM 執行個體基本資訊:包括名稱與地區,名稱使用redis-proxy,而地區使用asia-northeast1 東京
- VM 執行機器類型:選擇最基本的e2-micro,share 2G vCPU與1G的RAM作為我們的跳板機器,用來執行port forwarding。
- VM 部署機器:點選部署後,確認機器創建完成。
- Port forwarding 詳細設定:
- SSH Port forwarding詳細指令:下面的指令主要是將遠端10.146.0.43的6379 port,透過vm的轉介,轉發到本地電腦的6379 port。
- ssh連線原理:首先我們要先連線到遠端的vm上,利用gcloud compute ssh [VM名稱] — project [專案ID] — zone [區域]
,也就是gcloud compute ssh — zone "asia-northeast1-b" "redis-proxy" — project "terraform101–384507"
會讓本地電腦可以利用ssh連線到遠端gcp上的vm,terraform101–384507
這專案中的asia-northeast1-b
地區上的redis-proxy
這台vm。
- port warding 連線原理:-- -L [本機端口]:[redis ip]]:[Redis端口]
則是用來做遠端連線port的轉發,將遠端ip的port轉發到本機上的port上,所以使用-- -L 6379:10.146.0.43:6379
來將redis的6379 port轉發到本機的6379 port上
# gcloud compute ssh [VM名稱] --project [專案ID] --zone [區域] -- -L [本機端口]:[redis ip]]:[Redis端口]
gcloud compute ssh --zone "asia-northeast1-b" "redis-proxy" --project "terraform101-384507" -- -L 6379:10.146.0.43:6379
測試部署的 GCP MemoryStore Redis 服務
創建修改完畢,並看到 GCP MemoryStore Redis 後,可以查看總體的詳細資料。後續我們會利用Another Redis Desktop Manager 來連線Redis,並測試連線。
- Redis 詳細設定:
- 確認連線:首先確定已經執行 Port forwarding 連線轉發redis 6379到本地電腦
- 開啟新連線:首先開啟Another Redis Desktop Manager,並且開啟新連線,指定 127.0.0.1 為 host,並使用6379 port,最後按確認。
- 確認GCP redis 詳細資訊:連線成功後,可以看到連結的詳細資訊,包括redis info以及相關的db資訊。
4. 總結 Summary
- GCP Cloud MemoryStore Redis 服務的主要功能和用途:Cloud MemoryStore 可以作為
- 受管型記憶體資料庫服務,專為提供高效率和低延遲的快取解決方案而設計。
- 主要特點包括記憶體資料庫、受管型服務、自動擴展和Redis相容性。
- 它提供高可用性、可靠性,並易於設置和管理。 - GCP Cloud MemoryStore Redis 服務的使用情境:常見使用情境適用包括電子商務網站、多人遊戲、即時數據分析和醫療保健。在這些場景中,它提供快速、可擴展且低延遲的資料存取能力。
- GCP 運算服務 — 使用GCP Console創建 Cloud MemoryStore Redis:介紹如何在GCP Console上創建 Cloud MemoryStore Redis 並進行以下的任務
- 創建Cloud MemoryStore Redis服務:設定執行個體基本資訊、容量、區域、網路和版本。
- 創建VM作為Redis轉發的跳板機器:設定SSH Port forwarding以實現遠端連線。
- 測試服務:下載並使用Another Redis Desktop Manager來測試Redis連線,設定連線詳細資訊、測試連線與實際連線,確認整個連線到Redis的過程。
5. 相關連結
- Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code — https://github.com/qwedsazxc78/Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code
- Terraform-project-best-practice — https://github.com/qwedsazxc78/terraform-project-best-practice
- 歡迎訂閱我的udemy課程:Terraform 從零開始 — 10+實戰Lab打造GCP雲端自動化架構課程