피드로 돌아가기
Slack EngineeringInfrastructure
원문 읽기
700개 이상의 SSH 파이프라인을 REST 아키텍처로 전환하여 보안 및 안정성 확보
From SSH to REST: A Security-Driven Modernization of Slack’s EMR Data Pipelines
AI 요약
Context
Airflow에서 EMR 마스터 노드로 직접 SSH 접속하여 작업을 수행하는 레거시 구조 운영. Stateful 연결 특성으로 인한 좀비 프로세스 발생 및 Kubernetes 포드 재시작 시 작업 실패라는 가용성 한계 직면.
Technical Solution
- SSH-based Connection을 Stateless한 REST API 호출 방식으로 전환하여 클라이언트 장애와 작업 생명주기를 분리한 설계
- Spark/Hive 등 API 지원 엔진은 Livy 및 HiveServer2를 활용한 Job 제출 체계 구축
- REST API가 없는 CLI 기반 작업(aws s3 sync 등) 해결을 위해 YARN Distributed Shell을 도입하여 표준 YARN API 기반의 명령어 실행 구현
- 기존 인증/인가 메커니즘을 유지하며 별도의 커스텀 보안 레이어 없이 오픈소스 프로토콜을 활용한 복잡도 최소화
- 전면 교체 대신 오퍼레이터별 단계적 Deprecation 전략을 통해 마이그레이션 리스크 분산
실천 포인트
1. SSH 기반 원격 실행을 REST API 기반 비동기 호출 구조로 전환 검토
2. 마이그레이션 전 SSH baseline 대비 YARN 등 리소스 매니저의 vmem 제한 사항 사전 검증
3. 전체 전환 전 오퍼레이터 단위의 단계적 Deprecation 및 환경별(Dev/GovDev 등) 네트워크 격리 테스트 수행