【速報】新しいワークフローサービス AWS Step Functionsが発表 #reinvent
昨日AWSウルトラクイズで優勝して浮かれている大栗です。
本日もre:Inventに参加しておりますが、Werner Vogels氏が話す2日目のKeynoteでAWS Lambda用のワークフロー管理を行う新サービスが発表されましたので、まとめてみます。
AWS Step Functions
AWS Step Functionsとはビジュアライズなワークフローを使用して、分散アプリケーションとMicroservicesのコンポーネントを簡単にコーディネートできるサービスです。つまりLambdaなどを上手く連携させてステートマシンとして定義し実行させるサービスの様です。
Lambdaなどの各ファンクションを状態として考えてワークフローをステートマシンとして定義します。各ファンクションをシリアルに繋いだり、パラレルに繋いだり、条件分岐をステートマシンとして定義することで、ファンクションの実行順序や条件を制御できます。
料金
料金は1000回の状態遷移に対して0.025ドルかかります。
リージョン
Step Functionsは2016年12月1日現在で以下のリージョンで使用できます。
- 米国東部 (バージニア北部)
- 米国東部 (オハイオ)
- 米国西部 (オレゴン)
- EU (アイルランド)
- アジアパシフィック (東京)
試す
説明だけだとよく分からないので早速触ってみましょう。ここでは最もシンプルなステートマシンを作成します。
Step Functionsの画面を開きGet Startedをクリックします。
ステートマシンの名称をHelloTest001
とします。
そしてBlueprintからHello World
をクリックします。
すると、ステートマシン図が表示されますので、Create State Machine
をクリックします。
ステートマシンを実行するためのIAM Roleを聞かれます。ここではデフォルトで作成されるRoleを選択します。
ステートマシンが作成されたので、New execution
をクリックして実行してみます。
ステートマシンの実行結果がこのように表示されます。
ログもこの様に出力されます。ステート毎にログが出力されるので実行状況を置いやすそうです。
さいごに
最もシンプルなステートマシンで試したため、Step Functionsの有用性を理解し難いかもしれません。大きな処理の連携はAmazon Batchで、Lambdaの様な小さな処理の連携をStep Functionsが担当すると思われます。Lambdaなどを連携させて大きな処理を行うときなどとても有用なサービスだと思われます。これから様々なユースケースで使用されるでしょう。今後の機体が大きいサービスです。