Step Functions でワークフロータイプを選択する - AWS Step Functions

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

Step Functions でワークフロータイプを選択する

ステートマシンを作成するときは、一般的に標準ワークフローまたは Express ワークフローと呼ばれる、Standard (デフォルト) または Express のタイプを選択する必要があります。

両方のステートマシンタイプは、 を使用して定義しますAmazon States Language を使用して Step Functions ワークフローを定義する

標準ワークフローとエクスプレスワークフローの両方が、Amazon API Gateway からの HTTP リクエスト、IoT ルール、Amazon EventBridge の 140 を超える他のイベントソースなどのイベントに応答して開始できます。

ワークフロータイプはイミュータブルです

ステートマシンの作成後にワークフロータイプを更新することはできません

Standard ワークフローは、長時間実行され (最長 1 年)、耐久性が高く、監査可能なワークフローに最適です。実行完了後 90 日以内であれば Step Functions API を使用して完全な実行履歴を取得できます。

標準ワークフローは、ASL でRetry動作を指定しない限り、タスクと状態が複数回実行されない exactly-onceモデルに従います。このexactly-onceモデルは、Amazon EMR クラスターの開始や支払いの処理など、べき等でないアクションの調整に適した標準ワークフローを作成します。

標準ワークフローの実行は、処理された状態遷移の数に応じて課金されます。

Express ワークフローは、IoT のデータインジェスト、ストリーミングデータ処理と変換、モバイルアプリケーションのバックエンドなど、大容量のイベント処理ワークロードに最適です。これらのワークフローは最大 5 分間実行できます。

Express ワークフローは at-least-onceモデルを使用するため、実行が複数回実行される可能性があります。このat-least-onceモデルにより、Express ワークフローは、PUT アクションを使用して Amazon DynamoDB に保存する入力データの変換など、べき等アクションの調整により適しています。

Express ワークフローの実行は、実行数、実行の合計時間、および実行中に消費されるメモリによって請求されます。

ヒント

Express ワークフローの例をデプロイするには、「 AWS Step Functions ワークショップ」の「データを並列処理する」を参照してください。

Standard ワークフロータイプと Express ワークフロータイプの比較

タイプ/カテゴリ 標準ワークフロー エクスプレスワークフロー:同期および非同期
最大期間 1 年 5 分
サポートされている実行開始レート

サポートされている実行開始レートに関連するクォータについては、「API アクションのスロットリングに関連するクォータ」を参照してください。

サポートされている実行開始レートに関連するクォータについては、「API アクションのスロットリングに関連するクォータ」を参照してください。

サポートされている状態遷移レート

サポートされている状態遷移レートに関連するクォータについては、「状態のスロットリングに関連するクォータ」を参照してください。

無制限
料金表 状態遷移回数による価格設定。状態遷移は、実行のステップが完了するたびにカウントされます。 実行回数、実行時間、およびメモリ消費量によって価格設定されます。
実行履歴

実行は、Step Functions API を使用して一覧表示および記述できます。実行は、コンソールから視覚的にデバッグできます。ステートマシンでのログを有効にすることで、CloudWatch Logs で実行を検査することもできます。

コンソールでの標準ワークフロー実行のデバッグの詳細については、「Standard コンソールと Express コンソールのエクスペリエンスの違い」と「ワークフローの実行の表示」を参照してください。

実行履歴は無制限に、つまり 5 分以内に生成できる限り多くの実行履歴エントリが保持されます。

ステートマシンでログ記録を有効にすることで、実行を CloudWatch Logs または Step Functions コンソールで検査できます。

コンソールでの Express ワークフロー実行のデバッグの詳細については、「Standard コンソールと Express コンソールのエクスペリエンスの違い」と「ワークフローの実行の表示」を参照してください。

実行セマンティクス Exactly-once ワークフロー実行。

非同期 Express ワークフロー: At-least-once ワークフロー実行。

