MySQL 是全球最受歡迎的開放原始碼關聯資料庫之一。其中一個廣受歡迎的原因,就是能夠根據使用者的工作負載需求,以多種方式代管及管理資料庫。使用者可以選擇將資料庫設為以 on-premise 方式自行管理、透過雲端的虛擬機器自行管理,或是使用雲端服務供應商提供的全代管服務。本文著重介紹自行管理的 MySQL 選項,以及 Google Cloud 提供的全代管解決方案 MySQL 適用的 Cloud SQL。本文將介紹各選項的優缺點。
自行管理的 MySQL 選項代表使用者 (在大部分的情況下是資料庫管理員) 需負責大部分的資料庫、作業系統 (OS)、網路、儲存空間、虛擬機器 (VM) 執行個體,以及代管資料庫執行個體和伺服器的硬體的設定、安裝和維護活動。有了 Google Cloud 等雲端服務供應商,您可以更輕鬆地完成許多工作,例如硬體、VM 執行個體、儲存空間、網路和作業系統等。無論使用者是自行管理地端部署的資料庫還是自行管理雲端,他們都必須負責進行一些必要的重大資料庫管理工作,以利系統順利運作。這些工作列於下方。
以下圖表顯示使用者選擇自行管理設定時須負的責任。雖然 Google Cloud 的自我管理功能可減少部分與硬體、運算、網路和儲存空間相關的工作,使用者仍須負責管理堆疊中的其他層。資料庫管理員和應用程式開發人員仍須投入足夠的時間、精神和資源管理 MySQL。
Cloud SQL 是一套全代管的資料庫服務,可讓您輕鬆設定、維護及管理 Google Cloud 中的 MySQL、PostgreSQL 和 SQL Server 資料庫。Cloud SQL 可管理 MySQL 資料庫的硬體、網路、OS、安全性、監控、維護、可用性和資源調度的所有層面。使用者無須承擔上述責任,因此他們可以專心開發應用程式,為客戶創造價值。
下圖的圖表類似於上圖,其中顯示管理 MySQL 資料庫不同層所涉及的工作,唯一的差別在於 Cloud SQL 代表使用者管理的所有工作皆以藍色表示。
除了管理上述的許多工作之外,Cloud SQL 還提供各種在自行管理環境中未內建的功能與解決方案。以下列出 Cloud SQL 提供的一些主要功能。
可靠性:備份與復原是資料庫管理最重要的活動。Cloud SQL 提供自動備份和隨選備份,可在資料損毀、發生災難或出現非預期的資料修改時,將資料庫還原至特定時間點。
可用性:Cloud SQL 可運用自動容錯移轉功能,跨多個可用區將代管資料庫的多個伺服器執行個體化,藉此在 VM 或資料中心發生錯誤時提供高可用性。Cloud SQL 保證在全球都有 99.95% 以上的可用性。
除了高可用性功能外,Cloud SQL 還提供全年無休的網站可靠性工程 (SRE) 團隊,負責在 Google Cloud 中,確保 MySQL 適用的 Cloud SQL 資料庫執行個體的可靠性。
此外還提供跨區域讀取備用資源功能,可在發生錯誤時做為災難復原機制。可讓使用者在不受到影響的情況下,在其他網站 (區域) 快速開啟受影響的資料庫。
擴充性:Cloud SQL 可在相同區域,或是允許備用資源和主要執行個體的提供服務要求的遠端區域內,建立 MySQL 唯讀備用資源,例如額外 MySQL 唯讀執行個體,從而提供更好的讀取效能。唯讀備用資源也可用來製作報表,也可以在滿足業務需求後刪除。
Cloud SQL 可讓您在極短的停機時間內,擴充資源 (CPU、記憶體和儲存空間) 及縮減 MySQL 執行個體上的資源。然而,如果是自行管理的設定,這類複雜活動需要大量的心力、專業知識與規劃。
安全性:MySQL 適用的 Cloud SQL 資料庫伺服器位於 Google Cloud 安全的資料中心,以確保最高等級的安全性。此外,Google Cloud 提供可連結虛擬私有雲的私人連線,以及由使用者控管的網路存取權 (包括防火牆防護),可確保使用者資料庫伺服器免於惡意人士的侵擾。
資安的另一個層面是遵循安全性法規。Cloud SQL 符合許多公認的法規,例如 SSAE 16、ISO 27001、PCI DSS,以及《健康保險流通與責任法案》。
Cloud SQL 可讓您透過身分與存取權管理整合功能,管理使用者和其資料庫存取權。這項整合功能可管理 Google Cloud 使用者的授權和驗證作業,並針對特定 Google Cloud 資源提供精細的存取方式,防止他人未經授權存取資料庫。另外,Cloud SQL 提供預先定義的角色,可用於控管 Cloud SQL 資源的存取權,讓您輕鬆管理身分與存取權。
Cloud SQL 的另一項安全性功能是將靜態資料和傳輸中的資料加密,確保未經授權的使用者無法存取使用者資料。
Cloud SQL 為資料庫使用者提供密碼驗證功能,方便客戶在執行個體層級定義密碼複雜度、密碼長度下限、密碼變更間隔和在密碼中使用使用者名稱等密碼政策。客戶也可以針對個別使用者設定密碼有效期限、嘗試失敗次數和舊有密碼變更規定的政策。Cloud SQL 的這些功能提供了安全性法規遵循的最佳做法,並降低未經授權存取重要資料的風險。
Cloud SQL 也提供一種方式,可讓您透過稽核記錄外掛程式,稽核 MySQL 資料庫上的動作和作業。稽核記錄可針對使用者、動作、物件和時間提供深入分析。資料庫稽核功能可讓您追蹤資料庫中的特定使用者動作,例如更新資料表、讀取查詢、授予使用者權限等。
觀測能力:Cloud SQL 提供多種監控解決方案,且立即可用的指標仍持續增加,可提供資料庫狀態的深入分析資訊。使用者可以運用指標建立快訊,讓管理員隨時掌握資料庫健康狀態。
Cloud SQL 還提供查詢洞察和建議工具等功能,讓使用者能進行疑難排解,以及找出查詢或工作負載的效能瓶頸。這些功能在自行管理的 MySQL 環境中難以複製。
整合:Cloud SQL 可讓您輕鬆建立網路連線,並與 Google Cloud 中的其他服務整合,例如 Google Kubernetes Engine、Compute Engine 和 Cloud Run,可讓您輕鬆開發深度整合的解決方案。Cloud SQL 也提供與 BigQuery 和 Looker 的原生整合,可用來分析 Cloud SQL 中呈現的資料的處理作業。
修補:Cloud SQL 這項代管服務會自動更新執行個體,確保基礎硬體和作業系統穩定、高效能、安全無虞和更新為最新版本。這類更新大多是在 Cloud SQL 執行個體啟動並運作時執行。不過,某些系統更新可能需要短暫的服務中斷,使用者可以自行定義升級活動的維護期間。
版本升級:Cloud SQL 也提供自動化的資料庫 (MySQL) 版本升級程序。使用者也可以將資料遷移至更高版本的執行個體,藉此升級主要版本。
優點
缺點
優點
缺點