AWS Step Functions の機能と特徴について #reinvent

eyecatch_step_functions

AWS re:Invent 2016で発表された、ビジュアルワークフローを用いて分散アプリケーションを構築するサービス『AWS Step Functions』。このフレーズのみだと雰囲気何となくわかりますが、もう少し理解を深めてみたいと思います。という事で、公式サイトにある説明文を読み進めて見ました。

AWS Step Functionsとは

AWS Step Functionsを使うと、ビジュアルワークフローを用いて分散アプリケーション及びマイクロサービスのコンポーネントを容易に調整する事が可能となります。個別の機能を実行する個々のコンポーネントからアプリケーションを構築する事で、アプリケーションの拡張と変更を素早く行う事が出来ます。Step Functionsは、コンポーネントを調整し、アプリケーションの機能をステップ実行する、信頼出来る方法です。

Step Functionsはアプリケーションのコンポーネントを一連の手順として視覚化する為のグラフィカルなコンソールを提供します。この事により、複数ステップからなるアプリケーションの構築と実行が簡単になります。

Step Functionsは自動的に各ステップをトリガーして追跡し、エラーが発生すると再試行するので、アプリケーションは正常に実行されます。Step Functionsでは各ステップの状態を記録するので、問題が発生した時に問題を迅速に診断し、デバッグする事が出来ます。コードを記述しなくてもステップを変更したり追加したりする事が出来るので、アプリケーションを簡単に進化させてより速く革新を行う事が出来ます。

AWS Step Functionsはアプリケーションがあらゆる規模で利用可能である事を保証する為に、オペレーション及び基盤インフラストラクチャを管理します。

AWS Step Functionsで得られるメリット

AWS Step Functionsを使用すると、大規模で信頼性の高い、改善進化をさせ易い分散アプリケーションの構築と実行が容易になります。ポイントは以下の3点。

生産性: アプリケーションを素速く構築可能に

AWS Step Functionsでは一般的に使用されるワークフローのビジュアルコンソールとBlueprintが含まれており、分散アプリケーションのコンポーネントをパラレル・シーケンシャルなステップ(Step)に容易に調整出来ます。数分でアプリケーションを構築し、各ステップの実行を視覚化して追跡出来るようにする事で、アプリケーションが意図した通りに動作する様にする事が出来ます。

レジリエンス: 規模及びリカバリの確実性

AWS Step Functionsは、それぞれのステップを自動的に起動してアプリケーションを順番通りに実行します。要求の増加に応じてアプリケーションを利用出来るように調整するため、数百万ステップを同時に処理させる事も可能となります。Step Functionsは各ステップの状態を追跡し、

アジリティ: アプリケーションを容易に進化

AWS Step Functionsを使って、アプリケーション全体を変更する事無く、ワークフローの変更や一連のステップの編集が簡単に行えます。コードを変更せずにコンポーネントやステップを再利用して、実験や革新を迅速に行う事が可能です。

ワークフローでは数千もの個別のコンポーネントとステップをサポート出来るため、更に複雑化して行くであろうアプリケーションを自由に構築して行く事が可能となります。

AWS Step Functionsの使い方

AWS Step Functionsを使って、複数ステップのアプリケーションを迅速に定義、操作、及び拡張を行う事が出来ます。流れとしては以下の通り。

1.一連のステップとして、アプリケーションをワークフローを定義

ビジュアルコンソールを使う事で、各ステップを実行順に自動的にグラフ化し、複数ステップアプリケーションの複雑なワークフローを簡単に設計出来ます。以下の図は、『フォトシェアリング』アプリケーションのステップの流れを示しています。

例:シーケンシャルなステップ

step1

例:分岐ステップ(パスの選択)

step2

例:並行ステップ

step3

2.全てが意図した通りに動作している事を確認

アプリケーションのステップが意図した通りに動作している事を視覚化し、検証するための実行を行います。コンソールでは各ステップのリアルタイムステータスを強調表示し、全ての実行の詳細な履歴を確認する事が可能です。

step4

3.アプリケーションを確実に実行し、スケールする

AWS Step Functionsはアプリケーションのステップを操作し、スケーリングし、アプリケーションの信頼性向上を確実に支援する為の基礎となるコンピューティングリソースを提供します。

例:Amazon CloudWatchダッシュボード: AWS Step FunctionsがAWS Lambda Functionsをトリガー

step5

まとめ

という訳でAWS Step Functionsに関する概要のご紹介でした。分散アプリケーション構築おいて、その実装だけでなくそのスケーリングまで管理してくれるのは嬉しいところですね。非常に期待の持てるサービスとなるのではないでしょうか。こちらからは以上です。