참고: https://catalog.us-east-1.prod.workshops.aws/workshops/de4e38cb-a0d9-4ffe-a777-bf00d498fa49/ko-KR
고객사에서 OpenSearch 서비스를 활용 중이라 무슨 서비스인지 알고 싶어서 무작정 따라해봤다..!
Amazon OpenSearch 클러스터 생성
- create domain
테스트니까 네트워크는 퍼블릭으로, 나머지 설정들은 디폴트로 놔두면 된다..
(뭐시기 에러뜨면.. 고급 클러스터 설정 쪽 최대 절 수 그냥 1024로 설정..)
생성 완료까지 시간이 좀 걸린다.
AWS Blog 문서를 Amazon OpenSearch로 검색하기
- cloud9 인스턴스 생성
- OpenSearch - 인덱스 생성
OpenSearch 대시보드에 들어간다.
로그인의 경우 아까 클러스터 생성할 때 사용했던 ID/Password를 사용하면 된다.
해당 버튼을 클릭하고 접속한다.
메뉴의 Dev Tools 를 클릭한다.
(검색을 위한 index 생성하고 mapping 설정)
PUT /aws-blog
{
"mappings": {
"properties": {
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"author": {
"type": "keyword"
},
"body": {
"type": "text"
},
"category": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"date": {
"type": "date",
"format": "dd MMM yyyy HH:mm:ss z"
},
"url": {
"type": "keyword"
}
}
}
}
여기까지의 단계가 AWS blog 문서들을 색인할 index를 생성한 것!
- Blog 문서를 index에 저장하기
cloud9에 접속 후 아래 명령어를 입력한다.
git clone https://github.com/jinuland/aws-blog-crawler.git
해당 파일을 클릭하고 host, id, password를 입력한다. host는 OpenSearch의 도메인 엔드포인트이다.
cd aws-blog-crawler
./ingest_ko.sh
위 명령어 처럼 프로그램을 실행시킨다. (AWS Blog 글들이 OpenSearch 도메인으로 색인된다.)
- OpenSearch 대시보드에서 문서 검색해보기
OpenSearch의 DevTools로 돌아가 아래처럼 입력한다.
GET /aws-blog/_search
{
"query": {
"match_all": {
}
}
}
Full Text 검색
- Dev Tools에서 API 호출
(workshop 기준으론 Dev Tools로 API를 호출하지만, Application에서 검색 서비스 제공을 하고 싶으면
API Gateway + Lambda + OpenSearch로 구현할 수 있다.)
즉, Dev Tools에서 아래처럼 쿼리를 날리면 원하는 결과를 얻을 수 있다.
# 자연어 검색
GET /aws-blog/_search
{
"query": {
"multi_match": {
"query": "aws 리전 및 인프라",
"fields": ["title","body"]
}
}
}
# Author 별 Aggregation
GET /aws-blog/_search
{
"query": {
"bool": {
"filter": [
{
"term": {
"title": "데이터"
}
}
]
}
},
"aggs": {
"category": {
"terms": {
"field": "author"
}
}
}
}
위와 같이 OpenSearch를 활용한다...
시각화를 구현하진 않았지만.. 시각화까지 가능함!
[OpenSearch 기능]
'Cloud > AWS' 카테고리의 다른 글
[AWS] private EC2에 접속하는 방법 -1 (0) | 2024.03.05 |
---|---|
[AWS] IoT Device Management - Bulk registration (0) | 2023.10.18 |
[AWS] AWS IoT SiteWise 실습 (0) | 2023.01.27 |
[AWS] AWS IoT Greengrass V2 실습 -2 (0) | 2023.01.26 |
[AWS] AWS IoT Greengrass V2 실습 (0) | 2023.01.26 |