본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] Step Functions

by BTC-큰뉴진 2023. 7. 7.

베하~ 뉴진쓰 팀의 큰뉴진입니다!

이번에는 AWS Step functions에 대해서 알아 보겠습니다!

 


Step Funtions란?

상태 머신을 사용하여 Lambda기능 및 기타AWS 서비스 기능을 통합할 수 있는 서버리스 오케스트레이션 서비스

Step Functions의 그래픽 콘솔을 통해 태스크를 실행하고 태스크 간의 흐름을 관리해 비즈니스 프로세스를 더 빠르고 쉽게 자동화할 수 있습니다.

 

Step Functions의 역할

  • 비즈니스 프로세스를 더 빠르고 쉽게 자동화합니다.
  • 태스크를 실행하고 태스크 간의 흐름을 관리합니다.
  • 태스크의 실행 상태를 모니터링합니다.
  • 태스크의 실행을 기록합니다.

 

Step Functions의 구성요소

Step Functions은 상태머신과 태스크로 이루어져 있는데,

 

상태머신은 상태 머신은 일련의 태스크로 구성되며 각 태스크는 다른 태스크에 대한 입력 및 출력을 사용하여 서로 연결됩니다.


태스크는

  • AWS Lambda 함수 실행
  • Amazon EC2 인스턴스 실행
  • Amazon S3 버킷에서 파일 업로드 또는 다운로드
  • Amazon DynamoDB 테이블에 데이터 삽입 또는 쿼리
  • Amazon SNS 토픽에 메시지 전송
  • Amazon SQS 대기열에 메시지 전송

와 같은 다른 AWS 서비스를 호출할 수 있습니다.

 

JSON 형식으로 정의되며 상태 머신의 각 단계는 상태를 나타내는 JSON 객체입니다.

 

Step Functions 적용 사례

하나의 Lambda 함수에서 이벤트 기반으로 여러 작업을 처리하는 것은 제한적입니다. 그 이유는 다음과 같습니다.

  • Lambda 함수는 최대 15분 동안 실행될 수 있습니다.
  • Lambda 함수는 최대 100MB의 메모리를 사용할 수 있습니다.
  • Lambda 함수는 최대 10개의 API 호출을 할 수 있습니다.

 

고객의 이름과 주소를 확인한 후 신규 은행 계좌를 생성하는 프로세스가 있다고 가정해보겠습니다.

Lambda 함수에서 처리하려고 하면 다음과 같은 문제가 발생할 수 있습니다.

  • Lambda 함수가 15분 동안 실행되는 제한을 초과하여 실패할 수 있습니다.
  • Lambda 함수가 100MB의 메모리 제한을 초과하여 실패할 수 있습니다.
  • Lambda 함수가 10개의 API 호출 제한을 초과하여 실패할 수 있습니다.

Step functions에서 해당 프로세스를 구성하면

 

서로 다른 작업을 수행하는 Lambda를 병렬 태스크로 구성해 처리시간을 5분으로 단축하고

하나의 상태머신으로 프로세스를 관리할 수 있습니다.

또한 Lambda 함수의 실행 상태를 모니터링하고 Lambda 함수의 실행을 기록할 수 있습니다.

 

 

이외에도 다양한 적용 사례에 대한 내용은 해당 링크에서 확인할 수 있습니다.https://aws.amazon.com/ko/step-functions/use-cases/

 

AWS Step Functions 사용 사례 | 서버리스 마이크로서비스 오케스트레이션 | Amazon Web Services

 

aws.amazon.com

 

비용

온디맨드 형식으로 비용을 책정하고 있습니다.

 

Standard Workflows와 Express Workflows라는 두 가지 유형의 워크플로가 존재하는데, 

 

Standard Workflows는 

워크플로가 실행되는 단계마다 상태 전환을 계산합니다.

재시도를 포함하여 모든 상태 시스템에서 상태 전환의 총 횟수에 대한 요금이 부과됩니다.

 

프리티어 기준 상태전환 월별 4000회를 무기한 무료로 제공합니다.

4000회 이상 상태전환이 필요한 경우, 1,000번당 0.0271 USD의 비용이 과금됩니다.

 

Express Workflows는 

워크플로 요청 수와 기간에 따라 부과됩니다.

요청 수는 워크플로 실행이 시작될 때마다 계산되며 모든 워크플로의 전체 요청 수에 대한 요금이 부과됩니다.

여기에는 콘솔의 테스트가 포함됩니다.

메모리 사용시에는 추가적인 비용이 발생합니다.

 


이제 Step Functions이 어떤건지 조금 이해가 가시나요?

정리하기 전에는 Lambda, CloudFormation, EventBridge와 조금 혼동되었지만

제대로 알고나니 활용할 점이 많겠다는 생각이 들었어요.

 

다음번에도 유익한 정보를 들고 올 뉴진쓰팀의 큰뉴진이었습니다!

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

[그라파나] AWS Cloud Watch Loginsights 그라파나에 적용하기  (0) 2023.07.07
[AWS] AWS Systems Manager란  (0) 2023.07.07
AWS Client VPN  (0) 2023.07.07
[AWS] AWS CodeDeploy  (0) 2023.07.06
AWS DB FailOver 알람 받기  (0) 2023.07.06

댓글