Step Functions

Python으로 Step Functions 활동 만들기

AWS에는 Step Functions라는 서비스가 있다. 여러 개의 활동(activity)를 조합해서 순서대로 또는 반복적으로 원하는 작업을 실행할 수 있도록 해 주는 서비스이다.

일반적으로는 여러 개의 Lambda 함수를 연결해서 사용하는 경우가 많다. 하지만 Lambda 함수의 실행 시간이 5분을 넘어가면, 다른 방법을 고려해야 한다. 이럴 때 활동을 생성하고 이를 수행하는 코드를 작성하면, 오래 걸리는 작업도 Step Functions로 이용할 수 있다.

활동(Activity) 만들기

  1. Step Functions 콘솔의 왼쪽 메뉴에서 활동을 클릭한다.
  2. 화면이 바뀌면 우측의 활동 생성을 클릭하여 새로운 활동을 만든다.
  3. 활동 이름 입력 창에서 임의의 활동 이름을 입력한다.
  4. 여기서 나오는 ARN을 메모한다. 활동 이름은 알고 있어도 되지만 몰라도 상관은 없다.

상태 머신(State Machine) 만들기

  1. 콘솔의 왼쪽 메뉴에서 상태 머신을 클릭한다.
  2. 우측 상단의 상태 머신 생성을 클릭한다.
  3. 상태 머신의 이름을 입력하고, 필요한 경우 IAM 역할을 생성한다. (나를 위한 역할 생성에 체크, AWS Step Functions이 Lambda 함수에 대한... 옵션에 체크)
  4. 그리고 상태 머신 정의 칸에는 다음과 같이 입력한다. (여기가 앞에서 메모한 ARN이 사용되는 부분이다. ARN은 뒤에서도 이용하니 메모를 버리지 말자.)
{
  "StartAt": "TestActivity",
  "States": {
    "TestActivity": {
      "Type": "Task",
      "Resource": "앞에서 메모한 ARN 주소",
      "End": true
    }
  }
}

간단하게 설명을 하자면,