自行管理的 MySQL 與 MySQL 適用的 Cloud SQL

MySQL 是全球最受歡迎的開放原始碼關聯資料庫之一。其中一個廣受歡迎的原因,就是能夠根據使用者的工作負載需求,以多種方式代管及管理資料庫。使用者可以選擇將資料庫設為以 on-premise 方式自行管理、透過雲端的虛擬機器自行管理,或是使用雲端服務供應商提供的全代管服務。本文著重介紹自行管理的 MySQL 選項,以及 Google Cloud 提供的全代管解決方案 MySQL 適用的 Cloud SQL。本文將介紹各選項的優缺點。

自行管理的 MySQL

自行管理的 MySQL 選項代表使用者 (在大部分的情況下是資料庫管理員) 需負責大部分的資料庫、作業系統 (OS)、網路、儲存空間、虛擬機器 (VM) 執行個體,以及代管資料庫執行個體和伺服器的硬體的設定、安裝和維護活動。有了 Google Cloud 等雲端服務供應商,您可以更輕鬆地完成許多工作,例如硬體、VM 執行個體、儲存空間、網路和作業系統等。無論使用者是自行管理地端部署的資料庫還是自行管理雲端,他們都必須負責進行一些必要的重大資料庫管理工作,以利系統順利運作。這些工作列於下方。

  • 可用性:硬體和軟體元件肯定會出錯。然而,使用者必須負責在設計系統時,以容許硬體和軟體故障的方式運作,並確保能夠持續提供資料庫、伺服器和應用程式。 
  • 資料庫維護: 在自行管理的 MySQL 中,使用者需要確保應用程式堆疊的各個層和軟體均更新為最新版本,並對服務終止、不支援或舊版的硬體、作業系統和其他軟體的支援做決策。此外,使用者需要定期安裝軟體、OS 和 MySQL 修補程式,同時確保資料庫維持正常運作,不會造成重大中斷。
  • 擴充性:應用程式用量隨著時間增加,因此提升資料庫效能的需求也隨之增加。 同樣地,如要支援大型工作負載或客戶群,硬體資源也必須向上擴充或向外擴充。 如為自行管理的 MySQL,使用者須承擔這項責任在地端部署環境中擴充硬體資源是一項非常耗時又複雜的活動,有時系統可能需要停機。
  • 安全性:最近,安全性已成為橫跨多層資料庫系統的重要環節,包括硬體的實體安全措施、設定網路防火牆和保護資料庫連線等。在自行管理設定下,這類複雜作業需要費心管理和專業知識。
  • 監控:除了 MySQL 的設定和安裝之外,使用者也必須費心監控堆疊中跨越所有層的多個元件,例如在硬體層級、OS 和 MySQL 進行監控,以及在發生錯誤時採取修正措施。

以下圖表顯示使用者選擇自行管理設定時須負的責任。雖然 Google Cloud 的自我管理功能可減少部分與硬體、運算、網路和儲存空間相關的工作,使用者仍須負責管理堆疊中的其他層。資料庫管理員和應用程式開發人員仍須投入足夠的時間、精神和資源管理 MySQL。

圖片顯示資料庫管理員的所有責任是自行管理資料庫託管

什麼是 MySQL 適用的 Cloud SQL?

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 EngineCompute EngineCloud Run,可讓您輕鬆開發深度整合的解決方案。Cloud SQL 也提供與 BigQueryLooker 的原生整合,可用來分析 Cloud SQL 中呈現的資料的處理作業。

修補Cloud SQL 這項代管服務會自動更新執行個體,確保基礎硬體和作業系統穩定、高效能、安全無虞和更新為最新版本。這類更新大多是在 Cloud SQL 執行個體啟動並運作時執行。不過,某些系統更新可能需要短暫的服務中斷,使用者可以自行定義升級活動的維護期間

版本升級:Cloud SQL 也提供自動化的資料庫 (MySQL) 版本升級程序。使用者也可以將資料遷移至更高版本的執行個體,藉此升級主要版本。  

如何在 MySQL 適用的 Cloud SQL 中建立 MySQL 資料庫執行個體?

自行管理 MySQL 的優缺點

