Step Functions とは - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Step Functions とは

AWS Step Functionsを使用すると、ステートマシン とも呼ばれるワークフローを作成して、分散アプリケーションの構築、プロセスの自動化、マイクロサービスのオーケストレーション、データと機械学習パイプラインの作成を行うことができます。

Step Functions はステートマシンタスク に基づいています。Step Functions では、ステートマシンはワークフロー と呼ばれ、一連のイベント駆動型ステップです。ワークフローの各ステップは、状態 と呼ばれます。例えば、タスク状態は、別の AWS サービス や を呼び出すなど、別の AWS サービスが実行する作業単位を表しますAPI。タスクを実行するワークフローを実行するインスタンスは、Step Functions で実行と呼ばれます。

Step Functions ワークフロー図の例。

Step Functions のコンソールでは、アプリケーションのワークフローを視覚化、編集、デバッグできます。ワークフローの各ステップの状態を調べて、アプリケーションが期待どおりに順番に実行されていることを確認できます。

ユースケースに応じて、Step Functions に Lambda などの AWS サービスを呼び出してタスクを実行できます。などの Step Functions コントロール AWS サービス AWS Glueを使用して、抽出、変換、ロードワークフローを作成できます。また、手動による介入が必要なアプリケーション用に実行時間が長い自動化されたワークフローを作成することもできます。

Step Functions が利用可能な AWS リージョンの完全なリストについては、AWS 「リージョン表」を参照してください。

Step Functions の使用方法について説明します。

Step Functions の使用方法については、 AWS Step Functions ワークショップのインタラクティブモジュールに従うか、このガイドの「開始方法」セクションを参照してください。

Standard ワークフロータイプと Express ワークフロータイプ

Step Functions には 2 つのワークフロータイプがあります。

  • 標準ワークフローは、実行履歴と視覚的なデバッグが表示されるため、長時間実行される監査可能なワークフローに最適です。

    標準ワークフローは、厳密に 1 回だけワークフローを実行し、最大 1 年間実行できます。つまり、標準ワークフローの各ステップは 1 回だけ実行されます。

  • Express ワークフローは、ストリーミングデータ処理や IoT データインジェストなどのワークロードに最適です high-event-rate。

    Express ワークフローにはat-least-onceワークフロー実行があり、最大 5 分間実行できます。つまり、Express ワークフローの 1 つ以上のステップが複数回実行される可能性があり、ワークフロー内の各ステップは少なくとも 1 回実行されます。

Standard ワークフロー Express ワークフロー
毎秒 2,000 の実行レート 毎秒 100,000 の実行レート
毎秒 4,000 のステート移行レート ほぼ無制限のステート移行レート
ステート移行別の価格設定 実行回数および実行期間別の価格設定
実行履歴と視覚的なデバッグの表示 ログレベルに基づいて実行履歴とビジュアルデバッグを表示する
Step Functions で実行履歴を表示する

実行履歴を に送信する CloudWatch

すべての サービスとの統合をサポートします。

一部の サービスとの最適化された統合をサポートします。

すべての サービスとの統合をサポートします。
すべてのサービスのリクエストレスポンスパターンをサポート

特定のサービスでジョブの実行コールバックの待機パターンをサポート (詳細については、次のセクションを参照)

すべてのサービスのリクエストレスポンスパターンをサポート

Step Functions の料金とワークフロータイプの選択の詳細については、以下を参照してください。

他の のサービスとの統合

Step Functions は複数の AWS サービスと統合されます。他の AWS サービスを呼び出すには、次の 2 つの統合タイプを使用できます。

  • AWS SDK 統合により、ステートマシンから任意の AWS サービスを直接呼び出すことができ、何千ものAPIアクションにアクセスできます。

  • 最適化統合では、ステートマシンでこれらのサービスを使用するためのカスタムオプションが提供されます。

Step Functions を他の サービスと組み合わせるには、3 つのサービス統合パターンがあります。

標準ワークフローと Express ワークフローは、同じ統合をサポートしますが、同じ統合パターン はサポートしません。

Express ワークフローはリクエストレスポンス をサポートしますがジョブの実行 (.sync) またはコールバックの待機 (.Token) はサポートしていませんwaitForTask

詳細については、「Step Functions でのワークフロータイプの選択」を参照してください。

Step Functions でサポートされている AWS SDK統合

Step Functions でサポートされている最適化された統合

