티스토리 뷰

Dev/AWS

CloudSearch vs. Elasticsearch

Happy Anko♡ 2017. 3. 28. 15:52


AWS에는 Cloudsearch와 Elasticsearch service 두가지의 검색 서비스가 있습니다.

두가지를 비교해보겠습니다.


바탕은 거의 같다

Solr와 Elasticsearch 모두 루씬(Lucene)이라고 하는 검색 엔진을 베이스로 하고있어 검색에 관한 기능이 대체로 유사한 것 처럼

CloudSearch와 Elasticsearch service도 거의 비슷한 기능을 합니다. 


CloudSearch는 베이스 엔진을 명시하고 있지는 않지만

루씬(Lucene)의 쿼리 파서를 사용할 수 있다던지, 이용되는 형식이 거의 유사하기 때문에 대부분 루씬을 참고로 하고 있다고 생각됩니다. 


CloudSearch의 강점 

뭐니뭐니해도 Full Managed Service 라는것이 CloudSearch를 사용하는 가장 큰 이유입니다.

즉 도입과 운영이 매우 편리해진다 라는거죠.

아래에서 CloudSearch가 제공하는 Full Managed 부분에 대해 설명하겠습니다. 


스케일링

CloudSearch는 상황에 따라 인스턴스 수와 인스턴스 타입을 자동으로 조정합니다.

어떤 상황에 인스턴스 수와 타입을 조정하는지는 Automatic Scaling in Amazon CloudSearch 를 참고해주세요. 


필드 설정

검색 엔진을 도입 하는 경우 일본어나 영어 등 텍스트를 검색할 필요가 있습니다.

CloudSearch는 예를들어 일본어의 경우 "Japanese" Analysis Scheme을 선택하는것만으로 가능합니다. 

( 역: 한국어도 "Korean"을 선택하면 됩니다. )

다른 서비스 처럼 XML이나 JSON로 초보자에게 익숙치 않은 설정항목을 작성할 필요가 없습니다.

( 물론 JSON으로 설정항목을 작성하는것도 가능합니다. ) 


사전 관리

일본어나 영어 등 텍스트를 검색하는 경우 아래 그림처럼 사전을 도입할 필요가 있는 케이스가 있습니다.

이것은 서비스 유형 (예: 쇼핑, 포털 등등) 에 따라 다르기 때문에 검색 정확도를 높이기 위해 각각 튜닝을 반복해야만 하는 항목들 입니다.


  • Stopwords : 의미가 없는 말은 검색 대상에서 삭제하는 단어.
    • 예 : 입니다.  합니다.
  • Stemming : 기본형화. 동사의 활용에 따라 표기가 다른  경우 
    • 예 : 먹었다 -> 먹다 
  • Synonyms : 동의어. 표기는 다르지만 같은 의미로 묶는 경우.
    • 예 : 청바지, 데님팬츠, 진팬츠  
  • Tokenization Dictionary : 단어사전. 단어의 분할단위를 결정하기 위해 한단어로 분류하는 단위. 
    • 예 : 핸드크림 (하나의 단어로 등록하지 않으면 핸드 + 크림으로 검색하게 됨 )

위 그림에 있는것처럼 일부 스케일링 옵션을 적절하게 설정할 필요가 있습니다.


Elasticsearch Service의 강점


확장성

Elasticsearch service는 단순히 Elasticsearch를 호스팅 해주는 서비스로 

Elasticsearch를 셋업하여 최소한의 환경을 구축하는 시간을 절약해주는 것으로 이해하면 좋을듯합니다.

그 말인즉슨, 플러그인 인스톨 등 일부를 제외하면 Elasticsearch에서 할 수 있는 대부분의 기능이 적용 가능하기 때문에

CloudSearch에 비해 확장성이 있다고 할 수 있습니다. 

어떠한 제약이 있는지는 Amazon Elasticsearch Service Limits를 참고해주세요. 


서비스 연계

그러면 일반적인 Elasticsearch와 완전히 동일한 것인가 라고 한다면, AWS의 다른 서비스와 연계가 수월하다는 장점이 있습니다. 

Elasticsearch를 이용하는 케이스중 로그의 실시간 시각화가 있습니다. 

Elasticsearch service는 CloudWatch Logs를 쉽게 투입하여 시각화 하는것이 가능합니다.


아래 그림처럼 CloudWatch Logs의 로그 그룹 리스트로 부터 로그 스트리밍을 간단하게 시작할 수 있습니다.

로그가 투입된 이후 Kibana를 바로 사용할 수 있게되니 시각화도 간단합니다. 




정리

목적에 따라 어떤 서비스를 이용할 것 인지 정리해보면...

  • 일반적인 전문 검색 엔진을 구축하는 경우 >> CloudSearch
  • 고도의 전문 검색 엔진을 구축하는 경우 >> ElasticSearch Service
  • 로그를 실시간 가시화가 하고싶다! 하는 경우 >> ElasticSearch Service



출처 : https://techblog.recruitjobs.net/development/cloudsearch-vs-elasticsearch-service 

해당글은 Cloudsearch 와 Elasticsearch를 비교하기위해 검색 중 위 블로그의 글을 번역한 내용입니다. 

このポーストは上記を翻訳しております。もし問題になる場合削除しますのでご連絡お願いします。


혹시 틀린 부분이 있으면 댓글 주세요 :) 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함