Amazon Web Services 한국 블로그

AWS Step Functions, 워크플로 통합 관리에 8개 서비스 추가 (서울리전 포함)

AWS Step Functions는 애플리케이션 개발자를 위한 완전 관리형 워크플로우 서비스입니다. 고객은 높은 레벨에서 생각하고 작업하면서 안정적이고 반복 가능한 방식으로 작업을 연결 및 조율하는 동시에 비즈니스 로직을 워크플로우 로직으로부터 분리할 수 있습니다.

워크플로우(AWS에서는 이를 “상태 시스템”이라고도 부름)를 설계 및 테스트했으면 수만 개에서 수십만 개에 이르는 개별 워크플로우가 동시에 실행되도록 대규모로 배포할 수 있습니다. Step Functions는 각 워크플로우의 상태를 추적하고, 일시적 장애가 발생한 작업을 재시도할 뿐 아니라, 모니터링 및 로깅도 간소화합니다. 자세한 내용을 배우려면 Create a Serverless Workflow with AWS Step Functions and AWS Lambda 자습서의 단계를 따라해 보십시오.

AWS re:Invent 2016에서 출시된 이래, Step Functions는 AWS 고객의 많은 사랑을 받아 왔습니다(제 게시물, Things go Better with Step Functions의 실제 사용 사례 참조). AWS Lambda 함수를 손쉽게 호출하여 비즈니스 로직을 구현하는 기능은 인기가 높으며 AWS 고객은 이 외에도 더 많은 옵션을 요구했습니다.

워크플로 추가 서비스 업데이트

오늘부터 AWS는 Step Function 상태 시스템에서 8가지의 추가 AWS 서비스를 사용할 수 있는 기능을 제공합니다. 새로운 기능은 다음과 같습니다.

이러한 작업은 개별적으로 또는 서로 조합하여 사용할 수 있습니다. 시작을 돕기 위해 AWS에서는 일괄 작업을 관리하고, 컨테이너 작업을 관리하고, DynamoDB에서 데이터를 복사하고, 일괄 작업의 상태를 검색하는 방법 등을 보여주는 멋진 샘플을 제작했습니다. 예를 들어, 다음은 DynamoDB에서 SQS로 데이터를 복사하는 샘플을 시각적으로 표현한 차트입니다.

AWS CloudFormation 템플릿으로 제공되는 이 샘플은 Lambda 함수를 비롯하여 테이블을 테스트 데이터로 채워 줄 (“시딩”할) 모든 필수 구성 요소를 생성합니다. 스택을 생성했으면 Step Functions 콘솔에서 상태 시스템을 찾아 실행합니다.

콘솔에서 각 단계를 검사할 수 있습니다. 첫 번째 단계(DynamoDB 테이블 시딩)는 테이블 입력 항목을 생성하고 키(메시지 ID) 목록을 반환하는 Lambda 함수를 호출합니다.

세 번째 단계(SQS에 메시지 전송)는 다음 입력을 시작합니다.

그리고 SQS MessageId를 포함하는 다음 출력을 제공합니다.

보시는 바와 같이 상태 시스템은 Lambda 함수를 호출하고 메시지 ID 목록을 검색하고, 각 항목에 대해 DynamoDB 및 SQS를 호출하는 등 번거로운 작업을 모두 처리해 줍니다. 그리고 동시에 수많은 사본을 실행할 수 있습니다.

여러분은 이 예제를 출발점으로 삼아 멋진 솔루션을 구축할 수 있을 것입니다. 다른 샘플과 템플릿도 검토하여 영감을 얻어 보십시오!

이미 자체적인 상태 시스템을 구축하여 실행 중인 경우에는 Magic ARN 및 Parameters에 대해 알고 있어야 합니다.

  • Magic ARN – 이러한 각각의 새 작업은 특수 “매직”(Tim이 사용하는 기술 용어) ARN으로 표현됩니다. 여기에는 SQS로 전송하는 작업이 있는가 하면 일괄 작업을 실행하기 위한 작업도 있습니다.
  • Parameters – Task 상태의 Parameters 필드는 새 함수를 구현하는 서비스 API에 전달되는 파라미터를 제어합니다. 상태 시스템 정의는 정적 JSON 또는 상태 입력의 특정 요소에 대한 참조(JsonPath 형식)를 포함할 수 있습니다.

Magic ARN 및 Parameters를 사용하여 상태를 정의하는 방식은 다음과 같습니다.

   "Read Next Message from DynamoDB": {
      "Type": "Task",
      "Resource": "arn:aws:states:::dynamodb:getItem",
      "Parameters": {
        "TableName": "StepDemoStack-DDBTable-1DKVAVTZ1QTSH",
        "Key": {
          "MessageId": {"S.$": "$.List[0]"}
        }
      },
      "ResultPath": "$.DynamoDB",
      "Next": "Send Message to SQS"
    },

지금 이용 가능
새로운 통합은 정식 출시되었으며 Step Functions를 지원하는 모든 AWS 리전에서 지금 바로 사용을 시작할 수 있습니다. 각 상태 전환과 사용한 AWS 서비스에 대해서는 일반적인 요금이 부과됩니다.

Jeff;