AWS ステップファンクションとは?
最終更新日:2026年8月10日
この記事でわかること
はじめに
| 項目 | AWS | Microsoft Azure | Google Cloud |
|---|---|---|---|
| 世界シェア | 約33%(首位) | 約22% | 約11% |
| 強み | サービス数・実績 | Microsoft製品連携 | データ分析・AI |
| 無料枠 | 12ヶ月+常時無料 | 12ヶ月無料 | 常時無料枠あり |
| 主な資格 | CLF / SAA / SAP | AZ-900 / AZ-104 | ACE / PCA |
AWS ステップファンクションとは、視覚的なワークフローを使用して、分散アプリケーションとマイクロサービスのコンポーネントを調整できるウェブサービスです。それぞれの別個の関数(タスク)を実行する個々のコンポーネントからアプリケーションを構築することで、簡単にアプリケーションをスケールおよび変更できます。
ステップファンクションは、コンポーネントを調整し、アプリケーションの機能をステップスルーするための信頼できる方法を提供します。ステップファンクションは、一連の手順としてアプリケーションのコンポーネントを視覚化するためのグラフィカルコンソールを提供します。
AWS ステップファンクションでは、各ステップが自動的にトリガーおよび追跡され、エラーが発生した場合は再試行されるため、アプリケーションが毎回意図したとおりに整然と実行されます。また、ステップファンクションは各ステップの状態を記録するため、問題が発生した場合は、問題を簡単に診断およびデバッグができます。
ステップファンクションのメリット
アプリの早い構築と更新
AWS ステップファンクションでは、ビジネス要件を技術要件にすばやく変換できる視覚的なワークフローを構築できます。わずか数分でアプリケーションを構築できます。また、ニーズの変化を応じて、コードをカスタマイズすることなくコンポーネントを交換または再編成できます。
回復性の向上
AWS ステップファンクションによって状態、チェックポイント、再起動を管理できるので、アプリケーションが順番に想定どおりに実行されていることを確認できます。ビルトインの try/catch、再試行、ロールバック機能は、エラーと例外に自動的に対処します。
コードの削減
AWS ステップファンクションはアプリケーションのロジックを管理し、分岐、並行実行、タイムアウトなどの基本プリミティブを実装します。これにより、マイクロサービスや関数で繰り返される余分なコードを削除できます。
ステップファンクションの料金
ステップファンクションは状態遷移ごとに課金されます。最初の4000回の状態遷移については一月の無料枠の範囲内なので課金されません。それ以降は状態遷移あたりに課金されます。リージョンによって金額は異なるのですが、バージニア北部の場合、1000回の状態遷移で0.025 USDが課金されます。
【要注意】料金体系について
AWS Step Functionsには、本記事で紹介している状態遷移数ベースで課金される「Standard(標準)ワークフロー」に加えて、実行時間とメモリ使用量に応じて課金される「Express(高速)ワークフロー」も用意されています。大量・高頻度な短時間処理にはExpressワークフローの方が適している場合があります。課金体系や具体的な料金はワークフロータイプ・リージョンによって異なり、また改定される場合もあるため、最新の料金は必ずAWS公式サイトでご確認ください。
ユースケース
データ処理
ステップファンクションでは、手動でジョブのオーケストレーションを行ったり、別のアプリケーションを維持することなく、長時間実行される複数のETLジョブを順番に実行し、正常に完了することができます。また、ステップファンクションを使用して機械学習トレーニングのワークフローを標準化し、機械学習モデルの正確性を改善することもできます。
自動化タスク
ステップファンクションは、ルーチンデプロイメント、アップグレード、インストール、移行を自動化し、監査できます。ステップファンクションを使用して、パッチ管理、インフラストラクチャの選択、データ同期などの繰り返しタスクを簡単に自動化できます。またステップファンクションは自動的にスケールを行い、タイムアウトに応答し、エラータスクの再試行を行います。
モノリスのモダン化
ステップファンクションを使用してコードベースの残りから一部のタスクを切り出すことで、一連の小さなステップとしてモノリシックアプリケーションをマイクロサービスへ変換することができます。これにより、オペレーションを中断することなく、新しい機能を提供し続けながら、ビジネスクリティカルなコードを安全かつ自分のペースで解決することがきます。
アプリケーションのオーケストレーション
ステップファンクションを使用して、ワークフローロジック、平行プロセス、エラー処理、タイムアウトまたは再試行のコードを書くことなく、複数のAWS Lambda 関数を応答性サーバーレスアプリケーションへ統合できます。またAmazon EC2 インスタンス、コンテナ、またはオンプレミスサーバーで実行されるデータとサービスのオーケストレーションを行うこともできます。
AWS ステップファンクションとAWS Lambdaを使用してサーバーレスワークフローを作成する場合
ステートマシンとサーバーレスワークフローを作成→AWS Identity and Access Managementロールを作成→ステートマシンにIAMロールを追加する→独自のAWS Lambda 関数を作成→ワークフローを挿入する→ワークフローを実行する→リソースを終了する
押さえておきたいポイント
- AWS Step Functionsには「Standardワークフロー」と「Expressワークフロー」の2種類があり、長時間実行・実行履歴の可視化を重視するならStandard、大量・高頻度の短時間処理にはExpressというように用途に応じて使い分けることが重要です。
- 状態遷移やLambda関数の実行のたびに課金が発生するため、本格的にワークフローを設計する際は事前にコストを試算しておくことをおすすめします。最新の料金体系はAWS公式サイトで確認しましょう。
- try/catch、リトライ、ロールバックといったビルトイン機能を活用すれば、エラーハンドリングを自前で実装するコード量を大きく減らせます。
よくある質問
AWS Step FunctionsとAWS Lambdaの違いは何ですか?
AWS Lambdaはコードそのものをサーバーレスで実行するサービスであるのに対し、AWS Step Functionsは複数のLambda関数やAWSサービスの呼び出し順序・条件分岐・エラー処理などをステートマシンとして視覚的に定義し、オーケストレーション(連携・制御)するサービスです。Step Functionsの中からLambda関数を呼び出して組み合わせて使うのが一般的です。
StandardワークフローとExpressワークフローはどちらを選べばよいですか?
実行履歴の詳細な可視化や長時間(最大1年程度)の実行が必要な場合はStandardワークフローが適しています。一方、1秒間に多数のイベントが発生するような高頻度・短時間の処理を効率よく低コストで扱いたい場合はExpressワークフローが向いています。両者は課金方式も異なるため、用途とコストの両面から選定することをおすすめします。
Step Functionsを使うのに新しいプログラミング言語を覚える必要はありますか?
ステートマシンの定義にはAmazon States Language(JSON形式の定義言語)を使いますが、マネジメントコンソールのビジュアルエディタを使えば、コードを直接書かずにドラッグ&ドロップ感覚でワークフローを構築することも可能です。既存のLambda関数やAWSサービスの呼び出しを組み合わせるのが中心となるため、新たなプログラミング言語の習得は基本的に不要です。
さいごに
今回は、ステップファンクションの概要について紹介しました。仕組みやメリットを少しでも感じていただければ幸いです。わずか数分でアプリケーションを構築できることはとても画期的ですね。読んでいただきありがとうございました。
参考文献:
https://hironsan.hatenablog.com/entry/introduction-to-aws-step-functions
https://d1.awsstatic.com/International/ja_JP/Whitepapers/serverless-architectures-with-aws-lambda_JA.pdf
https://netland-magazine-1300683752.cos.ap-tokyo.myqcloud.com/cloudcatalog/netland_cloudservicecatalog_vol4/HTML/index31.html
▼ アクロビジョンについて


