NEW
제미니의 백엔드 개발 실무
24,000원
초급
도서 소개
엘라스틱 스택으로 솔루션을 구현할 수 있도록 최신 모범 사례를 정리했습니다!
이 책에서는 먼저 엘라스틱 스택을 활용할 수 있는 솔루션에 대한 전문적인 설명과 함께 엘라스틱 스택을 소개합니다. 그러고 나서 엘라스틱 스택의 핵심 컴포넌트를 알아보고 각 컴포넌트가 수행하는 역할에 대해 자세히 설명합니다. 마지막으로 엘라스틱 스택을 기반으로 하는 세 가지 주요 유스케이스를 살펴봅니다. 엘라스틱 스택으로 대규모의 복잡한 IT 환경을 모니터링하고 관찰하는 방법을 배우고 환경 전반에서 보안 위협을 탐지하고 방지하며 대응하는 방법을 알아봅니다. 그리고 엘라스틱 스택을 성공적으로 배포하는 데 필요한 아키텍처 모범 사례를 강조하는 것으로 마무리합니다. 이 책을 다 읽고 나면 엘라스틱 스택을 구현하고, 이를 통해 엘라스틱 스택의 가치를 최대한 이끌어낼 수 있을 것입니다.
★ 이 책에서 다루는 내용 ★
- 다양한 아키텍처 패턴에 맞게 여러 노드 유형으로 엘라스틱서치 클러스터를 구성합니다.
- 로그스태시, 비츠, 엘라스틱 에이전트를 활용하여 다양한 데이터 소스를 엘라스틱서치로 인제스트합니다.
- 키바나를 기반으로 데이터 시각화, 대시보드, 머신러닝 작업, 경보와 같은 유스케이스를 구현합니다.
- 엘라스틱 스택을 사용해 데이터를 기반으로 한 강력한 검색 경험을 설계합니다.
- 조직을 안전하게 보호하고 엘라스틱 SIEM과 엔드포인트 보안 기능이 어떻게 도움이 되는지 알아봅니다.
- 복잡한 요구 사항을 수용하는 데 필요한 일반적인 아키텍처 고려 사항을 자세히 살펴봅니다.
도서 상세 이미지

