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

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