◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
AWS에서 Workflow를 관리하는 서비스
Step Functions | SWF |
GUI 또는 YAML 파일로 만들 수 있다. | GUI를 지원하지 않는다. |
Workflow를 관리하는 서비스 (과거의 서비스)
Amazon SWF (Simple Workflow Service)
SWF는 GUI를 지원하지 않기 때문에 신규 작성일 경우에는 추천하지 않은 서비스이다
Workflow를 관리하는 서비스 (최신 서비스)
AWS Step Functions
Step Functions는 서버리스(Serverless)의 Workflow 관리 서비스이다.
이를 통해 개발자는 AWS 리소스의 Workflow(수행 순서)를 설정할 수 있다.
- Workflow Orchestration(오케스트레이션) 서비스이다.
- 여러 AWS 서비스와 통합되어 작동하며, 비즈니스 로직에 따라 다양한 경로로 흐름을 설정할 수 있다.
- 분산 애플리케이션이나 마이크로 서비스를 State Machine이라는 구성으로 관리를 자동화 할 수 있다.
- Step Functions는 GUI 이나 YAML 파일로 만들 수 있다.
- GUI: AWS Console에서 각 서비스를 Workflow 형태로 가시화 할 수 있다.
Use Cases
Step Functions를 활용해서 여러 Lambda 함수를 결합하여 웹 애플리케이션을 구축하는 예제.
- 은행 계좌 생성: 고객의 이름과 주소를 검증한 후 새 은행 계좌를 만든다.
- Lambda 병렬 실행:
- CheckName과 CheckAddress라는 두 개의 Lambda 함수가 동시에 실행된다.
- 이 두 작업이 끝나면, ApproveApplication Lambda 함수가 실행되어 계좌 생성 승인을 완료한다.
- 오류 처리:
- 오류가 발생할 경우, 재시도하거나 예외를 처리할 수 있는 방법을 설정한다.
- Lambda 함수는 오류 처리에 신경 쓸 필요 없이 비즈니스 로직에만 집중할 수 있다.
https://aws.amazon.com/step-functions/use-cases/
🤨 DVA 문제 예시
한 회사가 AWS 서비스를 사용하여 확장 가능한 데이터 관리 솔루션을 구축하고 있으며, 이를 통해 개발 속도와 민첩성을 개선하려고 합니다. 이 솔루션은 다양한 소스에서 대량의 데이터를 수집하고, 여러 비즈니스 규칙과 변환을 통해 이 데이터를 처리할 예정입니다.
이 솔루션은 비즈니스 규칙이 순차적으로 실행되고, 비즈니스 규칙 실행 시 오류가 발생하면 데이터를 재처리할 수 있어야 합니다. 또한, 이 솔루션은 확장 가능해야 하며 가능한 한 유지보수가 적게 필요합니다.
회사는 이러한 요구사항을 충족하기 위해 데이터 흐름의 오케스트레이션을 관리하고 자동화하기 위해 어떤 AWS 서비스를 사용해야 할까요?
- AWS Batch
- AWS Step Function
- AWS Glue
- AWS Lambda
정답
정답. 2번 AWS Step Function
질문에서 orchestration(오케스트레이션), sequence(순차적 처리), 그리고 여러 번의 처리 및 변환에 대해 언급하고 있다. 이는 모두 Step Function와 연관되어있다.