サービス レスポンスのリクエスト ジョブの実行 (.sync) コールバックまで待機 (.waitForTaskToken)
Amazon API Gateway Standard と Express サポートされません 標準
Amazon Athena Standard と Express 標準 サポートされません
AWS Batch Standard と Express 標準 サポートされません
Amazon Bedrock Standard と Express 標準 標準
AWS CodeBuild Standard と Express 標準 サポートされません
Amazon DynamoDB Standard と Express サポートされません サポートされません
Amazon ECS/Fargate Standard と Express 標準 標準
Amazon EKS Standard と Express 標準 標準
Amazon EMR Standard と Express 標準 サポートされません
Amazon EMR on EKS Standard と Express 標準 サポートされません
Amazon EMR Serverless Standard と Express 標準 サポートされません
Amazon EventBridge Standard と Express サポートされません 標準
AWS Glue Standard と Express 標準 サポートされません
AWS Glue DataBrew Standard と Express 標準 サポートされません
AWS Lambda Standard と Express サポートされません 標準
AWS Elemental MediaConvert Standard と Express 標準 サポートされません
Amazon SageMaker Standard と Express 標準 サポートされません
Amazon SNS Standard と Express サポートされません 標準
Amazon SQS Standard と Express サポートされません 標準
AWS Step Functions Standard と Express 標準 標準

ワークフローのユースケースの例

Step Functions はアプリケーションのコンポーネントとロジックを管理するため、コードの書き込みを減らし、アプリケーションの迅速な構築と更新に集中することができます。次の図は、Step Functions ワークフローの 6 つのユースケースを示しています。

次のテキストで説明する 6 つの一般的なワークフローユースケースの視覚的な例。

  1. タスクのオーケストレーション – 一連のタスクまたはステップを特定の順序でオーケストレーションするワークフローを作成できます。例えば、タスク A は、タスク B の別の Lambda 関数の入力を提供する Lambda 関数である場合があります。 ワークフローの最後のステップで、最終結果が得られます。

  2. データに基づいてタスクを選択するChoice状態を使用して、Step Functions に状態の入力に基づいて決定させることができます。例えば、顧客がクレジット制限の引き上げをリクエストするとします。リクエストが事前承認した顧客のクレジット上限を超える場合は、Step Functions から顧客のリクエストをマネージャーに送信してサインオフを求めることができます。リクエストが事前承認した顧客のクレジット上限を下回っている場合は、Step Functions でリクエストを自動的に承認することができます。

  3. エラー処理 Retry / Catch) – 失敗したタスクを再試行したり、失敗したタスクをキャッチして代替ステップを自動的に実行したりできます。

    例えば、顧客がユーザー名をリクエストした後、検証サービスへの最初の呼び出しが失敗する可能性があるため、ワークフローはリクエストを再試行することがあります。2 番目のリクエストが成功すると、ワークフローを続行できます。

    または、顧客が無効または使用できないユーザー名をリクエストした場合、Catchステートメントによって代替ユーザー名を提案する Step Functions ワークフローステップが発生する可能性があります。

    Retry および の例についてはCatch、「」を参照してくださいStep Functions ワークフローでの状態エラーの処理

  4. ヒューマンインザループ – Step Functions は、ワークフローに人間による承認ステップを含めることができます。例えば、ある銀行の顧客が友達に資金を送信しようとしたとします。コールバックとタスクトークン を使用すると、顧客の友達が転送を確認するまで Step Functions を待機させることができ、Step Functions はワークフローを続行して、転送が完了したことを銀行の顧客に通知します。

    例については、Amazon 、Amazon SQS、SNSおよび Lambda を使用してコールバックパターンの例を作成するを参照してください。

  5. 並列処理 — Step Functions は Parallel状態を使用して入力を並列処理できます。例えば、視聴者が複数のデバイスで動画を視聴できるように、動画ファイルを複数のディスプレイ解像度に変換する必要がある場合があります。ワークフローでは、元のビデオファイルを複数の Lambda 関数に送信したり、最適化された AWS Elemental MediaConvert 統合を使用してビデオを複数のディスプレイ解像度に同時に処理したりできます。

  6. 動的並列処理 — Step Functions は、 Map状態を使用して、データセット内の各項目に対して一連のワークフローステップを実行できます。イテレーションは並行して実行されるため、データセットを迅速に処理できます。例えば、顧客が 30 個のアイテムを注文する場合、システムは同じワークフローを適用して各アイテムを配送用に準備する必要があります。すべてのアイテムが収集され、配送用にパッケージ化されたら、次のステップとして、追跡情報が記載された確認 E メールを顧客にすばやく送信する場合があります。

    スターターテンプレートの例については、「」を参照してくださいマップを使用してデータを動的に処理する