優點

  1. 可使用MySQL 生態系統的任何 MySQL 分支 (例如 MariaDB 或 Percona) 來設定 MySQL。
  2. 使用者可以完全掌控執行個體、資源和作業系統,因此可以靈活設定 MySQL。此外,使用者可以使用自己偏好的 OS、依照喜好設定 OS,以及依據需求設定 MySQL,而不受任何限制。
  3. 使用者不受 Cloud SQL 的限制,例如 64 TB 儲存空間大小上限。使用者可以超過 64 TB 的儲存空間上限,並能使用更高的運算基礎架構來代管 MySQL。
  4. 使用者具備 MySQL 執行個體的完整存取權 (包括 SUPER 權限),以及作業系統的完整存取權 (包括 sudo 權限)。
  5. 即使 Cloud SQL 不支援其服務,使用者也能按照自己的需求設定高可用性和備用資源拓撲。

缺點

  1. 使用者負責於地端部署環境中管理複雜的硬體基礎架構、網路和資料中心作業。即便是在雲端自行管理 MySQL,使用者仍須處理複雜的設定、永久磁碟與執行個體的設定,以及處理高可用性叢集、安全性、災難復原和擴充性的設計和管理。
  2. 使用最新的修補程式將資料庫版本、作業系統版本和硬體系統保持在最新狀態,以避免錯誤和安全漏洞可能會產生高昂成本、資源、複雜度和停機時間。
  3. 除了設定資料庫外,使用者也必須設定及管理所有層的安全性,而不只是設定資料庫。例如,確保在傳輸過程中使用 SSL 加密連線、隨時將憑證保持在最新狀態、加密靜態資料,以及管理使用者和服務帳戶存取資料庫的權限。
  4. 為確保執行個體可用性,必須監控資料庫系統各層是否有任何錯誤。使用者必須花費額外的資源來調整監控工具的設定。您必須定義快訊,在出現錯誤時發出通知。此外,您需要採取措施來修正任何錯誤。
  5. 使用者需要花費大量的時間、資源和心力來設定及管理資料庫,而難以專注於應用程式開發。

MySQL 適用的 Cloud SQL 的優缺點

優點

  1. MySQL 適用的 Cloud SQL 提供容易使用的介面,讓開發人員和工程師,甚至是沒有資料庫專業知識的使用者,能建立、管理、存取及監控 MySQL 資料庫。想要快速上手,Cloud SQL 也可讓您輕鬆將現有的 MySQL 資料庫從地端部署系統或其他雲端環境遷移至 Google Cloud 的 MySQL 適用的 Cloud SQL
  2. MySQL 適用的 Cloud SQL 提供託管 MySQL 資料庫所需的豐富功能,可用於各種應用程式,包括微型網站的資料庫、重要性極高的大型企業應用程式、遊戲應用程式,以及用於數據分析的資料。有了這些豐富功能,使用者就能建構非常可靠且可擴充的應用程式。
  3. Cloud SQL 會與使用者共同負責安全性。Cloud SQL 可確保低層級基礎架構和網路的安全性,可讓使用者專心設定及開發較高層級的應用程式。
  4. Cloud SQL 提供各種安全性功能,例如社群版本無法立即使用的密碼驗證外掛程式稽核記錄等功能,這些功能相當複雜,難以在自行管理的環境中實作。Cloud SQL 可簡化並提供這些功能給使用者。
  5. Cloud SQL 提供多種與資料庫互動的方式。使用者可以根據自身需求使用 GUI、CLI 和 API ,輕鬆自訂作業程序。
  6. Cloud SQL 可輕鬆整合其他解決方案和 BigQuery 等產品,讓您以最輕鬆的方式開發數據分析解決方案。
  7. Cloud SQL 採用高可用性基礎架構、自我修復解決方案,以及最重要的全年無休 SRE 團隊,致力確保資料庫執行個體的穩定性。
  8. 使用者減少資料庫處理作業的時間和精力,可以專心處理應用程式開發,從而有效率地提供符合業務需求的解決方案。
  9. 除了幫助管理資料庫之外,Cloud SQL 也會提供提示和建議,利用查詢洞察建議等功能提升資料庫的效能。這些功能可讓您在雲端上託管及管理資料庫,既簡單、安全又符合成本效益。
  10. Cloud SQL 提供客戶服務,可簡化與資料庫相關的問題或要求所需的支援。

缺點

  1. Cloud SQL 不支援 MySQL 生態系統中的 MySQL 分支 (例如 MariaDB 和 Percona)。
  2. 不支援部分 MySQL 功能。進一步瞭解不受支援的功能
  3. Cloud SQL 最高支援搭載 624 GB 的 RAM 和 96 個 CPU 的機器類型。最多可使用 64 TB 的儲存空間。如果資料庫需要更高容量,目前只能使用自行管理的選項。

展開下一步行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
控制台
Google Cloud