AWS 기반 로그 분리 전략: Firehose, Lambda, OpenSearch 완벽 분석!
MDC와 Logback 설정을 통해 애플리케이션 레벨에서 특정 로그를 분리하여 관리
Fluent Bit 설정을 커스터마이징하여 Firehose로 로그를 전송하는 파이프라인 구축
Lambda 함수를 활용, Firehose를 통해 분리된 로그를 OpenSearch에 저장
MDC, Logback을 활용한 로그 라우팅
MDC(Mapped Diagnostic Context)를 사용하여 Thread별로 로그 메타 정보를 관리한다. 구체적으로, Logback Appender와 EvaluatorFilter를 통해 isSeparation 값을 확인한다. 따라서, isSeparation 값에 따라 로그를 DENY하거나 ACCEPT하여 로그를 분리한다. 결과적으로, 애플리케이션 레벨에서 로그 라우팅을 제어한다.
Fluent Bit, Firehose를 이용한 데이터 파이프라인
Fluent Bit 설정을 통해 로그를 JSON 형태로 파싱하고, Grep Filter를 사용하여 특정 조건을 만족하는 로그를 필터링한다. 따라서, isSeparation 필드 값에 따라 로그를 분리하여 Firehose로 전송한다. 반면, Terraform을 사용하여 Fluent Bit 설정을 S3에 업로드하고, 컨테이너 재배포 없이 설정 변경을 가능하게 한다.
Lambda, Firehose를 활용한 로그 분리 및 저장
Lambda 함수를 생성하여 Firehose로 전달된 로그를 검사하고, isSeparation 여부에 따라 데이터를 분리한다. 구체적으로, Main Firehose와 Sub Firehose를 생성하여 로그를 분리한다. 따라서, Lambda는 Firehose와 OpenSearch 간의 데이터 흐름을 제어하며, 데이터 무결성을 보장한다.