OpenSearch 설치 · 8 min read · Sep 12, 2025
Ubuntu 24.04에 OpenSearch 설치하는 방법

OpenSearch는 Amazon이 주도하는 커뮤니티 기반 프로젝트로, Elasticsearch와 Kibana의 포크입니다. 이는 풍부한 기능과 혁신적인 기능을 갖춘 완전한 오픈 소스 검색 엔진 및 분석 스위트입니다. OpenSearch 프로젝트의 주요 구성 요소는 OpenSearch(Elasticsearch의 포크)와 OpenSearch Dashboards(Kibana의 포크)입니다. 두 구성 요소는 기업 보안, 경고, 기계 학습, SQL, 인덱스 상태 관리 등의 기능을 제공합니다.
이 가이드는 Ubuntu 24.04 서버에 OpenSearch 및 OpenSearch Dashboard를 설치하는 방법을 보여줍니다. 또한 TLS 인증서로 OpenSearch를 보호하고 사용자 이름과 비밀번호로 인증을 활성화합니다.
필수 조건
시작하기 전에 다음 사항을 확인하세요:
- 최소 8GB의 RAM을 갖춘 Ubuntu 24.04 서버
- 관리자 서버 권한을 가진 비루트 사용자
OpenSearch 저장소 추가
시작하려면 OpenSearch 및 OpenSearch Dashboard 저장소를 시스템에 추가해야 합니다. 이 예제에서는 OpenSearch의 최신 안정 버전을 사용할 것입니다.
먼저, 아래 명령어를 실행하여 Ubuntu 시스템에 기본 패키지를 설치합니다.
sudo apt install lsb-release ca-certificates curl gnupg2 -y다음 명령어로 OpenSearch 저장소의 GPG 키를 다운로드합니다.
curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring아래 명령어로 OpenSearch 및 OpenSearch Dashboard의 저장소를 시스템에 추가합니다. 이 예제에서는 OpenSearch 2.x 안정 버전을 사용할 것입니다.
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list마지막으로, 아래의 ‘ apt ‘ 명령어를 실행하여 패키지 인덱스를 업데이트하고 새로운 OpenSearch 패키지 정보를 가져옵니다.
sudo apt updateOpenSearch 및 OpenSearch Dashboard 설치
OpenSearch 저장소가 추가된 후, APT 패키지 관리자를 통해 OpenSearch 및 OpenSearch Dashboard를 설치합니다. 그런 다음, ‘ systemctl ‘ 유틸리티를 통해 두 서비스를 시작합니다.
OpenSearch를 설치하기 전에 아래 명령어를 실행하여 OpenSearch 설치를 위한 무작위 비밀번호를 생성합니다. 출력 결과를 복사하고 대문자, 숫자 및 기호를 포함해야 합니다.
sudo openssl rand -hex 16이제 아래 명령어를 실행하여 ‘ opensearch ‘ 및 ‘ opensearch-dashboard ‘ 패키지를 설치합니다. ‘ OPENSEARCH_INITIAL_ADMIN_PASSWORD ‘를 변경하고 설치를 확인하기 위해 ‘ Y ‘를 입력해야 합니다.
sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=B07e_af7e9f8fe12e@85ab797ddc1f174Dapt-get install opensearch opensearch-dashboard설치가 완료되면, 아래의 ‘ systemctl ‘ 명령어를 실행하여 systemd 관리자를 다시 로드하고 새로운 서비스 파일을 적용합니다.
sudo systemctl daemon-reload이제 아래 명령어로 OpenSearch를 시작하고 활성화하며 상태를 확인할 수 있습니다.
sudo systemctl enable --now opensearch
sudo systemctl status opensearch아래에서 OpenSearch가 실행 중임을 확인할 수 있습니다.

마지막으로, 아래 명령어를 사용하여 OpenSearch Dashboard 서비스를 시작하고 활성화하며 상태를 확인할 수 있습니다.
sudo systemctl enable --now opensearch-dashboards
sudo systemctl status opensearch-dashboards다음 출력에서 ‘ opensearch-dashboards ‘ 서비스가 실행 중임을 확인할 수 있습니다.

