전체 AWS Marketplace 제품
FerroStash
옵저버빌리티

FerroStash

Rust-native Logstash-compatible log pipeline

약 14MB 바이너리, ms 단위 부팅 대체 대상 AWS 서비스: Self-managed Logstash
AWS Marketplace에서 받기

Rust-native, Logstash-compatible log and event pipeline입니다. Logstash와 같은 input → filter → output model로 event를 ingest, transform, route하고, JVM 없이 Logstash pipeline.conf DSL(및 동등한 YAML form)을 native로 parse합니다. 단일 static binary(약 14 MB)는 millisecond 단위로 시작하고 수십 MB RAM으로 동작하므로 host당 더 많은 shipper를 배치할 수 있습니다.

일반적인 Logstash pipeline이 약 1 GB의 JVM heap을 보유하고 시작에 수십 초가 걸리는 반면, FerroStash는 단일 static binary로 실행됩니다. v1.0 line은 Logstash 9.x plugin set의 production-common subset을 구현합니다 — bundled plugin의 약 88%(111개 중 98개)이며, parsing 및 filtering hot path에 가중치를 둡니다. Input에는 beats, file, tcp, udp, http, syslog, kafka, redis, s3, sqs, jdbc, elasticsearch, cloudwatch 등이 포함됩니다. Filter에는 grok, dissect, kv, json, mutate, date, geoip, dns, csv, xml, useragent, cidr, fingerprint, translate, aggregate, throttle 및 native Painless-style script filter가 포함됩니다. Output에는 elasticsearch / opensearch, kafka, s3, http, tcp, udp, file, redis, sqs, sns, cloudwatch, email, datadog이 포함됩니다. Codec에는 json, json_lines, multiline, cef, netflow, avro, msgpack, protobuf가 포함됩니다. Reliability를 위해 at-least-once delivery 및 dead-letter queue가 있는 optional on-disk persistent queue(power-loss durability를 위한 fsync는 opt-in)와 node 및 pipeline stats용 built-in monitoring API를 제공합니다. Honest scope: Logstash config/pipeline compatible이지 byte-identical 100 percent drop-in은 아닙니다 — coverage는 plugin-level이고, covered plugin도 option의 subset만 구현할 수 있으며, missing plugin을 사용하는 config는 load 시 fast fail합니다.

해결하고자 하는 과제

Logstash는 유연한 로그 및 이벤트 파이프라인이지만, 일반적인 배포에서는 약 1GB의 JVM 힙을 점유하고 시작하는 데 수십 초가 걸리며 시퍼(shipper)마다 별도의 JVM 에이전트 런타임을 실행합니다. 이는 호스트에 탑재할 수 있는 시퍼 수의 제한으로 이어지며, 특히 컨테이너 환경에서 메모리와 시작 시간에 상당한 부담을 줍니다. 핵심 요구 사항은 기존 pipeline.conf 및 플러그인 자산을 그대로 활용하면서 JVM 풋프린트를 걷어내고 가볍게 작동시키는 것입니다.

작동 원리

  1. 1

    input → filter → output을 네이티브로 실행

    FerroStash는 Logstash와 동일한 input → filter → output 모델을 통해 이벤트를 수집, 변환 및 라우팅합니다. JVM이나 별도의 에이전트 런타임 없이 Logstash의 pipeline.conf DSL(및 이에 상응하는 YAML 형식)을 네이티브로 파싱하며 — 단일 정적 바이너리로 실행됩니다.

  2. 2

    프로덕션에서 자주 사용되는 플러그인 구현

    v1.0 라인은 파싱 및 필터링 핫 패스에 중점을 두어 111개의 번들 Logstash 9.x 플러그인 중 98개(약 88%)를 구현합니다. 주요 inputs, filters, outputs, codecs를 지원하며 네이티브 Painless 스타일 스크립트 필터를 포함합니다. 지원되지 않는 플러그인을 사용하는 설정은 로드 시 즉시 실패하므로, 경고 없이 유실되는 일이 없습니다.

  3. 3

    신뢰성 및 모니터링

    선택 사항인 온디스크 영구 큐는 at-least-once 전송(read/ack 커서 분리, output ack 후 체크포인트) 및 데드 레터 큐를 제공하며, 전원 손실에 대비한 내구성을 위해 fsync를 선택적으로 활성화할 수 있습니다. 내장된 모니터링 API를 통해 노드 및 파이프라인 통계가 노출됩니다.

주요 특징

Logstash config/pipeline compatible — pipeline.conf DSL(및 YAML)을 native로 parse하고 bundled Logstash 9.x plugin의 약 88%(111개 중 98개)를 구현합니다.

