변전소 알리기
소개
고도로 구성 가능하고 유지 관리가 필요하지 않으며 비용 효율적인 데이터 파이프라인을 만들기 위한 오픈 소스 툴킷 인 Substation 의 출시를 공개적으로 발표하게 되어 기쁩니다 . Substation은 모든 보안 팀이 가지고 있는 문제를 해결하지만 소수만이 인식할 수 있는 문제, 즉 보안 이벤트 데이터를 대규모로 정규화, 상관 관계 및 보강해야 할 필요성을 해결합니다.
우리가 변전소를 건설한 이유
Brex의 탐지 및 대응 팀은 수십 개의 고유한 보안 이벤트 소스 및 데이터 세트의 데이터 처리 요구 사항을 관리할 수 있는 유지 관리가 적고 확장 가능한 솔루션이 필요했습니다. 우리의 목표는 모든 데이터 세트에 대해 재사용 가능하고 모든 이벤트 볼륨으로 확장되며 배포 및 유지 관리가 쉬운 솔루션을 구축하는 것이었습니다.
Substation의 가장 중요한 목표는 보안 및 관찰 가능성 팀이 최소한의 운영 오버헤드로 이벤트 로그를 제어할 수 있도록 지원하는 것입니다. 대부분의 보안 플랫폼(예: SIEM )은 데이터 품질 을 관리하려는 팀에 몇 가지 옵션을 제공 합니다 . 기껏해야 이벤트가 플랫폼으로 수집된 후 사용자에게 간단한 데이터 변환을 수행할 수 있는 기능을 제공할 수 있습니다. 팀에서 고품질 데이터를 원하는 경우 일반적으로 복잡한 분산 시스템을 배포하고 유지 관리하는 데 엔지니어링 및 운영 리소스를 투자해야 합니다.
우리 팀은 15개월 이상 프로덕션 환경에서 Substation을 사용해 왔으며 지금이 이를 오픈 소스 보안 커뮤니티와 공유할 적기라고 생각합니다. 모든 팀이 "대규모"에 대해 서로 다른 정의를 가지고 있기 때문에 아래는 우리가 그것을 사용하는 방법을 설명하는 데 도움이 되는 내부 배포의 몇 가지 숫자입니다.
- TB당 $30–40의 가변 비용으로 매일 5테라바이트(TB) 이상의 데이터를 처리합니다.
- 초당 100,000개 이상의 이벤트(EPS) 유지, 최대 200,000 EPS 이상
- 몇 분 만에 100개의 고유 리소스로 새로운 데이터 파이프라인 배포
- 각각 고유한 디자인과 구성을 가진 30개의 데이터 파이프라인 관리
- 운영 및 유지 관리에 주당 1시간 미만 소요
Substation은 여러 면에서 다른 데이터 파이프라인 솔루션과 차별화됩니다.
- 완전 서버리스 - 서버를 관리하거나 클러스터 크기 조정에 대해 생각하지 않습니다.
- 확장을 위한 설계 — 시스템은 초당 10초에서 100,000초 이상의 이벤트로 확장되며 엔지니어의 개입 없이 자동으로 수행됩니다.
- 인프라 및 구성을 코드로 — Terraform , Jsonnet 및 AWS AppConfig 를 사용하므로 고유하고 재사용 가능한 데이터 파이프라인을 몇 분 안에 배포할 수 있습니다.
- 비용 효율성 - 우리는 Kinesis Producer 및 Client Libraries in Go 의 규정을 준수하는 최소 버전 생성을 포함하여 비용을 절감하기 위해 추가 노력을 기울였습니다.
- 확장 가능 — Substation 코어를 Go 패키지로 공개하므로 사용자 지정 데이터 처리 시스템을 구축할 수 있습니다.
Substation은 하나에 두 가지 솔루션이 있습니다. 이벤트 중심의 스트리밍 데이터 파이프라인 시스템과 맞춤형 데이터 처리 시스템을 구축하기 위한 패키지입니다.
데이터 파이프라인 시스템으로서 Substation에는 다음과 같은 기능이 있습니다.
- 실시간 이벤트 필터링 및 처리
- 교차 데이터 세트 이벤트 상관 관계 및 강화
- 다운스트림 시스템으로의 동시 이벤트 라우팅
- 확장성을 위해 구축된 컨테이너에서 실행
- 새로운 이벤트 필터 및 프로세서
지원 - 새로운 수집 소스 및 로드 대상
지원 - 맞춤형 애플리케이션 생성 지원(예: 멀티 클라우드)
- 정형 및 비정형 데이터 평가 및 필터링
- 데이터를 JSON으로 수정
이 디자인 패턴은 원시 및 처리된 데이터의 저장을 지원하고 처리된 데이터를 여러 대상으로 동시에 로드합니다.
이 프로젝트는 다른 사용 사례도 지원합니다. 아래에 표시된 모든 데이터 파이프라인은 현재 구축할 수 있는 항목의 예입니다.
수백 가지의 고유한 디자인 순열이 있으며 모두 Terraform 및 Jsonnet 구성을 통해 사용자가 완전히 제어합니다. 현재 이 프로젝트는 다음과 같은 데이터 수집 및 로드 옵션을 제공합니다.
- AWS API 게이트웨이(수집)
- AWS DynamoDB(로드)
- AWS Kinesis Data Streams(수집 및 로드)
- AWS Kinesis Firehose(로드)
- AWS S3(수집 및 로드)
- SNS를 통한 AWS S3(수집)
- AWS SNS(수집)
- AWS SQS(수집 및 로드)
- HTTP(로드)
- 표준 출력으로 인쇄(로드)
- 스모 로직(로드)
Substation의 가장 큰 장점 중 하나는 데이터 파이프라인 시스템이 엔지니어의 개입 없이 리소스를 자동으로 확장 및 축소하여 인프라 및 운영 비용을 최소화한다는 것입니다. 우리는 Brex에서 매일 이것을 보고 있으며 일반적으로 직원, 시스템 및 사용자 활동의 변화와 관련이 있습니다. 예를 들면 다음과 같습니다.
Brex에서 정상적인 한 주는 리소스가 확장되는 활동의 최고점과 최저점을 생성하지만 때때로 계획되지 않은 일이 발생하고 최고점은 정말 커집니다. 6월 중순 어느 날 이벤트 처리 메트릭 대시보드를 확인하고 다음을 확인했습니다.
보기는 어렵지만 이벤트 볼륨은 몇 시간 만에 10배 증가했으며 1시간 도 안 되어 4배 증가했습니다 . 이러한 증가의 규모는 기존 데이터 파이프라인 시스템에 큰 피해를 입히고 메모리, CPU 및 이벤트 손실 경보가 모두 동시에 트리거되어 사고를 일으킬 수 있지만 우리에게는 이벤트가 아니었고 대신 어떤 재미가 있는지 궁금했습니다. 우리는 놓쳤습니다.
미래의 일
Substation은 활발히 개발 중이며 릴리스에 시맨틱 버전 관리 를 사용 합니다. 공유할 로드맵은 없지만 2023년 프로젝트를 통해 이러한 기회를 탐색하는 데 관심이 있습니다.
- 데이터 파이프라인 시스템 및 공용 패키지 모두에 대한 데이터 보강 기능
- 클라우드 간 기능을 포함한 여러 클라우드 서비스 공급자 지원
- AppConfig에서 구성 확인 및 자동 롤백
- 비동기 데이터 수집 중 오류에 대한 자동 복구(예: S3)
- 싱킹 데이터를 위한 확장 가능한 멱등 생산자
이렇게 큰 오픈 소스 프로젝트는 단독으로 생성되지 않으므로 프로젝트에 기여하고 프로젝트를 가능하게 한 Brex*의 모든 사람과 아직 만나지 못한 미래의 모든 협력자에게 감사합니다!
* Brex 프로젝트 팀과 기여자에게 특별히 감사드립니다.
- Josh Liburdi (프로젝트 팀장, 핵심 설계자 및 엔지니어)
- Julie Agnes Sparks (프로젝트 팀, 설명서, 코드 검토)
- Parsa Attari (문서, 코드 검토)
- Jake Miller (코드 기여)
- Ben Morris(보안 검토)
- Dan Gilmartin (아키텍처 리뷰)
- Mike Ruth (아키텍처 리뷰)

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































