MySQL 是全球最熱門的開放原始碼關聯資料庫之一。其中一個廣受歡迎的原因,就是能夠根據使用者的工作負載需求,以多種方式代管及管理資料庫。使用者可以選擇將資料庫設為自行管理的地端部署系統、在雲端的虛擬機器中自行管理,或是使用雲端服務供應商的全代管服務。本文主要介紹自行管理的 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) 版本升級程序。使用者也可以將資料遷移至更高版本的執行個體,藉此升級主要版本。
優點
缺點
優點
缺點