Amazon Web Services 한국 블로그

신규 Logstash 플러그인 – Elasticsearch를 이용한 DynamoDB 검색 기능

최근 서비스 출시 소식을 보자면 GitHub에서 AWS 관련 리포지터리와 결합하면 재미있는 경향이 나타납니다. 다른 회사 개발 도구에 AWS 서비스를 연결하는 것이 일반화 되고 있기 때문입니다. 예를 들어,
이벤트 데이터 시각화를 위한 CloudWatch Logs, Elasticsearch, 및 Kibana 연결 방법이나 AWS OpsWorks와 ECS 콘테이너 관리 등이 좋은 사례입니다.

DynamoDB + Elasticsearch
오늘 Logstash에서 DynamoDB Streams connector (plugin)을 통해 DynamoDB와 Elasticsearch를 연결하는 방법을 소개하고 싶습니다. Logatash는 Amazon Elastic Compute Cloud (EC2) 인스턴스 또는 온 프레미스 환경에서 실행할 수 있습니다. DynamoDB 테이블과 Streams에서 입력 정보를 받도록 설정한 뒤 테이블에 대한 변경(추가, 업데이트, 삭제)을 추적하고 그에 따라 Elasticsearch 클러스터를 갱신합니다. 테이블과 동기화하려면 클러스터를 이용하여 테이블을 스캔하도록 플러그인을 구성 할 수도 있습니다.

일단 클러스터가 올라가고, 실행 테이블의 변경 내용 추적이 시작되면 Elasticsearch를 이용하여 효율적인 쿼리(structured, full-text, 및 multifield)를 수행 할 수 있습니다. 쿼리를 사용하여 proximity matching(근접 일치)과 partial matching(부분 일치)을 이용할 수 있으며, 또한 Elasticsearch 스코어링 인프라를 사용하여 관련성을 제어 할 수 있습니다. (더 자세한 것은 Elasticsearch : The Definitive Guide를 참고하세요.)

DynamoDB 테이블에 대한 변경은 매우 빠르게 (1 초 미만) Stream에 반영됩니다. 플러그인은 이러한 변화에 액세스 할 수있게 가능한 한 신속하게 클러스터를 업데이트합니다.

다운로드 및 사용하기

DynamoDB Community에서 플러그인을 다운로드하여 EC2 인스턴스에 설치하고 Elasticsearch 클러스터에서 DynamoDB의 콘텐츠 검색을 시작할 수 있습니다. 더 자세한 사항은 개발자 문서를 참고하시고, awslabs Github의 README를 따라 설치해 보실 수 있습니다.

Jeff;

이 글은 New Logstash Plugin – Search DynamoDB Content using Elasticsearch의 한국어 번역입니다.