OpenSearch 구성
OpenSearch가 설치되면, ‘ /etc/opensearch/opensearch.yml ‘ 파일을 통해 설치를 구성합니다. 필요에 따라 OpenSearch의 기본 최대 JVM(자바 가상 메모리) 크기도 증가시킵니다.
기본 OpenSearch 구성 ‘ /etc/opensearch/opensearch.yml ‘을 ‘ nano ‘ 편집기로 엽니다.
sudo nano /etc/opensearch/opensearch.yml다음 OpenSearch 구성을 변경합니다:
- ‘ network.host ‘ 옵션을 로컬 IP 주소로 변경
- ‘ discovery.type ‘을 ‘ single-node ‘로 추가하여 OpenSearch를 단일 모드로 실행
- ‘ plugins.security.disabled ‘를 ‘ false ‘로 설정
# OpenSearch를 올바른 네트워크 인터페이스에 바인딩합니다. 0.0.0.0을 사용하여 모든 사용 가능한 인터페이스를 포함하거나 특정 인터페이스에 할당된 IP 주소를 지정합니다.
network.host: 192.168.10.60
# 클러스터를 이미 구성하지 않았다면, discovery.type을 single-node로 설정해야 합니다. 그렇지 않으면 서비스를 시작할 때 부트스트랩 검사가 실패합니다.
discovery.type: single-node
# 이전에 opensearch.yml에서 보안 플러그인을 비활성화한 경우, 다시 활성화해야 합니다. 그렇지 않으면 이 설정을 건너뛸 수 있습니다.
plugins.security.disabled: false작업이 끝나면 파일을 저장하고 편집기를 종료합니다.
다음으로, ‘ /etc/opensearch/jvm.options ‘의 JVM(자바 가상 머신) 구성을 ‘ nano ‘ 편집기로 엽니다.
sudo nano /etc/opensearch/jvm.options필요에 따라 OpenSearch의 기본 최대 메모리를 증가시킵니다. 기본 값은 ‘ 1GB ‘입니다.
-Xms2g
-Xmx2g파일을 저장하고 종료합니다.
마지막으로, 아래의 ‘ systemctl ‘ 명령어를 실행하여 ‘ opensearch ‘를 재시작하고 변경 사항을 적용합니다. 이렇게 하면 OpenSearch가 단일 모드로 로컬 IP 주소에서 실행됩니다.
sudo systemctl restart opensearchTLS/SSL 인증서로 OpenSearch 보호
이제 OpenSearch를 구성했으므로, SSL/TLS 인증서를 통해 OpenSearch 보안을 설정해야 합니다. 이 섹션에서는 데모 인증서를 비활성화한 다음, 루트 인증서, 관리자 인증서 및 호스트/서버 인증서를 생성합니다.
SSL 인증서를 생성하기 전에 아래 명령어를 사용하여 OpenSearch에서 데모 인증서를 삭제합니다.
rm -f /opt/opensearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem}‘ /etc/opensearch/opensearch.yml ‘ 파일을 ‘ nano ‘ 편집기로 수정합니다.
sudo nano /etc/opensearch/opensearch.ymlOpenSearch의 보안 구성을 다음과 같이 주석 처리합니다.

