(レポート) CMP319 – NEW LAUNCH! Building Distributed Applications with AWS Step Functions #reinvent

reinvent2016_eyecatch

こんにちは、菊池です。

re:Inventで発表された新サービス、AWS Step Functionsについて早速セッションに参加しましたのでレポートします。

sfunc-001

sfunc-002

レポート

このセッションで話すこと

  • AWS Step Functionsとは何か
  • どのように動くか
  • なぜこれを使うのか
  • 何ができるのか

AWS Step Functionとは

  • 視覚的なワークフローによって、分散アプリケーションにおけるコンポーネントのコーディネートを容易にする。
  • マイクローサービス/ファンクションのステップ
    • ファイルフォーマット変換
    • 画像の並列処理
  • Step Functionsのユースケース
    • サービスのシーケンスが欲しい
    • タスクを並列に実行したい
    • 手前の処置の結果によって処理を分岐させたい
    • 失敗時にリトライさせたい
    • 長時間実行するコードがある
  • Step Functionsの利点
    • Productivity:分散されたマイクロサービス/ファンクションを容易に接続できる
    • Agility:分析・デバッグが高速に可能で変化に適応できる
    • Resilience:可用性の確保と失敗時のオペレーションを管理する

どのように動くか

  • Step FUnctionsのライフサイクル
    • JSONで定義
    • コンソールで可視化
    • 実行状況をモニタリング
  • 7つのステップがある
    • Task :Workの単一ユニット
    • Choice:分岐条件の追加
    • Parallel:Taskをまたいだデータの分岐/合流
    • Wait:待ち
    • Fail:実行の停止と失敗マーク
    • Succeed:正常終了
    • Pass:インプットからアウトプットまでのパス
  • Task State :PullとPushがある
  • Task Stateの設定方法
    • Dispatch Work
    • Retry Failures
    • Catch Failures
  • Choice Stateの設定方法
    • Branching Logic
  • Parallel Stateの設定方法
    • Fork and Join Processes
  • Wait Stateの設定方法
    • Time Delay
  • コンソールに6つのBlue Print
  • APIの利用
    • Create
    • StartExecution
    • StopExecution
    • List
    • Describe

何ができるか

  • Step Functionsの利点
    • Productivity:分散されたマイクロサービス/ファンクションを容易に接続できる
    • Agility:分析・デバッグが高速に可能で変化に適応できる
    • Resilience:可用性の確保と失敗時のオペレーションを管理する
  • 利用料
    • 2.5セント/1000 State Transitions
    • 4000 State Transitions/月の無料枠あり
  • 使えるリージョン
    • バージニア
    • オハイオ
    • オレゴン
    • ダブリン
    • 東京
  • 公式ページ

最後に

スライドでは、フロー図とともにJSONの記述例を表示しており、利用するイメージをつかむことができました。Lambdaだけでは難しかった、複数ファンクションの連携やエラー処理をしっかりと作り込むことができます。

すでに公開されて利用可能なサービスなので、公式ドキュメント/公開されるであろうスライドを参考に試していきたいと思います。