同期 Express ワークフロー: At-most-once ワークフロー実行。

サービス統合 すべてのサービス統合とパターンをサポートします。 すべてのサービス統合をサポートします。
注記

Express ワークフローはジョブ実行 (.sync) やコールバック (.waitForTaskToken) サービス統合パターンをサポートしていません。

分散マップ サポート サポートされていません
アクティビティ サポート サポートされていません
ワークフロータイプの最適化

比較とコスト影響分析の例については、「Step Functions を使用した大規模なデータ処理」ワークショップの「ワークフロータイプの選択」を参照してください。

Step Functions での同期および非同期 Express ワークフロー

選択できる Express ワークフローには、非同期 Express ワークフローと同期 Express ワークフローの 2 種類があります。

  • 非同期 Express ワークフローは、ワークフローが開始されたことの確認を返しますが、ワークフローの完了を待機しません。結果を得るには、サービスの [CloudWatch Logs] ポーリングを行う必要があります。非同期 Express ワークフローは、メッセージングサービスや、他のサービスが依存しないデータ処理など、即時のレスポンス出力が必要ではない場合に使用できます。非同期 Express ワークフローは、イベントに応えて、Step Functions 内のネストされたワークフローまたは StartExecution API コールを使用して開始できます。

  • 同期 Express ワークフローはワークフローを開始して、それが完了するまで待機してから、結果を返します。同期 Express ワークフローはマイクロサービスのオーケストレーションに使用できます。同期 Express ワークフローを使用すると、エラー処理、再試行、並列タスクの実行のための追加のコードを開発しなくても、アプリケーションを開発できます。Amazon API Gateway から呼び出された同期 Express ワークフローを実行するか AWS Lambda、 StartSyncExecution API コールを使用できます。

    注記

    Step Functions Express ワークフローをコンソールから同期的に実行した場合、StartSyncExecution リクエストは 60 秒後に失効します。Express ワークフローを最大 5 分間同期的に実行するには、Step Functions コンソールの代わりに AWS SDK または AWS Command Line Interface (AWS CLI) を使用してStartSyncExecutionリクエストを行います。

    同期 Express 実行 API コールは、既存のアカウント容量制限には影響しません。Step Functions は、オンデマンドで容量を提供し、持続的なワークロードを使って、自動的に拡張します。容量が利用可能になるまで、ワークロードの急増をスロットリングできます。

Step Functions ワークフローの実行の保証

標準ワークフロー 非同期 Express ワークフロー 同期 Express ワークフロー
Exactly-once ワークフロー実行 At-least-once ワークフロー実行 At-most-once ワークフロー実行
実行状態は状態遷移の間も内部的に持続します。 実行状態は状態遷移の間は持続しません。 実行状態は状態遷移の間は持続しません。
現在実行中のワークフローと同じ名前で実行を開始すると、自動的にべき等性の応答が返されます。新しいワークフローは開始せず、現在実行中のワークフローが完了すると例外がスローされます。 べき等性は自動的には管理されません。同じ名前で複数のワークフローを開始すると、同時に実行されます。ステートマシンのロジックがべき等でないと、内部ワークフローの状態が失われる可能性があります。 べき等性は自動的には管理されません。Step Functions は実行が開始されると待機し、完了時にステートマシンの結果を返します。例外が発生しても、ワークフローは再開されません。

実行履歴データは 90 日後に削除されました。ワークフロー名は古い実行データを削除した後も再利用できます。

コンプライアンス、組織、または規制の要件を満たすために、クォータリクエストを送信することによって実行履歴の保持期間を 30 日に短縮できます。これを行うには、 を使用して新しいケース AWS Support Center Console を作成します。

実行履歴は Step Functions ではキャプチャされません。ログ記録は Amazon CloudWatch Logs を通じて有効にする必要があります。 実行履歴は Step Functions ではキャプチャされません。ログ記録は Amazon CloudWatch Logs を通じて有効にする必要があります。