OpenSearch과 함께 OCI 검색 서비스를 사용하여 애플리케이션 내 검색 작성

OpenSearch를 사용한 Oracle Cloud Infrastructure 검색 서비스를 사용하면 대규모 데이터세트에서도 밀리초 단위로 결과를 반환할 수 있는 애플리케이션 내 검색을 구축할 수 있습니다.

Apache 2.0 라이센스 Elasticsearch 7.10.2 및 Kibana 7.10.2에서 파생된 OpenSearch은 Java 기반 검색 및 인덱싱 라이브러리인 Apache Lucene에 구축된 커뮤니티 기반 오픈 소스 검색 및 분석 제품군입니다. 다음으로 구성됩니다.
  • 검색 엔진 데몬: OpenSearch.
  • 시각화 및 사용자 인터페이스: OpenSearch 대시보드.
OpenSearch에는 많은 사용 사례가 있지만 일반적으로 대형 데이터세트 및 로그 분석을 검색하여 신속하게 조사 및 디버깅을 수행할 수 있습니다.

구조

애플리케이션 내 검색 속도를 높이기 위해 OpenSearch를 사용하여 OCI 검색 서비스에 애플리케이션 데이터를 저장 및 인덱스화하는 작업은 여기에 설명된 아키텍처 토폴로지 및 보완에 의존합니다.

다음 다이어그램은 이 참조 아키텍처를 보여줍니다.

다음은 appsearch-oci-arch.png에 대한 설명입니다.
그림 appsearch-oci-arch.png에 대한 설명

appsearch-oci-arch.zip

