AWS

분산 시스템의 워크플로우 관리 서비스 - AWS SWF

heesoohi 2025. 6. 16. 01:00

AWS SWF(Simple Workflow Service)는 분산 애플리케이션의 복잡한 작업 흐름(workflow)을 관리하고 실행할 수 있도록 지원하는 완전관리형 서비스이다. 애플리케이션이 다양한 작업을 여러 위치에서 수행해야 할 때, 각 단계를 신뢰성 있게 관리하고 조정하는 데 유용하다.

 

예를 들어, 영상 처리, 데이터 변환, 사용자 승인과 같은 여러 단계로 이루어진 작업에서 각 단계를 정의하고 순서를 제어하는 데 SWF를 사용할 수 있다.

 

SWF의 핵심 개념

✅ 워크플로우(Workflow)

  • 전체 작업의 논리적 흐름을 정의한다.
  • 어떤 작업을 어떤 순서로 수행할지 결정한다.

✅ 디시전(Decider)

  • 각 작업 이후 다음 단계가 무엇인지 결정하는 컴포넌트이다.
  • 주로 EC2 인스턴스, Lambda 함수, 온프레미스 서버 등에서 동작한다.

✅ 작업자(Activity Worker)

  • 실제 작업을 수행하는 컴포넌트이다.
  • 예: 영상 인코딩, 이메일 전송 등
  • EC2, Lambda, 또는 온프레미스 서버에서 동작할 수 있다.

✅ 작업(Task)

  • 워크플로우 내 개별 작업 단위.
  • 디시전 또는 액티비티로 분류된다.

 

SWF의 특징

  • 상태 관리 자동화
    모든 워크플로우 실행의 상태를 AWS가 추적하고 저장한다.

  • 작업 재시도와 타임아웃 지원
    실패 시 자동 재시도, 시간 초과 처리 등 내장 기능을 제공한다.

  • 온프레미스 통합 가능
    Activity Worker는 온프레미스 서버에서도 실행할 수 있어 분리된 아키텍처에서 활용이 가능하다.

  • 완전관리형 서비스
    복잡한 분산 처리 로직을 코드와 인프라 없이도 실행할 수 있다.

 

 

간단한 사용 사례

  • 데이터 처리 파이프라인 구축
    대용량 데이터를 수집 → 정제 → 분석하는 과정을 단계별로 관리하는 데 적합하다.

  • 영상 처리 애플리케이션
    사용자가 업로드한 영상을 인코딩 → 워터마크 추가 → 저장 등의 순서로 처리하는 시스템에서 사용 가능하다.

  • 온프레미스 백엔드 연계 시스템
    일부 작업은 AWS에서, 일부는 온프레미스 서버에서 처리하는 하이브리드 아키텍처에 효과적이다.