はじめに
実はあまり触ったことがないStep Functionsを1から使いながら学んでいこうと思います!
Step Functionsとは
分散アプリケーションの構築、プロセスの自動化、マイクロサービスのオーストレーション、データおよび機械学習のパイプラインの作成に役立つワークフローサービスです。
アプリケーションのワークフローを一連のイベント駆動型ステップとして使用することができます。
Step Fuctionsの組み込みコントロールを使用すると、ワークフローの各ステップの状態を調べて、アプリケーションが順番通りに実行されているか確認することができます。
特徴
- Amazon States Language(ASL) で記述される。
- ステートマシンとして定義される
- ステートと呼ばれるステップで構成される
- 複数のAWSサービスのオーケストレーションに利用可能
ステートマシン
ワークフロー全体を定義する概念であり、状態(ステート)とその間の遷移を構成することによって、複雑なプロセスを管理します。
ステート
ワークフローの各ステップを表す基本単位です。
ステートは、それぞれ異なるタスクやアクションを実行するための定義です。各ステートは、次にどのステートに遷移するか、どのようなタスクを実行するか、エラーが発生した場合の処理方法などを指定します。
以下に、代表的なステートの種類です。
AWS SDKと最適化された統合
他のAWSサービスを呼び出すためには2つの方法があります。
- AWS SDK統合による、ステートマシンから200を超えるサービスを直接呼び出す方法
- Step Functionsの最適化された統合は、カスタマイズされていてステートマシンで使いやすい
ワークフロー
StandardワークフローとExpressワークフローがあります。
Standardワークフロー仕様
実行時間が長い場合に最適です。
- 1度だけワークフローが実行されて最大1年間実行することができる
- 毎秒2000の実行レート
- 毎秒4000のステート以降レート
- 実行履歴と視覚的なデバッグの表示
- すべてのサービス統合
Expressワークフロー仕様
ストリーミングデータ処理や IoT データインジェストなどの high-event-rate ワークロードに最適です。
- at-least-onceワークフロー実行があり最大5分間実行することができる
- 毎秒100000の実行レート
- ほぼ無制限のステート移行レート
- 実行履歴をCloudWatchに送信する
- すべてのサービス統合
まとめ
Step Functionsの基本的な概念について理解することができました。
今後、実際に触っていきたいと思います。