【速報】新しいワークフローサービス AWS Step Functionsが発表 #reinvent

昨日AWSウルトラクイズで優勝して浮かれている大栗です。

本日もre:Inventに参加しておりますが、Werner Vogels氏が話す2日目のKeynoteでAWS Lambda用のワークフロー管理を行う新サービスが発表されましたので、まとめてみます。

IMG_3724

AWS Step Functions

AWS Step Functions

AWS Step Functionsとはビジュアライズなワークフローを使用して、分散アプリケーションとMicroservicesのコンポーネントを簡単にコーディネートできるサービスです。つまりLambdaなどを上手く連携させてステートマシンとして定義し実行させるサービスの様です。

Lambdaなどの各ファンクションを状態として考えてワークフローをステートマシンとして定義します。各ファンクションをシリアルに繋いだり、パラレルに繋いだり、条件分岐をステートマシンとして定義することで、ファンクションの実行順序や条件を制御できます。

IMG_3865

料金

料金は1000回の状態遷移に対して0.025ドルかかります。

リージョン

Step Functionsは2016年12月1日現在で以下のリージョンで使用できます。

  • 米国東部 (バージニア北部)
  • 米国東部 (オハイオ)
  • 米国西部 (オレゴン)
  • EU (アイルランド)
  • アジアパシフィック (東京)

試す

説明だけだとよく分からないので早速触ってみましょう。ここでは最もシンプルなステートマシンを作成します。

Step Functionsの画面を開きGet Startedをクリックします。

ステートマシンの名称をHelloTest001とします。
そしてBlueprintからHello Worldをクリックします。

Step_Functions_Management_Console

すると、ステートマシン図が表示されますので、Create State Machineをクリックします。

Step_Functions_Management_Console

ステートマシンを実行するためのIAM Roleを聞かれます。ここではデフォルトで作成されるRoleを選択します。

Step_Functions_Management_Console

ステートマシンが作成されたので、New executionをクリックして実行してみます。

Step_Functions_Management_Console

ステートマシンの実行結果がこのように表示されます。

Step_Functions_Management_Console

ログもこの様に出力されます。ステート毎にログが出力されるので実行状況を置いやすそうです。

Step_Functions_Management_Console

さいごに

最もシンプルなステートマシンで試したため、Step Functionsの有用性を理解し難いかもしれません。大きな処理の連携はAmazon Batchで、Lambdaの様な小さな処理の連携をStep Functionが担当すると思われます。Lambdaなどを連携させて大きな処理を行うときなどとても有用なサービスだと思われます。これから様々なユースケースで使用されるでしょう。今後の機体が大きいサービスです。