기본적으로 데이터 노드, 마스터 노드, 대시보드 노드 3가지 노드로 구성이 되며 기본적으로 각 노드에 사용되는 컴퓨트 자원의 비용만 발생하지만(데이터노드 2개까지는 별도 관리비용 발생하지 않음), 데이터 노드를 HA 구성 (3개 이상)으로 구성시 노드별 시간당 $0.25 비용이 추가로 발생합니다.
자세한 내용은 OCI Opensearch 소개 페이지에서 확인할 수 있습니다.
Note: 화면 언어는 한국어(Korean)로 설정하고 진행합니다. 언어 변경은 우측 상단의 Language 아이콘을 선택하고 변경할 수 있습니다.
opensearch 서비스에서 vcn의 리소스 접근을 위해 아래와 같이 정책을 작성하여 줍니다.
정책 작성 시 VCN이 생성되어 있는 구획(Compartments)에 작성하거나 VCN 구획의 상위 구획에 작성해야 합니다.
예) VCN이 “Root구획/VCN구획“와 같에 생성되어 있는 경우 Root구획 또는 VCN구획에 정책을 작성합니다.
Allow service opensearch to manage vcns in compartment [구획이름]
Allow service opensearch to manage vnics in compartment [구획이름]
Allow service opensearch to use subnets in compartment [구획이름]
Allow service opensearch to use network-security-groups in compartment [구획이름]
현재 포스팅 작성 시점 기준으로(2022년 10월 중순) OCI Opensearch 에서는 공용 서브넷에 프로비전을 지원하지 않습니다. 클러스터 생성 시 공용 서브넷을 선택하더라도 공용 IP가 아닌 전용 IP만 할당됩니다.
만약 이 단계에서 클러스터 생성이 테넌트 리소스 제한으로 생성되지 않는다면 서비스 한도 증가 요청 가이드 의 내용을 참고하여 opensearch 서비스의 클러스터 제한 증가 요청 후 진행해야 합니다.
OpenSearch 클러스터 생성 단계에서 언급한 내용과 같이 현재 OCI Opensearch 서비스의 경우 Private 네트워크에 프로비전 되기 때문에 Public 영역에 있는 Bastion Host, VM을 통해 서비스에 접속해야 합니다. 그렇기 때문에 OpenSearch 클러스터가 생성된 VCN의 공용 서브넷 영역에 Compute Instance를 프로비전 합니다. (이 포스팅에서는 자세한 프로비전 내용을 다루지 않습니다.)
Bastion 인스턴스를 생성 후 OpenSearch 클러스터가 생성되었는지 확인합니다. 생성되었다면 아래 내용을 참고하여 Sample data를 입력합니다.
ssh -i [키파일 경로] opc@[bastionVM PublicIP]
$ curl -O "https://raw.githubusercontent.com/oracle-livelabs/oci/main/oci-opensearch/files/OCI_services.json"
$ curl -H 'Content-Type: application/x-ndjson' -XPOST "[cluster-api-end-point]/oci/_bulk?pretty" --data-binary @OCI_services.json
$ curl "[cluster-api-end-point]/_cat/indices"
$ curl -X GET "[cluster-api-end-point]/oci/_search?q=title:Kubernetes&pretty"
앞서 설명한 내용과 같이 OpenSearch 클러스터 뿐 아니라 OpenSearch Dashboard 역시 Private 네트워크 위에 프로비전 됩니다. 로컬에서 Dashboard에 접속하려면 아래 내용을 따라 SSH 터널링 작업이 필요합니다.
$ ssh -C -v -t -L 127.0.0.1:5601:<your_opensearch_dashboards_private_IP>:5601 opc@<your_instance_public_ip> -i <path_to_your_private_key>
https://localhost:5601
이 글은 개인적으로 얻은 지식과 경험을 작성한 글로 내용에 오류가 있을 수 있습니다. 또한 글 속의 의견은 개인적인 의견으로 특정 회사를 대변하지 않습니다.
Younghwan Cho CLOUDNATIVE
oci opensearch opendashboard elasticsearch kibana