Oracle Cloud Infrastructure 上部署高可用性的 Oracle REST Data Services

Oracle Cloud Infrastructure (OCI) 和 REST 上部署具備高可用性的 Oracle REST Data Services (ORDS),讓您的資料庫能夠發揮微服務架構和功能的優勢。

ORDS 會橋接 HTTPS 和您的 Oracle 資料庫。作為中間層 Java 應用程式,它提供資料庫管理 REST API、SQL Developer Web、PL/SQL 閘道、REST 的 SODA,以及可發布 RESTful Web 服務以與 Oracle 資料庫中的資料和預存程序互動。

ORDS 也透過支援使用 Oracle WebLogic Server 或 Apache Tomcat 或處於獨立模式的部署,提供更多的彈性。ORDS 會進一步簡化建置處理作業,因為不需要任何 Oracle 本位目錄,因為內嵌的 JDBC 驅動程式提供連線能力。

此參考架構描述如何跨多個 VM 運算執行處理部署 ORDS,為您的 Oracle 資料庫執行處理建立高可用性中間層。

架構

此架構示範如何在 OCI 上部署高可用性的 Oracle REST Data Services。

架構從單一區域內的虛擬雲端網路 (VCN) 開始。此 VCN 可跨多個可用性網域 (AD) 作為此參考架構,但會使用單一 AD。該 AD 包含多個容錯域,位於已分組硬體和基礎架構的 AD 內。使用 ORDS 的運算 VM 會部署在多個容錯域,以協助取得高可用性。

在 VCN 中,多個子網路包含特定的架構元件。它一開始是網際網路閘道,只允許透過指定連接埠傳送流量給公用子網路中此 VCN 前端的負載平衡器。負載平衡器也具有對外公開的 IP,您可以稍後視需要用來套用自訂網域名稱。負載平衡器將會與包含 ORDS 運算中間層的子網路交談。通訊受到全子網路安全清單和網路安全群組 (NSG) 的保護。您可以將這些 NSG 套用至運算和負載平衡器上的一組 VNIC,為這些資源之間的通訊提供精細的安全規則。

最後,再次採用安全清單和 NSG,ORDS 中間層可以存取專用子網路中的 Oracle 資料庫。使用專用子網路的資源並未指定對公用 IP。如此一來,您就可以使用 NSG 作為公用子網路與專用子網路之間的安全通訊層。此專用子網路中的 Oracle 資料庫執行處理可以是 VM 資料庫執行處理、自治式資料庫或 Exadata Cloud Service 資料庫。

下圖說明此參考架構。

ha-ords-oci3.png 描述如下
ha-ords-oci3.png 圖解描述

ha-ords-oci3.zip