파일을 저장하고 편집기를 종료합니다.
이제 ‘ /etc/opensearch/certs ‘라는 새 디렉토리를 만들고 그 안으로 이동합니다. 이 디렉토리는 OpenSearch의 새 인증서를 저장하는 데 사용됩니다.
mkdir -p /etc/opensearch/certs; cd /etc/opensearch/certs루트 인증서 생성
먼저, 아래 명령어를 실행하여 다른 인증서(서버 및 클라이언트 인증서 등)에 서명하는 데 사용할 루트 인증서를 생성합니다.
openssl genrsa -out root-ca-key.pem 2048이제 아래 명령어를 실행하여 개인 키에서 루트 인증서를 생성합니다. ‘ -subj ‘ 옵션을 서버 세부 정보로 변경해야 합니다.
openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730관리자 인증서 생성
아래와 같이 관리자 인증서에 대한 새 개인 키를 생성합니다.
openssl genrsa -out admin-key-temp.pem 2048아래 명령어를 사용하여 관리자 키를 PKCS8 형식으로 변환합니다.
openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem다음으로, 아래 명령어를 사용하여 관리자 인증서에 대한 새 서명 요청 인증서(CSR)를 생성합니다.
openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr이제 아래 명령어를 실행하여 루트 인증서로 새 관리자 요청 인증서(CSR)에 서명합니다.
openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730호스트 또는 서버 인증서 생성
OpenSearch 호스트/서버에 대한 개인 키를 생성하고 인증서를 PKCS8 형식으로 변환합니다.
openssl genrsa -out ubuntu24-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in ubuntu24-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out ubuntu24-key.PEM이제 아래 명령어를 실행하여 호스트에 대한 인증서 요청(CSR)을 생성합니다. CN 또는 공통 이름은 호스트 서버의 fqdn과 일치해야 하며 호스트 이름이 아닙니다. 이 예제에서 서버의 fqdn은 ‘ ubuntu24.howtoforge.local ‘입니다.
openssl req -new -key ubuntu24-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ubuntu24.howtoforge.local" -out ubuntu24.csr다음으로, 아래 명령어를 실행하여 호스트/서버의 DNS를 포함하는 새 확장 파일을 생성합니다.
echo 'subjectAltName=DNS:ubuntu24.howtoforge.local' > ubuntu24.ext마지막으로, 아래 명령어를 실행하여 루트 인증서로 호스트/서버 인증서에 서명하고 이전에 생성한 확장 파일을 포함합니다.
openssl x509 -req -in ubuntu24.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out ubuntu24.pem -days 730 -extfile ubuntu24.ext인증서 설정
임시 인증서, 관리자 및 호스트에 대한 CSR(인증서 요청) 및 확장 파일을 아래와 같이 삭제합니다.
rm *temp.pem *csr *ext
ls이제 ‘ root-ca.pem ‘ 인증서를 ‘ root-ca.crt ‘ 파일로 변환합니다.
openssl x509 -outform der -in root-ca.pem -out root-ca.crt그 후, ‘ root-ca.crt ‘ 인증서를 ‘ /usr/local/share/ca-certificates ‘ 디렉토리로 복사하고 루트 인증서를 서버에 로드합니다.
sudo cp root-ca.crt /usr/local/share/ca-certificates
sudo update-ca-certificates
마지막으로, 인증서 파일 및 디렉토리에 대한 적절한 권한 및 소유권을 설정하는 아래 명령어를 실행합니다.
sudo chown -R opensearch:opensearch /etc/opensearch/certs
sudo chmod 0700 /etc/opensearch/certssudo chmod 0600 /etc/opensearch/certs/*.pem
sudo chmod 0600 /etc/opensearch/certs/*.crtOpenSearch에 인증서 추가
OpenSearch용 TLS 인증서를 생성한 후, ‘ opensearch.yml ‘ 파일에 새 구성을 추가해야 합니다. 이 경우, bash 스크립트를 통해 ‘opensearch.yml’에 새 구성을 추가합니다.
OpenSearch 서버에 인증서를 추가하기 전에 아래 명령어를 실행하여 ‘ opensearch.yml ‘ 파일을 백업하고 서버 fqdn을 설정합니다.
sudo cp /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml.orig
sudo hostnamectl set-hostname ubuntu24.howtoforge.local이제 ‘ add-cert.sh ‘ 파일을 ‘ nano ‘ 편집기로 생성합니다.
nano add-cert.sh다음 구성을 파일에 삽입합니다. 이를 통해 OpenSearch 구성 파일 ‘ opensearch.yml ‘에 새 구성을 추가합니다.
#! /bin/bash
# 이 스크립트를 실행하기 전에, 노드의 구별된 이름의 CN을 실제 DNS A 레코드로 교체해야 합니다.
echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo " - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo " - 'CN=ubuntu24.hwdomain.lan,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml작업이 끝나면 파일을 저장하고 편집기를 종료합니다.
이제 ‘ add-cert.sh ‘ 파일을 실행 가능하게 만들고 아래 명령어로 실행합니다. 새 구성이 ‘opensearch.yml’ 파일에 추가됩니다.
chmod +x add-cert.sh
./add-cert.sh
비밀번호 인증으로 OpenSearch 보호
이제 SSL/TLS 인증서로 OpenSearch를 구성했으므로, 다음 단계에서는 OpenSearch에 대한 비밀번호 인증을 설정합니다. OpenSearch 및 OpenSearch Dashboard에 로그인하는 데 사용할 두 사용자를 설정합니다.
‘ /usr/share/opensearch/plugins/opensearch-security/tools ‘ 디렉토리로 이동하고 ‘ hash.sh ‘ 스크립트를 실행하여 OpenSearch에 대한 새 비밀번호를 생성합니다. OpenSearch 및 OpenSearch Dashboard에 대한 두 개의 비밀번호를 생성하기 위해 ‘ hash.sh ‘를 두 번 실행합니다. 또한 생성된 비밀번호를 메모해 두세요.
cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh이제 아래 명령어로 ‘ /etc/opensearch/opensearch-security/internal_users.yml ‘ 파일을 ‘ nano ‘ 편집기로 엽니다.
sudo nano /etc/opensearch/opensearch-security/internal_users.yml이전에 생성한 비밀번호로 사용자 ‘ admin ‘ 및 ‘ kibanaserver ‘의 해시 비밀번호를 변경합니다. ‘ admin ‘ 사용자는 OpenSearch Dashboard에 로그인하는 데 사용되며, ‘ kibanaserver ‘ 사용자는 OpenSearch와 OpenSearch Dashboard 간의 연결에 사용됩니다.
admin:
hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
reserved: true
backend_roles:
- "admin"
description: "Admin user"
kibanaserver:
hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
reserved: true
description: "Demo OpenSearch Dashboards user"작업이 끝나면 파일을 저장하고 편집기를 종료합니다.
이제 아래 명령어를 실행하여 ‘ opensearch ‘ 서비스를 재시작하고 변경 사항을 적용합니다.
sudo systemctl restart opensearchOpenSearch가 재시작되면, 아래 명령어를 실행하여 OpenSearch에 SSL 인증서를 적용합니다.
cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.10.60 -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv잘 진행되면 다음과 같은 출력이 표시됩니다:

마지막으로, 아래 ‘ curl ‘ 명령어를 실행하여 OpenSearch 서버에 대한 인증을 확인합니다.
curl https://192.168.10.60:9200 -u admin:password -k
curl https://node-rock1:9200 -u kibanaserver:kibanapass -k성공하면, HTTPS 프로토콜을 통해 사용자 이름과 비밀번호로 OpenSearch에 접근할 수 있습니다.

OpenSearch Dashboard 구성
비밀번호 인증이 구성된 후, ‘ opensearch-dashboard.yml ‘ 파일을 편집하여 OpenSearch Dashboard를 설정합니다.
‘ /etc/opensearch-dashboards/opensearch-dashboard.yml ‘ 파일을 ‘ nano ‘ 편집기로 엽니다.
sudo nano /etc/opensearch-dashboards/opensearch-dashboard.yml‘ server.host ‘ 옵션에 로컬 IP 주소를 입력합니다:
server.host: "192.168.10.60"OpenSearch 호스트, 사용자 이름 및 비밀번호를 자신의 정보로 변경해야 합니다.
opensearch.hosts: ["https://192.168.10.60:9200"]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanapass파일을 저장하고 편집기를 종료합니다.
이제 아래 ‘ systemctl ‘ 명령어를 실행하여 OpenSearch Dashboard를 재시작하고 변경 사항을 적용합니다. 이렇게 하면 OpenSearch Dashboard가 OpenSearch에 연결됩니다.
sudo systemctl restart opensearch-dashboards다음으로, 웹 브라우저를 열고 http://192.168.10.60:5601로 방문합니다. 설치가 성공하면 OpenSearch Dashboard 로그인 페이지가 표시됩니다.
관리자 사용자와 비밀번호를 입력한 후 ‘ 로그인 ‘을 클릭합니다.

로그인 후, ‘ 데이터 추가 ‘를 선택하여 새 데이터를 추가하거나 ‘ 내가 직접 탐색하기 ‘ 옵션을 클릭합니다.

OpenSearch와 OpenSearch Dashboard 간의 연결을 확인하려면 대시보드에서 OpenSearch 상태를 확인해야 합니다.
‘ 관리 ‘ 섹션에서 ‘ 개발 도구 ‘를 클릭합니다.

콘솔 섹션에 ‘ GET / ‘를 입력하고 재생 버튼을 클릭합니다. OpenSearch와 OpenSearch Dashboard 간의 연결이 성공하면 다음 페이지가 표시됩니다.

결론
축하합니다! Ubuntu 24.04 서버에 OpenSearch 및 OpenSearch Dashboard를 설치했습니다. OpenSearch는 단일 모드로 실행되며, 설치는 HTTPS로 보호됩니다. 마지막으로, OpenSearch에 대한 인증을 구성하고 OpenSearch를 OpenSearch Dashboard와 통합했습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.