AWS OpenSearch Package를 활용한 텍스트 사전 적용 가이드
이번 글에서는 AWS OpenSearch Service에서 제공하는 Package 기능을 이용해 텍스트 사전을 적용하고 검증하는 과정을 정리했습니다.
핵심 목표는 자체적으로 관리하는 사전을 OpenSearch 분석기에 안정적으로 반영하여 정확한 형태소 분석 환경을 구축하는 것입니다.
1. OpenSearch Service 클러스터 생성 (간단 요약)
먼저 사전을 적용할 OpenSearch 도메인을 준비해야 합니다.
여기서는 핵심 설정만 간단히 짚고 넘어가겠습니다.
- OpenSearch Service 콘솔 → Create domain
- 버전은 2.x 이상 추천 (2025.11.18 기준 최신 버전 : 3.1)
- 접근 정책은 상황에 맞게 제한
- 생성에는 약 10~20분 소요
1) aws console에서 aws opensearch service 접속 - 도메인 생성

2) 도메인 설정
- - 생성 방법
- 손쉬운 생성 : 3개의 노드 및 고가용성 인스턴스 유형 생성 (실습 환경에서는 특히 비권장)
- 표준 생성 : 커스텀 설정
- 본 포스팅 글에서 실습 환경 :
- 가용 영역 : 1개
- 버전 : 3.1
- 노드 수 : 1개
- 인스턴스 유형 : m8g.medium.search


2. Package 등록하기 (S3 → 패키지 생성 → 도메인 연결)
Package 기능은 OpenSearch가 제공하는 공식적인 “사전 등록” 메커니즘으로, 기존처럼 노드에 플러그인을 직접 설치하지 않아도 된다는 장점이 있습니다.
여기서는 S3에 TXT 파일을 업로드하는 단계부터 도메인에 연결하는 과정까지 순서대로 정리해보겠습니다.
2-1. S3 버킷 생성 및 사전 업로드
먼저 사용할 사전 파일을 S3에 업로드합니다.
- AWS S3 → 새 버킷 생성
- 사전 파일을 업로드

2-2. OpenSearch Package 생성
이제 업로드된 ZIP 파일을 기반으로 패키지를 생성합니다.
- OpenSearch Service → Packages → Create package

- Package type: TXT-DICTIONARY
- S3 경로 입력
- Package name 및 설명 추가 : 이후 패키지 조회 시 '패키지 소스(=s3경로)'가 나타나지 않으니 '설명' 란에 작성을 권장드립니다.

패키지가 “Available” 상태가 되면 도메인에 연결할 준비가 완료된 것입니다.
2-3. 도메인에 패키지 연결
도메인에서 Package 메뉴로 들어가 새로 만든 사전을 연결합니다.
- Domain 상세 페이지 → Packages
- Associate package 선택
- 패키지 지정 후 연결 진행
- 약 2~5분 후 적용 완료


OpenSearch는 이 단계에서 자동으로 사전을 로딩하고 Analyzer 설정에서 활용할 수 있도록 준비합니다.
추후 Opensearch에서 텍스트 사전을 호출할 때 사용되는 ID를 미리 복사해둡시다.

3. 사전 적용 검증하기
패키지가 제대로 반영되었는지 테스트하는 과정입니다.
3-1. 오픈서치 대시보드 접속

- Domains - (생성한 도메인) - 'OpenSearch 대시보드 URL' 복사
접속 후 좌측 사이드바 가장 하단에 'Dev Tools'를 들어가게되면 SQL을 입력할 수 있습니다.

3-2. Package 검증
마지막으로 패키지를 호출해 사전이 실제로 분석에 반영되는지 확인합니다.
저는 아래와 같이 검증 단계를 진행하였습니다.
1. POST 메소드를 사용하였으며, nori 토크나이저를 통해 텍스트 분할 및 synonym filter를 생성하였습니다.
2. 이후 GET 메소드를 통해 해당 filter를 사용하여 인덱스가 작용하는지 확인하였습니다.
(업로드한 custom dictonary에는 '짜장면'-'자장면' 이 동의어로 설정함.)
PUT test-synonym
{
"settings": {
"index": {
"analysis": {
"filter": {
"synonym_filter": {
"updateable": "true",
"type": "synonym",
"synonyms_path": "analyzers/F199310954",
"tokenizer": "nori_none"
}
},
"analyzer": {
"goods_search_analyzer": {
"filter": [
"synonym_filter"
],
"type": "custom",
"tokenizer": "nori_none"
}
},
"tokenizer": {
"nori_none": {
"type": "nori_tokenizer",
"decompound_mode": "none"
}
}
}
}
}
}
GET test-synonym/_analyze
{
"analyzer": "goods_search_analyzer",
"text": "짜장면"
}


마무리
이번 글에서는 OpenSearch Package 기능을 활용해 사용자 정의 사전을 적용하고 검증하는 전체 흐름을 살펴봤습니다.
정리하자면:
- OpenSearch 도메인 생성
- S3에 사전 업로드 후 패키지 등록
- 도메인과 패키지 연결
- Opensearch Dev Tools를 통한 결과 검증