Single static binary(~14 MB), JVM 없음; ms startup 및 수십 MB RAM으로 host당 더 많은 shipper를 배치할 수 있습니다.

Reliability: on-disk persistent queue(at-least-once + DLQ, opt-in fsync)와 built-in monitoring API. Honest scope — config-compatible이며 byte-identical drop-in은 아닙니다.

포함 사항

  • 보안 강화된 Amazon Linux 2023 AMI (arm64 / Graviton, t4g / c7g / m7g / r7g 클래스에서 실행)
  • Logstash 호환 로그 및 이벤트 파이프라인을 구현하는 단일 정적 Rust 바이너리 (약 14 MB, JVM 불필요, 밀리초 단위 시작)
  • Logstash pipeline.conf DSL 및 이에 상응하는 YAML 형식을 지원하는 네이티브 파서
  • 111개의 번들 Logstash 9.x 플러그인 중 98개(약 88%): inputs (beats, file, tcp, udp, http, syslog, kafka, redis, s3, sqs, jdbc, elasticsearch, cloudwatch 등), filters (grok, dissect, kv, json, mutate, date, geoip 등 및 Painless 스타일 스크립트 필터), outputs (elasticsearch / opensearch, kafka, s3, http, file 등), codecs (json, json_lines, multiline, cef, netflow, avro, msgpack, protobuf)
  • at-least-once 전송 및 데드 레터 큐를 지원하는 선택적인 온디스크 영구 큐 (fsync 선택 가능)
  • 노드 및 파이프라인 통계를 노출하는 내장 모니터링 API
  • 별도의 제어 평면 없음, 텔레메트리 외부 전송 없음, 라이선스 키 검증 없음 (AWS 청구서를 통해 인스턴스당 시간당 과금)

주요 활용 사례

JVM 풋프린트 없이 가볍게 실행하면서 기존 Logstash pipeline.conf 및 플러그인 투자를 유지하고자 하는 경우

메모리와 시작 시간이 제한적이고 호스트당 더 많은 시퍼를 배치하고자 하는 컨테이너 또는 에지 환경

grok / dissect / json 등으로 로그를 파싱하고 Elasticsearch / OpenSearch / Kafka / S3 등으로 라우팅하는 파이프라인

별도의 컨트롤 플레인 및 텔레메트리 외부 전송 없이, 자체 VPC 내부에서만 로그 파이프라인을 실행하고자 하는 경우

자주 묻는 질문

Logstash와 얼마나 호환되나요?

FerroStash는 Logstash 설정/파이프라인 호환 제품이며, 바이트 단위로 100% 동일한 드롭인(drop-in)은 아닙니다. pipeline.conf DSL을 네이티브로 파싱하며 번들로 제공되는 111개의 Logstash 9.x 플러그인 중 98개(약 88%)를 구현합니다. 호환성은 플러그인 수준이며, 지원되는 플러그인이라도 일부 옵션만 구현되어 있을 수 있습니다. 누락된 플러그인을 사용하는 설정은 로드 시 즉시 실패합니다.

JVM이 필요한가요?

아니요. FerroStash는 JVM이나 별도의 에이전트 런타임 없이 단일 정적 Rust 바이너리(약 14 MB)로 실행됩니다. 밀리초 단위로 시작하고 수십 MB의 RAM만 차지하므로 호스트당 더 많은 시퍼를 배치할 수 있습니다.

전송 보장이 제공되나요?

선택 사항인 온디스크 영구 큐는 at-least-once 전송(read/ack 커서 분리, output ack 후 체크포인트) 및 데드 레터 큐를 제공합니다. 전원 손실에 대비한 내구성을 위해 fsync를 활성화할 수 있습니다.

이것은 AWS 서비스를 대체하는 제품인가요?

Logstash는 Elastic의 오픈 소스 프로젝트이며 AWS 서비스가 아닙니다. FerroStash는 해당 Logstash 호환 로그 파이프라인을 사용자의 Amazon EC2 인스턴스에서 실행하는 자체 관리형 제품입니다. 사용자의 VPC 내부에서 실행할 수 있는 일반적인 Amazon Linux 2023 AMI로 제공됩니다.

요금은 어떻게 청구되나요?

시간당 AMI 소프트웨어 비용에 선택한 EC2(t4g / c7g / m7g / r7g 클래스, Arm) 비용이 추가됩니다. 인스턴스 유형별로 측정(metered)되며, 별도의 컨트롤 플레인, 텔레메트리 외부 전송, 라이선스 키 검증이 없습니다.

요금제 모델

시간당 software fee + EC2(t4g / c7g / m7g / r7g class, Arm). instance type별 metered 과금.

AWS Marketplace에서 받기