使用 OCI 搜尋服務搭配 OpenSearch 建置應用程式內部搜尋

Oracle Cloud Infrastructure 搜尋服務 (使用 OpenSearch) 可讓您建置應用程式內搜尋,即使使用大型資料集也以毫秒為單位傳回結果。

OpenSearch,衍生自 Apache 2.0 授權 Elasticsearch 7.10.2 和 Kibana 7.10.2,是專為 Apache Lucene (以 Java 為基礎的搜尋與索引庫) 所建立的社群導向開放原始碼搜尋與分析套件。包含:
  • 搜尋引擎常駐程式:OpenSearch。
  • 視覺化與使用者介面:OpenSearch 儀表板。
OpenSearch 有許多使用案例,但通常可供應用程式用來搜尋大型資料集和日誌分析,以便快速進行調查和除錯。

架構

使用 OpenSearch 儲存並編製索引 OCI Search Service 上的應用程式資料,以加快應用程式內部搜尋速度,這取決於此處所描述的架構拓樸和互補。

下圖說明此參照架構。

appsearch-oci-arch.png 的描述如下
appsearch-oci-arch.png 圖解描述

appsearch-oci-arch.zip

架構具有下列元件:

  • 租用戶

    租用戶是註冊 OCI 時,Oracle 會在 Oracle Cloud 內設定的安全獨立分割區。您可以在租用戶的 Oracle Cloud 中建立、組織及管理您的資源。

  • 原則

    OCI 身分識別和存取管理原則會指定誰可以存取哪些資源以及如何存取。群組和區間層次會授予存取權,這表示您可以撰寫原則,讓群組在特定區間或租用的特定存取類型。

  • 區間

    區間是 OCI 租用戶內的跨區域邏輯分割區。使用區間組織 Oracle Cloud 中的資源、控制對資源的存取,以及設定使用配額。若要控制對指定區間中資源的存取,您可以定義原則,指定誰可以存取資源以及可執行的動作。

  • 虛擬雲網路 (VCN)

    OCI 中的第一個步驟之一,就是為雲端資源設定虛擬雲端網路 (VCN)。VCN 是您在 OCI 區域中設定的軟體定義網路。VCN 可以區段至子網路,成為區域或可用性網域的特定子網路。區域特定與可用性網域特定子網路都可以在同一個 VCN 中共存。子網路可以是公用或專用子網路。

  • 可用性網域

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

  • 容錯域

    容錯域是可用性網域內的一組硬體和基礎架構。每個可用性網域都具備三個具有獨立電源和硬體的容錯域。當您將資源分配給多個容錯域時,您的應用系統可以忍受容錯域中的實體伺服器失敗、系統維護和電源故障。

  • 防禦主機

    防禦主機是運算執行處理,可作為從雲端外部到拓樸的安全控制進入點。它可讓您存取放置在專用網路中的機密資源,這些資源無法直接從雲端外部存取。拓樸含有單一已知的輸入點,您可以定期監督和稽核。因此,您可以避免曝光拓樸之較機密的元件,而不需要存取這些元件。

  • 負載平衡器

    負載平衡器會將索引作業平衡到資料節點,而 Kibana 對主要節點的存取。它使用兩個監聽器 (一個用於 Kibana),一個用於索引資料存取 (使用主要節點後端和資料節點後端)。負載平衡器位於具有公用 IP 位址的公用子網路中。

  • 運算執行處理

    OCI 運算可讓您佈建及管理運算主機。您可以使用符合資源需求的資源配置啟動運算執行處理 (CPU、記憶體、網路頻寬以及儲存)。建立運算執行處理之後,您就可以安全地存取該執行處理、重新啟動磁碟區、連附及取消連附磁碟區,並在不需要時將其終止。

  • 網際網路閘道

    網際網路閘道允許 VCN 中的公用子網路和公用網際網路之間的流量。

  • 動態路由閘道 (DRG)

    DRG 是一個虛擬路由器,為企業內部部署網路與 VCN 之間的專用網路流量提供路徑,也可以用來在相同區域或跨區域遞送 VCN 之間的流量。

  • 保存庫

    OCI Vault 讓您能夠集中管理加密金鑰,這些加密金鑰可保護您的資料及用於保護雲端資源存取的機密證明資料。

  • VPN

    站對站 VPN 提供企業內部部署網路與 OCI VCN 之間的網站至網站 IPSec VPN 連線。IPSec 協定套件會在將封包從來源傳輸到目的地之前加密 IP 流量,並在流量抵達時解密流量。

  • 應用程式

    架構中的應用程式簡化並說明單一應用系統。如果是多層應用程式,後端將使用 OpenSearch 連線至 OCI 搜尋服務。對於分散式應用系統,它可以儲存大量資料的所有服務,以及其他需要搜尋的服務或使用者。

推薦

使用下列建議作為使用 OpenSearch 的 OCI 搜尋服務的起點,在雲端應用程式中建立應用程式搜尋功能您的要求可能與此處說明的架構不同。
  • VCN

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

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

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

  • 安全

    使用原則限制能夠存取您公司之 OCI 資源的人員及其存取方式。成功建立 OpenSearch 叢集的 OCI 搜尋服務需要特定原則。使用 Vault 來取得金鑰、憑證及加密密碼的額外保護。

    網路服務提供兩種虛擬防火牆功能,使用安全規則來控制封包層次流量:安全清單和網路安全群組 (NSG)。NSG 是一組包含傳入和傳出安全規則,僅適用於單一 VCN 中所選的一組 VNIC。例如,您可以選擇在 VCN 中多層應用程式的 Web 層中,作為 Web 伺服器的所有運算執行處理。

    NSG 安全性規則功能與安全性清單規則相同。不過,針對 NSG 安全規則的來源或目的地,您可以指定 NSG 而非 CIDR 區塊。因此,您可以輕鬆撰寫安全規則,以控制相同 VCN 中兩個 NSG 或單一 NSG 內的流量之間的流量。

  • 運算

    依需求選擇具備適當 OCPU 和記憶體組合的資源配置,並且根據每個執行處理佈建本機 NVMe 和 (或) 區塊儲存。

注意事項

使用 OCI Search Service 搭配 OpenSearch 在雲端應用程式中建立應用程式內部搜尋功能時,請考慮這些選項。

  • 如果您找不到 ORM 的 OpenSearch 外掛程式,請搜尋 ElasticSearch 7.10.2 相容外掛程式,或者使用 REST API。
  • 建立搜尋範本,以將來自使用者的搜尋查詢與預先定義的搜尋參數結合。
  • 若要使用本機機器的 OpenSearch 連線至 OCI 搜尋服務,請在公用子網路中設定防禦主機,然後設定 SSH 連接埠轉送以存取端點。或者透過 VPN 存取端點。專用子網路中的應用程式執行處理也可以透過防禦主機存取。

探索更多

若要深入瞭解 OCI Search Service with OpenSearch,以及如何有效導入 OCI 的一般資訊,請參閱下列資源:

確認

  • 作者:Hassan Ajan
  • 提供者:Nuno Goncalves