구조에는 다음과 같은 구성 요소가 있습니다.

  • 테넌시

    테넌시는 OCI에 등록할 때 Oracle Cloud에서 Oracle이 설정하는 안전한 격리된 파티션입니다. 테넌시 내 Oracle Cloud에서 리소스를 생성, 구성 및 관리할 수 있습니다.

  • 정책

    OCI ID 및 액세스 관리 정책은 어떤 리소스에 액세스할 수 있는 사람과 방법을 지정합니다. 그룹 및 구획 레벨에서 액세스 권한이 부여되므로 특정 구획 또는 테넌시에서 그룹에 특정 유형의 액세스 권한을 부여하는 정책을 작성할 수 있습니다.

  • 구획

    구획은 OCI 테넌시 내에서 지역 간 논리적 분할 영역입니다. 구획을 통해 Oracle Cloud에서 리소스를 구성하고, 리소스에 대한 액세스를 제어하고, 사용 할당량을 설정할 수 있습니다. 지정된 구획의 리소스에 대한 액세스를 제어하려면 리소스에 액세스할 수 있는 사람과 수행할 수 있는 작업을 지정하는 정책을 정의합니다.

  • VCN(가상 클라우드 네트워크)

    OCI의 첫 번째 단계 중 하나는 클라우드 리소스에 대한 VCN(가상 클라우드 네트워크)을 설정하는 것입니다. VCN은 OCI 지역에 설정한 소프트웨어 정의 네트워크입니다. VCN은 특정 지역 또는 가용성 도메인에 고유할 수 있는 서브넷으로 나눌 수 있습니다. 영역별 서브넷과 가용성 도메인별 서브넷 모두 동일한 VCN에 공존할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • 가용성 도메인

    가용성 도메인은 한 지역 내의 독립형 독립적인 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 내결함성을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 한 가용성 도메인에서 장애가 발생해도 해당 지역의 다른 가용성 도메인에 영향을 주지 않습니다.

  • 결함 도메인

    장애 도메인은 한 가용성 도메인 내 하드웨어와 인프라의 그룹입니다. 각 가용성 도메인에는 독립적인 전원 및 하드웨어의 3개의 장애 도메인이 있습니다. 여러 장애 도메인에 걸쳐 리소스를 분배할 경우 응용 프로그램은 결함 도메인 내에서 물리적 서버 오류, 시스템 유지 관리 및 전원 오류를 허용할 수 있습니다.

  • 배스천 호스트

    배스천 호스트는 클라우드 외부의 토폴로지에 대한 안전하고 제어되는 시작점 역할을 하는 컴퓨트 인스턴스입니다. 클라우드 외부에서 직접 액세스할 수 없는 전용 네트워크에 배치된 중요한 리소스에 액세스할 수 있습니다. 토폴로지에는 정기적으로 모니터링하고 감사할 수 있는 알려진 단일 시작점이 있습니다. 따라서 토폴로지의 보다 민감한 구성 요소를 노출하지 않고 노출하지 않아도 됩니다.

  • Load Balancer

    로드 밸런서는 데이터 노드에 대한 인덱스 작업 및 마스터 노드에 대한 Kibana 액세스 균형을 조정합니다. 이 리스너는 Kibana용 리스너와 인덱스 데이터 액세스용 리스너 중 하나를 사용하여 마스터 노드 백엔드 및 데이터 노드 백엔드를 사용합니다. 로드 밸런서가 공용 IP 주소의 공용 서브넷에 있습니다.

  • Compute Instance

    OCI 컴퓨팅을 사용하면 컴퓨트 호스트를 프로비저닝하고 관리할 수 있습니다. 리소스 요구사항(CPU, 메모리, 네트워크 대역폭, 스토리지)을 충족하는 구성으로 컴퓨트 인스턴스를 실행할 수 있습니다. 컴퓨트 인스턴스를 만든 후 안전하게 접근하여 다시 시작하고, 볼륨을 연결 및 분리하고, 필요하지 않을 경우 종료할 수 있습니다.

  • 인터넷 게이트웨이

    인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 사이의 트래픽을 허용합니다.

  • DRG(Dynamic Routing Gateway)

    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의 다중 계층 애플리케이션의 웹 계층에서 웹 서버로 작동하는 컴퓨트 인스턴스를 모두 선택할 수 있습니다.

    NSG 보안 규칙은 보안 목록 규칙과 동일하게 작동합니다. 그러나 NSG 보안 규칙의 소스 또는 대상의 경우 CIDR 블록 대신 NSG를 지정할 수 있습니다. 따라서 동일한 VCN의 두 NSG 또는 단일 NSG 내의 트래픽 간에 트래픽을 제어하는 보안 규칙을 쉽게 작성할 수 있습니다.

  • 컴퓨트

    적절한 OCPU 및 메모리 조합으로 구성을 선택하고 각 인스턴스에 대해 필요에 따라 로컬 NVMe 및/또는 블록 스토리지를 프로비저닝합니다.

고려 사항

OpenSearch와 함께 OCI 검색 서비스를 사용하여 클라우드 애플리케이션에서 애플리케이션 내 검색 기능을 구축하는 경우 다음 옵션을 고려하십시오.

  • ORM용 OpenSearch 플러그인을 찾을 수 없으면 ElasticSearch 7.10.2 호환 플러그인을 검색하고, 대신 REST API를 사용합니다.
  • 사용자의 검색 질의를 사전 정의된 검색 매개변수와 조합하기 위한 검색 템플리트를 작성합니다.
  • 로컬 시스템에서 OpenSearch를 사용하여 OCI 검색 서비스에 접속하려면 공용 서브넷에서 배스천 호스트를 설정하고 끝점에 액세스하도록 SSH 포트 전달을 설정합니다. 또는 VPN을 통해 끝점에 액세스합니다. 전용 서브넷에 있는 애플리케이션 인스턴스는 배스천 호스트를 통해 접근할 수도 있습니다.

추가 탐색

OpenSearch를 사용한 OCI 검색 서비스 및 OCI를 가장 잘 구현하는 방법에 대한 일반적인 정보는 다음 리소스를 참조하십시오.

수락

  • 작성자: 하산 아잔
  • 기여자: Nuno Goncalves