AWS Step Functions とは - AWS Step Functions

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

AWS Step Functions とは

Step Functions は、サーバーレスオーケストレーションサービスで、AWS Lambda関数とその他AWSサービスを使用して、ビジネスクリティカルなアプリケーションを構築できます。Step Functions のグラフィカルコンソールでは、アプリケーションのワークフローを一連のイベント駆動ステップとして確認できます。

Step Functions、状態マシンとタスクに基づいています。ステートマシンはワークフローです。タスクとは、ワークフロー内の状態で、1 つの作業単位が、もう 1 つのAWSサービスが実行します。ワークフローの各ステップは 1 つの状態です。

Step Functions の組み込みコントロールを使用すると、ワークフロー内の各ステップの状態を調べて、アプリケーションが期待どおりに実行されることを確認します。ユースケースによっては、Step Functions がAWSサービス(Lambda など)を使用してタスクを実行します。機械学習モデルを処理および公開するワークフローを作成できます。あなたは、Step Functions 制御を持つことができますAWSなどのサービスAWS Glue、抽出、変換、ロード (ETL) ワークフローを作成できます。また、人的操作を必要とするアプリケーション向けに、長時間実行される自動化されたワークフローを作成することもできます。

標準ワークフローと Express ワークフロー

Step Functions には、2 つのワークフロータイプがあります。標準ワークフローは 1 回のワークフロー実行が可能で、最大 1 年間実行できます。Express ワークフローでは、ワークフローの実行が最高 5 分間実行されます。実行とは、ワークフローを実行してタスクを実行するインスタンスです。標準ワークフローは、実行履歴と視覚的なデバッグを示すため、実行時間が長く、監査可能なワークフローに最適です。Express ワークフローは、ストリーミングデータ処理や IoT データの取り込みなど、イベントレートの高いワークロードに最適です。

標準ワークフロー

  • 毎秒 2,000 回の実行レート

  • 毎秒 4,000 状態遷移レート

  • 状態移行ごとの価格設定

  • 実行履歴と視覚的なデバッグを表示します

  • すべてのサービス統合とパターンをサポート

Express ワークフロー

  • 毎秒 100,000 の実行レート

  • ほぼ無制限の状態移行レート

  • 実行回数と実行期間あたりの価格

  • 実行履歴をAmazon CloudWatch

  • すべてのサービス統合とほとんどのパターンをサポート

Step Functions 価格設定など、標準ワークフローと Express ワークフローの詳細については、以下を参照してください。

ユースケース

Step Functions は、アプリケーションのコンポーネントとロジックを管理するため、コードを少なくし、アプリケーションの構築と更新にすばやく集中できます。このセクションでは、Step Functions を使用する一般的なユースケースについて説明します。

ユースケース #1: 関数のオーケストレーション


          チェーン

Lambda 関数のグループ (ステップ) を特定の順序で実行するワークフローを作成します。1 つの Lambda 関数の出力は、次の Lambda 関数の入力に渡されます。ワークフローの最後のステップで結果が得られます。Step Functions を使用すると、ワークフロー内の各ステップが相互にどのように作用するかを確認できるため、各ステップが意図した機能を確実に実行することができます。

関数のグループを使用してステートマシンを作成する方法を示すチュートリアルについては、以下を参照してください。

ユースケース #2: 分岐


          分岐

顧客が与信限度額の引き上げを要求します。の使用Choice状態では、Step Functions がChoice状態の入力です。リクエストが顧客の事前承認済与信限度額を超える場合、Step Functions で顧客のリクエストをマネージャに送信して承認することができます。要求が顧客の事前承認済与信限度額を下回っている場合は、Step Functions で要求を自動的に承認できます。

ユースケース #3: エラー処理


          再試行動作

Retry

このユースケースでは、顧客がユーザ名を要求します。初回は、お客様のリクエストが失敗しました。の使用Retryステートメントを使用すると、Step Functions に顧客の要求を再試行させることができます。2回目に、お客様のリクエストは成功しました。

Catch

同様のユースケースでは、顧客が使用できないユーザー名を要求します。の使用Catchステートメントでは、Step Functions が利用可能なユーザ名を提案します。顧客が利用可能なユーザー名を受け取った場合、Step Functions でワークフローの次のステップに進み、確認メールを送信できます。顧客が利用可能なユーザー名をとらない場合、Step Functions をワークフロー内の別のステップに移動させ、サインアッププロセスを最初からやり直します。

詳細な例については、「」を参照してください。RetryおよびCatchステートメントの詳細については、以下を参照してください。

ユースケース #4: ヒューマン・イン・ザ・ループ


          チェーン

バンキングアプリを使用して、顧客の 1 人が友人に送金します。カスタマーは確認メールまで待機します。とコールバックとタスクトークンを使用すると、Step Functions に Lambda に顧客のお金を送り、顧客の友人が受け取ったときに報告するように指示します。顧客の友人が受け取ったことをLambda が報告した後、Step Functions をワークフローの次のステップに進み、確認メールを顧客に送信できます。

タスクトークンを含むコールバックを表示するサンプルプロジェクトについては、以下を参照してください。

ユースケース #5: 並列処理


          並列処理

ユーザーがビデオファイルを 5 つの異なるディスプレイ解像度に変換すると、視聴者は複数のデバイスでビデオを見ることができます。の使用Parallel状態の場合、Step Functions はビデオファイルを入力するので、Lambda はそれを同時に 5 つのディスプレイ解像度で処理できます。

ユースケース #6: 動的並列処理


          チェーン

顧客が3つの商品を注文し、各商品を配送する準備が必要です。各商品の在庫状況を確認し、各商品を集め、各商品を梱包して配送します。の使用Map状態の場合、Step Functions では、Lambda が顧客の各項目を並行して処理します。顧客の商品がすべて配送用に梱包されると、Step Functions はワークフローの次のステップに進み、追跡情報を記載した確認メールを顧客に送信します。

動的並列処理を示すサンプルプロジェクトを表示するには、Map状態の詳細については、以下を参照してください。

サービス統合

Step Functions、複数のAWSのサービス。Step Functions とこれらのサービスを組み合わせるには、次のサービス統合パターンを使用します。

レスポンスをリクエストする(デフォルト)

  • サービスを呼び出し、HTTP レスポンスを取得した後、Step Functions が次の状態に進むようにします。

ジョブの実行 (.sync)

  • サービスを呼び出し、ジョブが完了するまで Step Functions が待機するようにします。

タスクトークンでコールバックまで待機 (.waitForTaskToken)

  • タスクトークンでサービスを呼び出し、タスクトークンがコールバックとともに返されるまで Step Functions が待機するようにします。

次の表に、Step Functions でサポートされているすべてのサービス統合とサービス統合パターンを示します。

Standard Workflows
サポートされるサービス統合
サービス リクエストレスポンス Job の実行 (.sync) コールバックまで待機 (.waitForTaskToken)
Lambda
AWS Batch
DynamoDB
Amazon ECS/AWS Fargate
Amazon SNS
Amazon SQS
AWS Glue
SageMaker
Amazon EMR
Amazon EMR on EKS
CodeBuild
Athena
Amazon EKS
API Gateway
AWS Glue DataBrew
Amazon EventBridge
AWS Step Functions
Express Workflows

サポートされているリージョン

最もAWSリージョンでは、Step Functions がサポートされます。の詳細なリストについては、「」を参照してください。AWS領域の詳細については、『Step Functions』を参照してください。AWSリージョン表

Step Functions を使用するのは初めてですか?

Step Functions を初めて使用する場合は、次のトピックで、Step Functions と他のAWSサービス: