部署高可用性 Apache Cassandra 叢集

Apache Cassandra 是一個開放原始碼 NoSQL 資料庫。它會線性調整比例,並自動將資料複製到多個節點。在 Oracle Cloud Infrastructure 中執行您的 Apache Cassandra 叢集,並充分利用企業級可靠性、安全性及作業彈性。

架構

此參照架構顯示 Oracle Cloud Infrastructure 運算執行處理上執行之 Apache Cassandra 叢集的 6-node 部署。

cassandra-oci.eps 說明如下
cassandra-oci.eps 圖解描述

架構包含下列元件:

  • 區域

    Oracle Cloud Infrastructure 區域是一個區域化的地理區域,其中包含一或多個稱為可用性網域的資料中心。區域與其他區域無關,而且大型距離可以區隔 (跨國家或甚至洲)。

    此架構中的所有元件都會部署在單一區域中。

  • 可用性網域

    可用性網域是區域內獨立的獨立資料中心。每個可用性網域中的實體資源都會與其他可用性網域中的資源隔離,以提供容錯。可用性網域不會共用基礎架構,例如電源、冷卻或內部可用性網域網路。因此,一個可用性網域的失敗並不會影響區域中的其他可用性網域。

  • 容錯域

    容錯域是一組可用性網域內的硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。在多個容錯域之間分配資源時,您的應用程式可能會容許容錯某個容錯域內的實體伺服器故障、系統維護及電源故障。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。VCN 就像傳統資料中心網路一樣,可讓您完全控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後進行變更。您可以將 VCN 區隔為子網路,子網路範圍可為區域或可用性網域。每個子網路均包含一個未與 VCN 中其他子網路重疊的連續位址範圍。您可以在建立之後變更子網路的大小。子網路可以是公用或專用。

  • Apache Cassandra 叢集

    此架構顯示 Apache Cassandra 叢集,其中包含三個原始內建值節點以及在 Oracle Cloud Infrastructure Compute 執行處理上執行的三個非內建節點。節點會分佈在單一可用性網域內的容錯域之間。所有運算執行處理都會連附至單一公用子網路。

  • 網路閘道

    此架構中的網際網路閘道可允許公用子網路與公用網際網路之間的流量。

  • 安全清單

    您可以為每個子網路建立安全規則,以指定子網路中必須允許的來源、目的地以及流量類型。

    此架構包括 TCP 連接埠 7000、7001、7199、9042 以及 9160 的輸入規則。Apache Cassandra 使用連接埠 7000 作為叢集之間的通訊 (如果啟用 SSL,則使用連接埠 7001) 和 JMX 的連接埠 7199。連接埠 9042 是從屬端連接埠,9160 是原生傳輸連接埠。

  • 路由表

    虛擬路由表包含將流量從子網路路由至 VCN 外部之目的地的規則,通常會透過閘道。

推薦

您的需求可能會與此處描述的架構不同。使用下列建議作為起點。

  • 運算資源配置和作業系統

    針對此架構提供的 Terraform 樣板會部署執行 Oracle Linux 7。8 的運算執行處理。視需要為運算執行處理選擇適當的資源配置。Apache Cassandra 節點的記憶體越大,其讀取效能越佳。數目較高的 CPU 會轉譯成較佳的寫入效能。

  • VCN

    建立 VCN 時,請根據計畫連附至 VCN 中子網路的資源數目,判斷所需的 CIDR 區塊數目和各個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。

    選取未與您想要設定專用連線之任何其他網路 (在 Oracle Cloud Infrastructure、內部部署資料中心或其他雲端提供者中) 重疊的 CIDR 區塊。

    建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。

    設計子網路時,請考量您的流量和安全需求。將特定層或角色內的所有資源連附至可作為安全界限的相同子網路。

    使用區域子網路。

  • 安全性
    • 使用 Oracle Cloud Guard 主動監督及維護您在 Oracle Cloud Infrastructure 中的資源安全。「雲端保全」使用可定義的偵測器方法來檢查安全弱點的資源,以及監督操作員和使用者是否有風險活動。偵測到任何組態錯誤或不安全的活動時,雲端保全會建議更正動作,並根據您可以定義的回應器方法來協助採取這些動作。

    • 對於需要最高安全性的資源,Oracle 建議您使用安全區域。安全區域是與以最佳做法為基礎之 Oracle 定義的安全原則方法關聯的區間。例如,安全區域中的資源不得從公用網際網路存取,且必須使用客戶管理的金鑰加密。當您在安全區域中建立及更新資源時,Oracle Cloud Infrastructure 會根據 security-zone 處方中的原則驗證作業,並拒絕違反任何原則的作業。

考量

實行此架構時,請注意下列因素:

  • 擴展性

    此架構會在每個容錯域部署一個 Apache Cassandra 原始內建值節點和一個非饋送節點。您可能需要更多節點來滿足應用程式的效能或高可用性需求。

    您可以新增更多運算執行處理來水平擴展 Apache Cassandra 叢集。您可以在容錯域之間分配原始內建值節點。

    您可以變更每個運算執行處理的資源配置,以垂直擴展叢集。使用核心數目較高的資源配置會增加配置給運算執行處理及其網路頻寬的記憶體。

  • 應用程式可用性

    在此架構中,執行相同工作的運算執行處理會在多個容錯域間以備援方式分散。此設計可消除拓樸中的任何單點失敗。

    建置架構之後,您可以使用 PuTTY 或 Git Bash 等 SSH 工具連線至 Apache Cassandra 節點的公用 IP 位址。您可以將 Cassandra 查詢語言 (CQL) 用於 Apache Cassandra 資料庫上的 DDL 和 DML 作業。

  • 成本

    裸機資源配置提供更好的讀取和寫入效能。如果您的應用程式不需要高效能,您可以根據資料庫所需的核心、記憶體以及網路頻寬來選取 VM 資源配置。您可以從 Apache Cassandra 節點的單核心資源配置開始,並在稍後需要更多效能、記憶體或網路頻寬時變更資源配置。

建置

您可以從 GitHub 取得部署此參照架構所需的程式碼。只要按一下即可將程式碼提取至 Oracle Cloud Infrastructure Resource Manager,然後建立堆疊並加以部署。或者,從 GitHub 下載程式碼到您的電腦、自訂程式碼,以及使用 Terraform CLI 建置架構。

  • 使用 Oracle Cloud Infrastructure Resource Manager 進行部署:
    1. 一下部署到 Oracle Cloud

      如果您尚未登入,請輸入租用戶和使用者證明資料。

    2. 複查並接受條款與條件。
    3. 選取要建置堆疊的區域。
    4. 依照畫面上的提示和指示建立堆疊。
    5. 建立堆疊之後,請按一下 Terraform 動作,然後選取畫。
    6. 等待工作完成,然後複查計劃。

      若要進行任何變更,請返回「堆疊詳細資訊」頁面,按一下編輯堆疊,然後進行必要的變更。然後,再次執行「劃」動作。

    7. 如果不需要進一步的變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取用。
  • 使用 Terraform CLI 部署:
    1. 前往 GitHub
    2. 將儲存區域複製或下載到您的本機電腦。
    3. 依照 README 文件中的指示進行。

變更日誌

此日誌列出重大變更: