발자취

[클라우드 보안] #12. AWS Step Functions 본문

스터디/클라우드 보안

[클라우드 보안] #12. AWS Step Functions

해린 2024. 10. 26. 18:48

본 게시글은 aws 공식 사이트의 문서를 필자가 이해하기 쉽게 정리한 글입니다.

 

#01. AWS Step Functions

1. AWS Step Functions란?

AWS Step Functions는 워크플로우(State Machine)를 통해 분산 애플리케이션, 프로세스 자동화, 마이크로서비스 오케스트레이션, 데이터 및 머신러닝 파이프라인을 구축하는 서비스이다.

 

2. 주요 개념

  • 워크플로우 (State Machine): Step Functions의 워크플로우는 이벤트 구동 방식의 단계(State)들로 구성됨. 각 단계는 다른 AWS 서비스 호출, 외부 API 호출, 특정 작업 수행 등 다양한 역할을 할 수 있음.
  • 표준(Standard) vs Express 워크플로우:
    • 표준 워크플로우는 한 번만 실행되며, 최대 1년까지 실행 가능한 긴 작업에 적합함. 상태 기록과 디버깅이 용이함.
    • Express 워크플로우는 짧은 작업을 매우 빠르게 반복 처리해야 하는 경우에 적합함. 예를 들어 실시간 데이터 처리IoT 데이터 수집 등에 사용됨.

 

3. 통합과 패턴

Step Functions는 다양한 AWS 서비스와 통합된다. Lambda, Glue, SQS 등의 서비스와 통합되어 애플리케이션의 로직과 흐름을 시각적으로 관리할 수 있다. Step Functions는 서비스 간 Request Response(요청-응답), Run a Job(.sync) 그리고 Wait for Callback(.waitForTaskToken) 패턴을 지원해 유연하게 작업을 오케스트레이션할 수 있다.

 

4. 주된 사용 사례

  1. 작업 오케스트레이션: 단계별로 작업을 설정해 순차적 또는 병렬 작업을 수행.
  2. 조건부 작업 처리: 입력된 데이터에 따라 작업 경로를 동적으로 결정.
  3. 오류 처리와 재시도: 작업 실패 시 자동으로 재시도하거나 대체 작업을 실행.
  4. 사람의 개입이 필요한 단계: 특정 작업에 사람의 승인이 필요할 때 대기 상태를 설정.
  5. 데이터 병렬 처리: 병렬 단계 또는 Map 상태를 사용해 대규모 데이터를 동시에 처리.

 

Step Functions는 시각화 도구를 제공해, 실행 중인 워크플로우의 상태를 한눈에 파악할 수 있음. 이를 통해 개발자가 적은 코드로 애플리케이션을 쉽게 관리하고 업데이트할 수 있다.