저자 소개
아스자드 아틱 (Asjad Athick)
아스자드 아틱은 클라우드 환경에서 엔터프라이즈급 솔루션을 설계한 경험이 있는 엘라스틱의 보안 전문가다. 그는 제대로 된 도구를 사용하는 것이 목표를 달성하는 데 도움이 된다고 믿는다. 엘라스틱에 근무하면서 호주와 뉴질랜드의 여러 고객과 협력해 고객의 환경을 이해하고 강력한 위협 탐지와 예방, 대응 기능을 구축할 수 있게 지원하는 일을 한다. 그전에는 통신 분야에서 분석가들이 알려지지 않은 사이버 위협을 식별하고 상황을 파악하는 데 도움이 되는 보안 기능을 구축했다. 애플리케이션 개발과 기술 컨설팅 분야에서 쌓은 경력을 바탕으로 호주 전역의 다양한 중소기업 및 스타트업 조직과 함께 일하고 있다.
역자 소개
진상임
GIST에서 석사학위를 받고 삼성SDS에서 테크니컬 아키텍트(TA)로 근무했다. 데이터 센터에서 24시간 서비스를 제공하는 금융 IT 인프라 운영 업무를 맡아 주로 고가용성 시스템을 구축하고 관리했다. IT 인프라 전반에 대한 이해와 경험을 바탕으로 OCP, CISSP, CISA, PMP 자격증을 보유하고 있다.
목차
- [1부] 핵심 컴포넌트
- ▣ 01장: 엘라스틱 스택 소개
- 엘라스틱 스택 개요
- ___엘라스틱 스택의 진화
- 라이선스에 대한 참고 사항
- 엘라스틱서치란?
- ___엘라스틱서치를 사용하는 경우
- ___엘라스틱서치 아키텍처의 특징
- ___엘라스틱서치의 한계
- 키바나 소개
- 데이터 수집과 인제스트
- ___비츠를 활용해 환경 전반에서 데이터 수집하기
- ___로그스태시를 활용한 중앙집중식 데이터 추출, 변환, 로드
- ___비츠와 로그스태시 중 어떤 것을 사용할지 결정하기
- 엘라스틱 스택 실행
- ___독립 실행형 디플로이먼트
- ___엘라스틱 클라우드
- 엘라스틱 스택에 구축된 솔루션
- ___Enterprise Search
- ___Security
- ___Observability
- 요약
- ▣ 02장: 엘라스틱 스택 설치와 실행
- 기술 요구사항
- 엘라스틱 스택의 수동 설치
- ___리눅스에 설치하기
- 설치 자동화
- ___앤서블을 활용한 자동화
- 엘라스틱 클라우드 엔터프라이즈(ECE)를 활용한 오케스트레이션
- ___ECE 아키텍처
- ___프락시
- ___ECE 설치 크기
- ___ECE 설치
- ___ECE에서 디플로이먼트 생성
- 쿠버네티스에서 실행하기
- 실습 환경 구성
- 요약
- [2부] 엘라스틱 스택 활용
- ▣ 03장: 데이터 색인과 검색
- 기술 요구사항
- 엘라스틱서치 인덱스의 내부 구조
- ___인덱스 내부
- 엘라스틱서치 노드
- ___마스터 후보 노드
- ___투표 전용 노드
- ___데이터 노드
- ___인제스트 노드
- ___코디네이터 노드
- ___머신러닝 노드
- ___엘라스틱서치 클러스터
- 데이터 검색
- ___샘플 로그 색인
- ___데이터에 쿼리 실행
- 요약
- ▣ 04장: 엘라스틱서치에서의 데이터 분석과 관리
- 기술 요구사항
- 집계를 사용해 데이터에서 통찰력 얻기
- 시계열 데이터의 수명주기 관리
- ___시간 경과에 따른 데이터의 유용성
- 인덱스 수명주기 관리
- ___데이터 스트림을 사용해 시계열 데이터 관리
- 인제스트 파이프라인을 이용한 수신 데이터 가공
- ___인제스트 파이프라인의 일반적인 유스케이스
- 워처로 데이터 변경에 대응하기
- ___워처 시작하기
- ___워처의 일반적인 유스케이스
- 요약
- ▣ 05장: 엘라스틱서치에서의 머신러닝 작업 실행
- 기술 요구사항
- 엘라스틱서치에서 머신러닝 실행의 가치
- 머신러닝 작업을 위한 데이터 준비
- ___머신러닝 개념
- 시계열 데이터로부터 이상 징후 탐지
- ___애플리케이션 로그에서 비정상적인 이벤트 비율 조사
- ___비정상적인 데이터 전송 볼륨 조사
- ___모집단에 대한 소스 IP 주소의 동작 비교
- 데이터 분류
- ___분류를 사용해 악의적으로 조작된 요청 예측
- 머신러닝을 사용해 들어오는 데이터 추론
- 요약
- ▣ 06장: 비츠를 이용한 데이터 수집과 전송
- 기술 요구사항
- 비츠 에이전트 소개
- 파일비트를 이용한 로그 수집
- 메트릭비트를 이용한 시스템과 애플리케이션 메트릭 모니터링
- 오딧비트를 이용한 OS 감사 데이터 모니터링
- 하트비트를 이용한 서비스 가동 시간과 가용성 모니터링
- 패킷비트를 이용한 네트워크 트래픽 데이터 수집
- 요약
- ▣ 07장: 로그스태시를 이용한 데이터 추출, 변환 및 로드
- 기술 요구사항
- 로그스태시 소개
- ___로그스태시의 작동 방식 이해하기
- ___로그스태시 인스턴스 구성
- ___첫 번째 파이프라인 실행
- 실제 데이터 처리를 위한 파이프라인
- ___CSV 파일에서 엘라스틱서치로 데이터 로드
- ___Syslog 데이터 소스 구문 분석
- ___콘텍스트 데이터로 이벤트 보강하기
- ___이벤트 스트림을 단일 이벤트로 집계하기
- ___로그스태시를 사용해 파일비트로 수집된 사용자 정의 로그 처리
- 요약
- ▣ 08장: 키바나에서의 데이터 상호 작용
- 기술 요구사항
- 키바나 시작과 실행
- ___키바나의 솔루션
- ___키바나 데이터 뷰
- 대시보드를 이용한 데이터 시각화
- 캔버스로 데이터 기반 프레젠테이션 만들기
- 맵스를 사용해 지리공간 데이터 세트 작업하기
- 데이터 변경에 경보로 대응하기
- ___경보의 구조
- ___경보 규칙 생성
- 요약
- ▣ 09장: 엘라스틱 에이전트를 통한 데이터 온보딩 관리
- 기술 요구사항
- 새로운 데이터 소스를 온보딩할 때 해결해야 할 과제들
- ___단일 에이전트를 사용한 통합 데이터 수집
- Fleet을 통한 대규모 엘라스틱 에이전트 관리
- ___에이전트 정책과 통합
- 환경 설정
- ___Fleet용 엘라스틱서치 디플로이먼트 준비
- ___에이전트를 관리하는 Fleet 서버 설정
- ___엘라스틱 에이전트를 사용해 웹 서버에서 데이터 수집하기
- ___통합을 사용해 데이터 수집
- 요약
- [3부] 엘라스틱 스택을 활용한 솔루션 구축
- ▣ 10장: 엘라스틱 스택을 활용한 검색 경험 구축
- 기술 요구사항
- ___전문 검색 소개
- ___검색을 위한 텍스트 분석
- ___검색 실행
- 검색 경험 개선을 위한 기능 구현
- 검색어 자동 완성
- ___쿼리에 대한 검색어 제안
- ___필터를 사용해 검색 결과 범위 좁히기
- ___대량의 결과 세트를 페이지 단위로 나누기
- ___검색 결과 정렬
- ___모든 기능을 통합해서 레시피 검색 기능 구현
- 요약
- ▣ 11장: 엘라스틱 스택을 활용한 애플리케이션과 인프라 관측
- 기술 요구사항
- 가관측성 소개
- ___메트릭
- ___로그
- ___추적
- ___합성 모니터링과 실제 사용자 모니터링
- 환경 관측
- ___인프라 수준 가시성
- ___플랫폼 수준 가시성
- ___호스트와 운영체제 수준의 가시성
- ___소프트웨어 워크로드 모니터링
- ___가관측성 데이터를 위해 즉시 사용할 수 있는 콘텐츠 활용
- 애플리케이션 성능 계측
- ___코드를 계측하기 위한 APM 구성
- 요약
- ▣ 12장: 엘라스틱 스택을 활용한 보안 위협 탐지와 대응
- 기술 요구사항
- 조직을 보호하기 위한 보안 기능 구축
- ___기밀성
- ___무결성
- 가용성
- SOC를 위한 SIEM 구축
- ___다양한 호스트와 소스 시스템에서 데이터 수집
- ___거의 실시간으로 보안 위협 모니터링과 탐지
- ___분석 담당자가 공동으로 작업하고 조사할 수 있게 허용
- ___위협 인텔리전스와 데이터 보강 기능을 적용해서 경보 상황 파악
- ___팀이 환경에서 적대적인 행위를 찾을 수 있게 지원
- ___경보, 통합, 대응 조치 제공
- ___적절한 데이터 보존 기간 동안 데이터 볼륨에 따라 손쉽게 확장
- SOC에서 엔드포인트 탐지와 대응 활용
- ___악성 소프트웨어
- ___랜섬웨어
- ___메모리 위협
- ___악의적인 행동
- 요약
- ▣ 13장: 엘라스틱 스택에서 워크로드 설계
- 엘라스틱 스택에서 워크로드 설계
- ___고가용성을 위한 설계
- ___데이터에 따른 워크로드 확장
- ___재해로부터 워크로드 복구
- ___엘라스틱 스택에서 워크로드 보호
- 복잡한 요구사항을 처리하는 아키텍처
- ___서로 다른 엘라스틱서치 디플로이먼트 전반에서 검색 연합
- ___엘라스틱서치 디플로이먼트 간의 데이터 복제
- ___계층형 데이터 아키텍처를 사용한 디플로이먼트
- 엘라스틱 스택의 성공적인 디플로이먼트 구현
- 요약
예제 코드
- GitHub 저장소: https://github.com/wikibook/es80
- ZIP 형식으로 다운로드: https://github.com/wikibook/es80/archive/refs/heads/main.zip
정오표
-
8쪽, 본문 7번째 줄
문서의
구조회되지않은==>
문서의
구조화되지않은 -
37쪽, 페이지 하단 설정의 8번째 줄(transport.tcp.port 설정은 엘라스틱서치 7.1 버전부터 지원 중단되어 실습 시 오류가 발생)
transport.tcp.port: 9300==>
transport.port: 9300 -
128쪽, 첫 번째 예제 코드의 5번째 줄
def disallowedCodes = ["AS-29","BA-23" ...]==>
def disallowedCodes = ["AS-29", "BA-23", "BA-24"]; -
130쪽, 2번째 예제 코드의 3번째 줄
sensor.id": ANZ3431",==>
"sensor.id": "ANZ3431", -
130쪽, 2번째 예제 코드의 3번째 줄
sensor.id": ANZ3231",==>
"sensor.id": "ANZ3231", -
131쪽, 두 번째 예제 코드
{ @timestamp": 2019-01-23T00:00:00.000Z", sensor": { id": ANZ3431", reading": 120" } } { @timestamp": 2019-01-23T00:00:00.000Z", sensor": { "id": "AMR1211", "reading": "110" } }==>
{ "@timestamp": "2019-01-23T00:00:00.000Z", "sensor": { "id": "ANZ3431", "reading": "120" } } { "@timestamp": "2019-01-23T00:00:00.000Z", "sensor": { "id": "AMR1211", "reading": "110" } } -
139쪽, 본문 첫 번째 줄
전날 2분 간격으로45개 이상의 HTTP 요청을 한==>
최근2분 동안` 45개 이상의 HTTP 요청을 한 -
198쪽, 본문 2번 항목의 명령어
echo -e 'Hello world!' | /usr/share/logstash/bin/Logstash -f logstash-pipeline.conf==>
echo -e 'Hello world!' | /usr/share/logstash/bin/logstash -f logstash-pipeline.conf -
205쪽, 본문 2번 항목의 명령어
grok { match => { "message" => "%{SYSLOGTIMESTAMP:event.start} %{SYSLOGHOST:host.hostname} %{DATA:process.name} (?:\[%{POSINT:process.pid}\])?: %{GREEDYDATA:event. message}" } }==>
grok { match => { "message" => "%{SYSLOGTIMESTAMP:event.start} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\[%{POSINT:process.pid}\])?: %{GREEDYDATA:event.message}" } } -
206쪽, 본문 밑에서 2번째 줄
ETL 워크로드의 주요 유스케이스는
다운스트림으로 소비되는데이터를 이해하기 위해 콘텍스트 정보로 이벤트를 보강하는 것입니다.==>
ETL 워크로드의 주요 유스케이스는
다운스트림 소비에서데이터를 이해하기 위해 콘텍스트 정보로 이벤트를 보강하는 것입니다. -
210쪽, 페이지 하단 예제의 첫 번째 줄
if [event.action] == "threat_filter" and [event. outcome] == "allowed" {==>
if [event.action] == "threat_filter" and [event.outcome] == "allowed" { -
213쪽, 페이지 상단 예제의 6번째 줄
map['total_client_bytes'] += event. get('client.bytes');==>
map['total_client_bytes'] += event.get('client.bytes'); -
213쪽, 페이지 상단 예제의 밑에서 3번째 줄
timeout_code => "event.set('client_bytes_ summary', event.get('total_client_bytes')==>
timeout_code => "event.set('client_bytes_summary', event.get('total_client_bytes') -
215쪽, 페이지 하단 예제의 밑에서 3~4번째 줄(들여쓰기 조정)
paths: - /.../path_to/logs-filebeat-logstash/access.log==>
paths: - /.../path_to/logs-filebeat-logstash/access.log