此架構包含下列元件:
  • 地區

    OCI 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域獨立於其他區域,而廣大的距離可以將其分開 (跨國家或大陸)。

  • 可用性網域

    可用性網域是區域內的獨立獨立資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,以提供容錯能力。可用性網域不會共用基礎架構,例如電源或冷卻系統,也不會共用內部可用性網域網路。因此,一個可用性網域發生故障並不會影響該區域中的其他可用性網域。此架構中的資源會部署在單一可用性網域中。

  • 容錯域

    容錯域結合了可用性網域內的硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分散到多個容錯域時,您的應用程式可以容忍容錯域內的實體伺服器故障、系統維護和電源故障。此架構中的資源會部署在多個容錯域中。

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

    VCN 是您在 OCI 區域中設定的可自訂軟體定義網路。與傳統資料中心網路一樣,VCN 可讓您完全控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後變更。您可以將 VCN 區隔成子網路,此子網路可以設定區域範圍或可用性網域。每個子網路都是由連續的位址範圍組成,這些位址不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用或專用。

    在此參考架構中,具有 ORDS 的運算執行處理會連同負載平衡器一併連附至公用子網路,而資料庫則可以使用專用或公用子網路。資料庫安全最佳做法會儘可能將資料庫執行處理放在專用子網路中。

  • 負載平衡器

    Oracle Cloud Infrastructure Load Balancing 服務提供從單一進入點到後端多部伺服器的自動流量分配。此負載平衡器的公用 IP 也會在需要時用來註冊自訂網域名稱。

  • API 閘道

    Oracle Cloud Infrastructure API Gateway 可讓您發布內含可從您網路存取之專用端點的 API,並視需要向公用網際網路公開該端點。端點支援 API 驗證、要求和回應轉換、CORS、驗證和授權以及要求限制。

  • 運算執行處理 /ORDS 主機

    Oracle Cloud Infrastructure Compute 可讓您佈建及管理運算主機。您可以啟動資源配置符合資源需求 (CPU、記憶體、網路頻寬及儲存) 的運算執行處理。建立運算執行處理之後,您可以安全地存取該執行處理、重新啟動執行處理、連附磁碟區及取消連附磁碟區,並在不需要時將其終止。此架構中的 Web 伺服器使用 x86 或 ARM CPU 架構在運算虛擬機器上執行

  • 資料庫執行處理

    資料庫服務提供自主和共同管理的 Oracle Database 雲端解決方案。自治式資料庫是預先設定且完全受管理的環境,適用於交易處理或資料倉儲工作負載。共同管理的解決方案是裸機、虛擬機器和 Exadata 資料庫系統,您可以根據需求使用資源和設定值進行自訂。

    此參照架構可用於自治式資料庫或共同管理的資料庫執行處理。

  • 網路安全群組 (NSG)

    NSG 是作為運算執行處理的虛擬防火牆。透過 OCI 的零信任安全模型,所有流量都會被拒絕,您可以控制 VCN 中的網路流量。NSG 由一組傳入和傳出安全規則組成,僅適用於單一 VCN 中一組指定的 VNIC。在此架構中,負載平衡器、Web 伺服器及資料庫會使用個別的 NSG。

  • 路由表

    虛擬路由表包含將流量從子網路路由到 VCN 外部目的地 (通常是透過閘道) 的規則。

  • 網際網路閘道

    網際網路網關允許 VCN 中公共子網路與公共網際網路之間的流量。

  • 安全清單

    安全清單是一組傳入和傳出規則,用於指定子網路中所有 VNIC/ 執行處理允許進出的流量類型。安全清單會在子網路層級套用,而 NSG 則是在 VNIC 層級套用。兩者都可以作為 VNIC 的防火牆。透過 OCI 的零信任安全模型,所有傳送至 VNIC 的流量都會被拒絕。SL 和 NSG 都必須明確允許流量,才能允許傳送到 VNIC 的流量。

  • 零信任封包路由 (ZPR)

    除了 SL 和 NSG 之外,OCI 還具有名為 Zero-Trust Packet Routing 的網路安全建構。ZPR 是以意向為基礎的安全網路,在第 4 層採取行動,可以使用人類可讀的原則語言來實施。藉由將安全性屬性 (ZPR 的標記) 指派給您的資源,您可以建立精細的存取控制,以確保只有經過授權的實體能夠與機密元件 (例如資料庫和應用程式伺服器) 通訊。此方法不僅降低未經授權存取的風險,還可隨著應用程式發展而簡化政策管理。ZPR 與現有的 NSG 和 SL 同時運作,提供更全面的安全性狀態,可適應網路架構的變化。您可以在此處將安全屬性 (特殊的 ZPR 標記) 指定給每個子網路中的節點,如此一來,無論網路架構在未來如何變更 / 變更,都只允許必要的流量 (流量方向、通訊協定和連接埠)。

