피드로 돌아가기
From SSH to REST: A Security-Driven Modernization of Slack’s EMR Data Pipelines
Slack EngineeringSlack Engineering
Infrastructure

700개 이상의 SSH 파이프라인을 REST 아키텍처로 전환하여 보안 및 안정성 확보

From SSH to REST: A Security-Driven Modernization of Slack’s EMR Data Pipelines

Mahendran Vasagam2026년 5월 5일14intermediate

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 등) 네트워크 격리 테스트 수행

원문 읽기