ElasticSearch
- Elasticsearch 클러스터를 쉽게 배포, 운영 및 조정할 수 있는 관리형 서비스
- 로그 분석, 실시간 애플리케이션 모니터링, 클릭 스트림 분석 같은 사용 사례를 위한 오픈소스 검색 및 분석 엔진
- AWS ES (Elasticsearch Service)를 사용하면 Elasticsearch API에 바로 액세스해 기존 코드 및 애플리케이션을 서비스를 통해 원활하게 사용할 수 있음
- JSON 포맷으로 RESTfull 방식의 분산 검색 엔진
- Apache Lucene을 바탕으로 하고 있으며 대량의 데이터보단 크지 않은 데이터를 보관하는 역방향 인덱싱 DB 시스템이라 생각할 수도 있음
특징
- Scale
-
다양한 CPU, 메모리 및 스토리지 용량 구성 (인스턴스 유형이라 함)
-
최대 3PB의 인스턴스 스토리지
-
AWS EBS 스토리지 볼륨
- 보안
-
AWS IAM 액세스 제어
-
VPC 및 VPC 보안 그룹을 사용하는 쉬운 통합
-
저장 중 데이터 암호화 및 노드 간 암호화
-
Kibana에 대한 AWS Conito 인증
- 안정성
-
리소스를 위한 여러 지리적 위치 (리전 및 가용 영역이라 함)
-
동일한 리전의 가용 영역 두 개 또는 세 개에 노드 할당 (Multi AZ)
-
클러스터 관리 작업 부담을 줄여주는 전용 마스터 노드
-
자동 스냅샷으로 AWS ES 도메인 백업 및 복원
- 유명 서비스와 통함
-
Kibana를 사용하는 데이터 시각화
-
AWS ES 도메인 지표 및 설정 경보 모니터링을 위한 CloudWatch와의 통합
-
AWS ES 도메인에 대한 구성 API 호출 감사를 위한 CloudTrail과의 통합
-
AWS ES로 스트리밍 데이터 로드를 위한 S3, Kinesis 및 DynamoDB와 통합
장점
- 아파치 루씬 기반으로 루씬의 기능을 대부분 지원 (자바로 개발)
- 분산시스템 (여러개의 노드 [검색하는 단위 프로세스] 로 구성)
- 확장 시 기존 노드에 새 노드를 실행하여 연결
- 각 노드에 데이터 분산 저장 (복사본 유지하여 충돌로부터 보호)
- 높은 가용성 (실패할 경우 다른 노드로 이동)
- JSON으로 저장 (REST API 지원)
- HTTP Method 지원 (9200 포트부터)
- Kibana와 연동되어 시각화 가능
- ElasticSearch 생성시 IAM 권한이 필요하고 Kibana 접근시 액세스 정책을 IP 기반으로 열어줘야함
아키텍처
1. 데이터 스트림 (데이터의 지속적인 흐름, 전달)이 AWS ES로 보내지면 지정된 인덱스 패턴에 의해 인덱스가 생성 (예를 들어 Stream1_날짜로 하면 위의 그림처럼 일별로 인덱스가 생성)
2. 각 AZ에 ES 데이터 인스턴스와 각 기본 데이터에 대한 복제본 하나가 배포 (샤드는 기본 및 복제본이 서로 다른 인스턴스에 배포되어 있음)
3. Elasticsearch에서 위의 과정으로 업데이트 처리를 하며 해당 업데이트가 새 문서 또는 업데이트된 문서를 수신하는 모든 기본 및 복제본으로 전송
-
업데이트를 처리하는데 몇가지 중요한 특성이 존재
-
첫째로는 각 인덱스 패턴은 기본*, 복제본 수*, 전체 샤드 보존 기간을 배포
-
둘째로는 이 인덱스 패턴에 인덱스가 3개 있더라도 타임 슬라이싱은 새 문서가 이러한 인덱스 중 하나(해당 인덱스 패턴에 대한 활성 인덱스)에만 적용됨을 의미
-
셋째로는 벌크 데이터를 전송하고 임의로 배포된다고 가정하면 해당 인덱스의 모든 샤드는 업데이트를 수신하고 기록
내부 용어
- Document : 검색 단위 문서
- ID : 각 문서에 대한 인식자
- Shard : 인덱스의 부분을 가지는 Lucene 인스턴스
- Index : 검색 데이터 집합
참조 URL
https://cloud.hosting.kr/techblog_180718_t-shirt-size-your-domain/
'AWS' 카테고리의 다른 글
AWS IAM (0) | 2019.04.09 |
---|---|
AWS IAM 정책 설명 (0) | 2019.04.09 |
AWS CloudWatch (0) | 2019.04.09 |
AWS CloudWatch Logs (0) | 2019.04.09 |
AWS Auto Scaling (0) | 2019.04.09 |