こんにちは~ 浮田です。
「Step Functions、名前は聞くけど結局なに?」「Lambda と何が違うの?」
この記事は、そんな状態から 15分で全体像をつかむための地図です。
ここでは「何者で・いつ使い・何から学ぶか」だけに集中します。
地図を持たずに歩き始めると、AWS は確実に迷子になるので。
「複数の処理を、決まった順番・条件で動かしてくれるライン全体の制御役」です。
工場の生産ラインを思い浮かべてください。
部品が流れてきて、組み立て、検査、梱包、発送、と各工程を順に通っていく。
ある工程が止まればライン全体が止まる。不良品が出たらはじいてやり直す
——このライン全体を制御するのが Step Functions です。
AWS 的な言い方をすると「ワークフローオーケストレーションサービス」です。
処理の流れ(ワークフロー)を ASL(Amazon States Language)という JSON ベースの言語で定義すると、その通りに実行し、今どこまで進んだか・どこで失敗したかを全部記録してくれます。
Step Functions が刺さるのは、こういう瞬間です。
「A をやってから B、成功したら C」。これを Lambda の中から次の Lambda を呼ぶ形で書くと、流れがコードの中に埋もれて、全体像が誰にも見えなくなります。Step Functions なら流れが「図」として見える。仕様書がそのまま動いているようなものです。
決済は済んだのにメールが飛ばなかったら? リトライは? 補償処理(返金)は? ——自前で書くと if と try-catch の沼です。Step Functions はリトライ・エラー分岐・タイムアウトが宣言的に書ける(コードではなく設定として書ける)のが最大の強みです。
Step Functions の実行履歴は、1件1件「どのステップで・どんなデータで・何秒かかったか」が自動で残ります。深夜のログ漁りからの解放です。
逆に、単発の処理1個だけなら Step Functions は不要です(Lambda 単体で十分)。
「つながり」が生まれたときが Step Functions の出番、と覚えてください。
|
用語 |
意味 |
たとえるなら |
|
ステートマシン |
ワークフローの定義(流れ図の設計図) |
ラインの設計図(工程表) |
|
ステート |
流れ図の中の1つの箱(1ステップ) |
1つの工程(組み立て・検査…) |
|
実行(Execution) |
設計図に入力を与えて1回動かしたもの |
製品を1個流すこと |
ステートには種類があります。
よく使うのは6つ:
プログラミングの「順番(逐次)・分岐・反復」がそのまま箱になっている、と思えば OK です。
ので、まずは小規模なプロジェクトで型を試してみるのが現実的な第一歩ではないでしょうか。
半分正解、半分もったいない。
実は Step Functions は Lambda を書かずに AWS のサービスを直接呼べます。
(DynamoDB に書き込む、SQS に送る、Bedrock で生成 AI を呼ぶ…その数 220 以上の AWS サービス)
「キューに入れるだけの Lambda」「DB に書くだけの Lambda」
こういう"橋渡しだけの Lambda"は、Step Functions の直接統合で消せるんです。
コードが減る = バグも保守も減る。
Step Functionsの主戦場は「流れの管理」です。
ミリ秒を争う処理そのものではなく、処理と処理のあいだを引き受けます。
何日も待つ承認フロー、数時間のバッチ——こういう「長い流れ」こそ得意分野。
標準ワークフローの課金は状態遷移(箱から箱へ進む)ごとに約 $0.025/1,000回。
月 4,000 遷移まで無料枠があります。学習用途ならほぼ 0 円です。
お金がかかるのは Step Functions 自体より「呼び出す先」。
たとえば Bedrock で生成 AI を呼べば、そちらの料金が本体になります。
|
サービス |
役割 |
Step Functions との関係 |
|
Lambda |
1つの処理を実行する作業員 |
Step Functions が指示し、Lambda が手を動かす。対立ではなく分業 |
|
SQS |
処理の依頼を貯める「順番待ちの列」 |
流れの管理はできない。Step Functions と組み合わせて使う |
|
EventBridge |
「○○が起きたら△△を起動」の配電盤 |
起動のきっかけ担当。起動された後の流れは Step Functions 担当 |
Step Functions 学習は「読む → 動かす → 式を書く → 組む」の4段階で進めるのがいいと思います。
STEP 1【読む】 入門記事で概念とデータの流れを理解する(1〜2時間)
↓
STEP 2【動かす】 コンソールで最初の1本を動かす(30分)
↓ → ハンズオン編: Lambda なしで動くワークフローを作る
STEP 3【式を書く】 データ加工の言語 JSONata をドリルで練習(すきま時間)
↓ → JSONata編 + ブラウザ練習アプリ「JSONata ノック道場」
STEP 4【組む】 パターン別の「カタ」を1つずつ実機で組む
→ Step Functions道場 ハンズオン
ポイントは2つ。
概念だけ積んでも腹落ちしません。Hello World(5秒待って挨拶するだけ)でいい。「作って・動かして・実行履歴を見る」を1周した人から理解が始まります。
Step Functions 最大のつまずきポイントは、ステート間を流れる JSON の加工です。ここを制する言語が JSONata。読むだけでは身につかないので、手を動かすドリル(ノック道場)を用意しています。
次は実際に手を動かしましょう。
コンソールだけで、コードを1行も書かずに「動くワークフロー」を作ります。