建議

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

    建立 VCN 時,請根據您計畫附加到 VCN 子網路的資源數量,決定所需的 CIDR 區塊數量和每個區塊的大小。請使用標準專用 IP 位址空間內的 CIDR 區塊。

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

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

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

    使用區域子網路。

    請考慮為每個網路邊界部署防火牆。

  • 負載平衡

    OCI 提供靈活的負載平衡。您可以建立上限和下限的負載平衡器,讓負載平衡器能夠根據傳入的要求數目進行擴展。界限的範圍從小到 10mbps 到 8000mbps。對於需要多重 AD 或多重區域負載平衡的執行處理,請使用 DNS Cloud Service 搭配流量管理操控功能。

  • 安全

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

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

  • 資料庫執行處理

    對於生產環境應用系統,Oracle 資料庫執行處理應遵循 OCI 中的 Oracle Maximum Availability Architecture (MAA) 部署模型。遵循這些準則可確保資料庫不僅具有高可用性,還能避免發生中斷和災害的發生。這些架構也會受益於使用 DR 執行處理的報告資料庫。

    MAA 架構直接內建於 Oracle Cloud Infrastructure Database 服務中,包括共同管理和自主管理。Data Guard、GoldenGate、RAC 和自動備份會立即可用,且應該用於適用的生產環境。

    將 RAC 與 Oracle Cluster Registry (OCR) Oracle Database 搭配使用時,請確定 ORDS 使用的資料庫連線資訊指向 SCAN 監聽器,而非個別節點。

  • 運算 /ORDS 執行處理

    調整運算中間層的大小時,請參閱下列圖表以取得建議:

    參照架構大小 (虛擬機器)

    若要瞭解區間中可用的資源配置清單,您也可以透過 CLI/ SDK 執行 List Shapes 作業。如需詳細資訊,請參閱 List Shapes API 文件和「電腦資源配置」(可從下方的「探索更多」存取)。

    若要瞭解 OCI 上預計的每月運算成本,您可以使用費用預估工具。您可以在「帳單與成本管理」頁面找到「帳單」的詳細資訊。您可以從下方的「探索更多」存取「成本預估工具」和「帳單與成本管理」。

    參照架構大小 (裸機)

注意事項

建置此參照架構時,請考量下列各點。

  • 效能

    運算、負載平衡器和 Database Cloud 執行個體都可以擴展,以處理增加的負載。透過運算 /ORDS 層,您可以快速建立其他執行處理,並將其新增至負載平衡器組態。對於資料庫層,可以將 Autonomous Database 設定為在負載增加時自動調整 CPU/ 記憶體。對於共同管理的執行處理,VM 型服務可調整 VM 上使用的 CPU 數目。就 Exadata 雲端服務而言,X8M 平台無法只擴展 CPU,但可以將節點新增至 RAC 叢集來增加額外的運算能力。

  • 安全

    請務必在您的子網路和 NSG 傳入 / 傳出規則中使用非常精細的規則。您只想要透過預期連接埠傳送給子網路中執行處理之特定 IP 的流量。如果需要存取運算或資料庫層,請使用堡壘主機即服務進行存取。這可確保只有獲得授權的使用者才能存取這些執行處理,並且只能存取他們被授予存取權的特定執行處理。與向公用網際網路公開 SSH 連接埠相比,使用堡壘主機即服務是較安全的方法。

  • 使用狀態

    遵循資料庫部署的 Oracle Maximum Availability Architecture (MAA) 指南。對於 ORDS,建議使用多個具有負載平衡器的中間層。同時提醒您,將 RAC 與 Oracle Database 搭配使用時,請確定 ORDS 使用的資料庫連線資訊指向 SCAN 監聽器,而不是指向個別節點。

  • 成本

    針對每個運算和資料庫層使用一般自動調整規模與調整,將有助於控制成本,讓您只需支付沒有過多或浪費 CPU、記憶體或執行處理的使用費用。成本也可以透過彈性的負載平衡器來控制。

部署

只要按一下,即可將此架構的程式碼提取到 Oracle Cloud Infrastructure Resource Manager,建立堆疊並進行部署。

Oracle Cloud Infrastructure Resource Manager Service 提供的架構使用單一自治式資料庫,而在上述架構中,Oracle 建議在生產環境中使用災害復原資料庫。此範例參考架構中運用此範例來節省成本、提升速度,以及更注重運算 /ORDS 高可用性 (HA) 部署。
使用 Oracle Cloud Infrastructure Resource Manager 中的範例堆疊來部署此架構:
  1. 按一下 部署至 Oracle Cloud

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

  2. 選取要在其中部署堆疊的區域。
  3. 依照螢幕上的提示和指示建立堆疊。
  4. 建立堆疊之後,按一下 Terraform 動作,然後選取計畫
  5. 等待工作完成,然後複查計畫。

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

  6. 如果不需要進一步變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取套用

探索更多

透過下列額外資源,深入瞭解如何在 Oracle Cloud Infrastructure 上部署具有高可用性的 Oracle REST Data Services:

.

確認

  • 作者Gagan S。科里
  • 貢獻者Eric Peterson, Mayur Raleraskar, Robert Wunderlich, Sherwood Zern

變更日誌

此日誌列出重大變更: