Day 19 — Terraform/GCP基礎 — 建議的 Terraform 開發最佳實踐
6 min readSep 24, 2023
文章目標:提供實用的建議,幫助讀者以更佳的方式開發和維護 Terraform 配置。
- 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. 連結Terraform與gcp的三種使用方法
使用者帳號與密碼 (user/password):
- 種類: 透過使用者帳號和密碼連接。
- 方法:在本地機器上安裝 gcloud CLI。使用 gcloud auth application-default login 命令輸入用戶名和密碼。
- 原理: 使用 gcloud CLI 認證,使 Terraform 具有對 GCP 資源的權限。
服務帳號 (service account):
- 種類: 透過服務帳號連接。
- 方法:創建一個服務帳號,配置 Terraform 代碼中的相關資訊,如憑證文件路徑和服務帳號 ID。
- 原理: 使用服務帳號的權限,使 Terraform 具有對 GCP 資源的權限。
使用 Cloud Shell:
- 種類: 透過 Cloud Shell 連接。
- 方法:通過網頁界面直接進入 Cloud Shell 環境,省去本地機器上安裝 gcloud CLI 的步驟。
- 原理: 在 Cloud Shell 登入時,預設使用使用者帳號權限,使 Terraform 具有對 GCP 資源的權限。
2.連結Terraform與gcp的最佳實踐
在上面的章節,我們比較了連結Terraform與gcp的三種使用方法,在實際操作上,我們建議使用使用者帳號與密碼 (user/password) 的方式,並搭配 gcloud CLI 以獲得專案權限,然後再進行後續的雲端開發是最好的方式。同時,我們也建議您在本地端開發時採用這種方式。
3. 總結 Summary
- 連結Terraform與GCP的三種使用方法:介紹使用者帳號與密碼 (user/password)、服務帳號 (service account)與使用 Cloud Shell等三種使用方式,並在方法與原理上做介紹。
- 建議的 Terraform 開發最佳實踐: 我們最建議使用使用者帳號與密碼的方式,並搭配 gcloud CLI 以獲得專案權限,然後再進行後續的雲端開發。同時,我們也建議您在本地端開發時採用這種方式。
4. 相關連結
- 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雲端自動化架構課程