AWS Step Functions
複数の AWS サービスを組み合わせたワークフローを視覚的に設計・実行できるサービス
何ができるか
AWS Step Functions は、複数の AWS サービスを組み合わせたワークフロー (一連の処理手順) を視覚的に設計し、自動実行するサービスです。Lambda 関数、ECS タスク、SQS メッセージ送信、DynamoDB 操作などのステップを順番に、並列に、または条件分岐で実行できます。各ステップの実行状態を自動的に管理し、エラー発生時のリトライや例外処理も組み込めます。
どのような場面で使うか
注文処理ワークフロー (在庫確認 → 決済 → 発送)、データ処理パイプライン (取得 → 変換 → 保存)、機械学習モデルの学習パイプライン、承認フロー、マイクロサービスのオーケストレーション、ETL 処理の自動化など、複数のステップで構成される処理の自動化に利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
料理のレシピに例えるとわかりやすいでしょう。レシピ (ステートマシン) には、材料を切る → 炒める → 煮込む → 盛り付けるという手順 (ステップ) が書かれています。Step Functions はこのレシピ通りに自動で調理を進め、途中で失敗したら (焦げたら) やり直し (リトライ) もしてくれます。複数の料理を同時に進める (並列処理) こともできます。
Step Functions とは
AWS Step Functions は、分散アプリケーションのワークフローを構築するためのサーバーレスオーケストレーションサービスです。ワークフローはステートマシンと呼ばれる JSON 定義で記述し、各ステップ (ステート) の実行順序、条件分岐、並列処理、エラーハンドリングを宣言的に定義します。コンソール上でワークフローの実行状況をリアルタイムに可視化でき、どのステップが成功・失敗したかを一目で把握できます。
ステートの種類
Step Functions には複数のステートタイプがあります。Task ステートは Lambda 関数や AWS サービスの API を呼び出します。Choice ステートは条件に基づいて分岐します。Parallel ステートは複数のブランチを同時に実行します。Wait ステートは指定時間待機します。Map ステートは配列の各要素に対して同じ処理を繰り返します。これらを組み合わせることで、複雑なビジネスロジックを表現できます。
Express ワークフローと Standard ワークフロー
Step Functions には 2 つのワークフロータイプがあります。Standard ワークフローは最大 1 年間の実行をサポートし、実行履歴が保存されます。長時間のワークフローや監査が必要な処理に適しています。Express ワークフローは最大 5 分間の実行で、毎秒 10 万件以上の実行をサポートします。IoT データの処理やストリーミングデータの変換など、高頻度・短時間の処理に適しています。
はじめかた
Step Functions を使い始めるには、Step Functions コンソールでステートマシンを作成します。Workflow Studio というビジュアルエディタを使えば、ドラッグ & ドロップでワークフローを設計できます。Lambda 関数をステップとして追加し、実行順序を定義すれば、基本的なワークフローが完成します。「実行の開始」をクリックすると、ワークフローが実行され、各ステップの進行状況をリアルタイムで確認できます。
Azure・オンプレミスとの比較
AWS の優位点
- Workflow Studio のビジュアルエディタでドラッグ & ドロップによるワークフロー設計が可能で、Apache Airflow のような Python コードによる DAG 定義が不要
- Lambda、ECS、DynamoDB、SQS など 200 以上の AWS サービスと直接統合されており、各ステップの API 呼び出しをコードなしで定義できる
- Standard ワークフローで最大 1 年間の実行をサポートし、各ステップの実行状態を自動管理・可視化するため、自前運用で必要な状態管理データベースやリトライロジックの実装が不要
注意点
- Standard ワークフローはステート遷移ごとに課金されるため、ステップ数が多いワークフローではコストに注意すること
- Express ワークフローは実行履歴が CloudWatch Logs にのみ保存されるため、監査要件がある場合は Standard を選択すること
- 無料利用枠として月間 4,000 回のステート遷移が永続的に提供される
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。