概要

Q: AWS Step Functions とは何ですか?

AWS Step Functions は完全マネージド型のサービスで、視覚的ワークフローを使用して分散アプリケーションやマイクロサービスのコンポーネントを容易にコーディネートできます。それぞれ別個の機能を実行する個々のコンポーネントからアプリケーションを構築することで、迅速にアプリケーションをスケーリングおよび変更できるようになります。Step Functions を使えば、安心してアプリケーションのコンポーネントを調整し、機能を配置できます。グラフィカルコンソールを使用して、アプリケーションのコンポーネントを一連のステップとして配置し、可視化できます。これにより、複数のステップからなるアプリケーションをシンプルに構築および実行できるようになります。Step Functions では、各ステップが自動的にトリガーおよび追跡され、エラーが発生した場合は再試行されるため、アプリケーションが意図したとおりに整然と実行されます。また、各ステップの状態が記録されるため、問題が発生した場合は、問題を簡単に診断およびデバッグできます。コードを記述することなくステップを変更および追加できるため、アプリケーションを簡単に発展させ、短期間でイノベーションを実現できます。

Q: オーケストレーションを使用してアプリケーションを設計することにおける利点は何ですか?

アプリケーションをサービスコンポーネント (またはステップ) に分割することで、1 つのコンポーネントで障害が発生した場合もシステム全体がダウンすることなく、各コンポーネントが独立してスケーリングされ、そして各変更後にシステム全体を再デプロイすることなくコンポーネントを更新できるという利点があります。サービスコンポーネントのコーディネートとは、具体的には実行従属関係、スケジューリング、および同時実行を、アプリケーションの論理的フローに従って管理することです。このようなアプリケーションでは、開発者がサービスオーケストレーションを使用してこれを実行し、障害を処理できます。

Q: 一般的な AWS Step Functions ユースケースは何ですか?

AWS Step Functions は、一連のステップに細分できる計算上の問題やビジネスプロセスに役立ちます。エンドトゥーエンドワークフローを作成して、相互依存するジョブを管理するのも便利です。一般的ユースケースには、以下のようなものがあります。

  • データプロセシング:データをマルチデータベースから統一されたレポートにまとめる、大きなデータセットを便利な形式に精製して減らす、または手順の多い分析とマシンラーニングワークフローを整合します。
  • DevOps および ITオートメーション: 継続的インテグレーション、継続的デプロイメントのためにツールを構築、またはインフラストラクチャーの変化に自動的に応答する事象主動のアプリケーションを作成します
  • e コマース – 注文のフルフィルメントや在庫追跡など、ミッションクリティカルなビジネスプロセスを自動化する。
  • ウェブアプリケーション – 強力なユーザー登録プロセスとサインオン認証を実装する。

詳細については、AWS Step Functions のユースケースおよびお客様の声をお読みください。

Q: AWS Step Functions はどのような仕組みになっていますか?

AWS Step Functions を使用して、ワークフローを一連のステップ、その関係および入出力とみなす状態マシンを定義します。状態マシンはそれぞれがワークフローダイアグラムの個別の手順を表す状態の数を含んでいます。状態は作業の実行、選択、パラメータの移動、並行実行の開始、タイムアウトの管理、または成功または失敗という形でワークフローを停止します。視覚的なコンソールで各状態を実行順に自動的にグラフ化できるため、複数ステップのアプリケーションを簡単に設計できます。コンソールでは各ステップのリアルタイムステータスが強調表示され、すべての実行の詳細な履歴が提供されます。詳細については、 AWS Step Functions 開発者ガイド「Step Functions の詳細」をご覧ください。

Q: AWS Step Functions はどのように私のリソースに接続しますか?

状態マシンを設定して、アクティビティタスクおよびサービスタスクを使用することにより作業を行うことができます。アクティビティタスクを使い、ワークフロー内の特定のステップを他の場所で実行するコードに割り当てることができます (アクティビティワーカーと呼ばれます)。アクティビティーワーカーはいずれかの場所でホストされている、HTTP接続を作成するいずれかのアプリケーションです。例えば、アクティビティーワーカーはAmazon EC2インスタンス、モバイルデバイス、またはオンプレミスサーバー上で実行できます。アクティビティーワーカーは 作業用にStep Functionsをポーリング、Step Functionsから入力を取り込み、コードを使用して作業を行い、結果をリターンします。アクティビティーワーカーは作業をリクエストするので、デプロイされファイアウォールの背後にあるワーカーを使用するのが簡単です。

サービスタスクにより、ワークフローのステップをサポート対象の AWS のサービスに接続することができます。Step Functionはリクエストを他のサービスにプッシュするので、ワークフロー、サービスタスク完了までの待機のアクションを行い、次の手順に進みます。

AWS Step Function状態マシンはアクティビティタスクとサービスタスクの組み合わせを含むことができます。AWS Step Functions アプリケーションでは、データセンターで稼働しているワーカーとクラウドで稼働しているワーカーを組み合わせることができます。データセンター内のワーカーは、クラウドベースのサービスタスクとともに引き続き通常どおり稼働します。

Q: AWS Step Functions の使用を開始するにはどうすればよいですか?

AWS Step Functions の使用を開始する方法はいくつかあります。

Q: AWS Step Functions ではどのような言語を使用できますか?

AWS Step Functions 状態マシンは宣言型の Amazon States Language を使用して、JSON で定義されています。ウェブサービス API を使用して AWS Step Functions と通信している限り、どのようなプログラミング言語でもアクティビティワーカーを作成できます。ご希望の言語の AWS SDK を使用すると便利です。AWS Lambda は、Node.js (JavaScript)、Python、Golang (Go)、および C# (.NET Core ランタイムおよび他の言語を使用) で記述されたコードをサポートしています。Lambda プログラミングモデルについての詳細は、AWS Lambda 開発者ガイドをご覧ください。 

比較

Q: AWS Step Functions とAmazon SQS はどのように使い分けますか?

高度にスケーラブルで監査可能なアプリケーションの開発においてサービスコンポーネントを調整する必要がある場合は、AWS Step Functions を使用してください。サービス間でメッセージを送信、保存、および受信するために、信頼性が高く、高度にスケーラブルなホストキューが必要な場合は、Amazon Simple Queue Service (Amazon SQS) を使用することをお勧めします。Step Functions では、アプリケーション内のすべてのタスクとイベントのトラッキングが行われます。Amazon SQS では、アプリケーションレベルのトラッキングを独自に実装する必要があります。特に、アプリケーションで複数のキューを使用する場合です。Step Functions コンソールと可視化 API によって、アプリケーションを中心としたビューが提供され、そこで、実行の検索、実行の詳細情報へのドリルダウン、および実行の管理を行うことができます。Amazon SQS では、そのような追加の機能を実装する必要があります。Step Functions には、タスク間のデータ受け渡しや柔軟なタスク分散など、アプリケーション開発に役立つ機能が多数用意されています。Amazon SQS では、一部のアプリケーションレベルの機能を実装する必要があります。分散アプリケーションを調整するための基本的なワークフローを Amazon SQS を使用して構築することもできますが、Step Functions はこのような機能を初期状態で使えるように設定されており、他のアプリケーションレベルの機能も備えています。

Q: AWS Step Functions とAmazon Simple Workflow Service (SWF) はどのように使い分けますか?

AWS Step Functions では、より生産的かつ機敏なアプローチにより、視覚的ワークフローを使用してアプリケーションコンポーネントを調整できるため、新しいアプリケーションには AWS Step Functions を使用することをお勧めします。プロセスにおいて介入する外部信号が必要な場合、または結果を親に返す子プロセスを起動する場合は、Amazon Simple Workflow Service (Amazon SWF) を使用してください。Amazon SWF では、宣言型の JSON にステートマシンを記述するのではなく、ディサイダープログラムを書いて決定ステップからアクティビティステップを分離します。Amazon SWF では、連携ロジックを完全に制御することが可能ですが、アプリケーションの開発はより複雑になります。選択したプログラミング言語でディサイダープログラムを記述することも、Flow Framework を使用して、自動的に非同期の相互作用を構造化するプログラミングコンストラクトを利用することもできます。 

統合

Q: AWS Step Functions は他の AWS のサービスに対しどのように接続および調整を行いますか?

AWS Step Functions で作成するワークフローは、サービスタスクを使用して他の AWS のサービスに対し接続および調整を行うことができます。例えば、以下が可能です。

  • AWS Lambda 関数を呼び出す
  • Amazon ElasticコンテナサービスまたはAWS Fargateタスクを実行する
  • Amazon DynamoDB諸表からの既存アイテムを取得する、または新規アイテムをDynamoDB 諸表に置く
  • AWS Batchジョブを提出して完了するのを待つ
  • Amazon SNSトピックにメッセージを公表する
  • Amazon SQSキューにメッセージを送信する
  • AWS Glueジョブの実行を開始する
  • Amazon SageMakerジョブを作成してマシーンラーニングモデルをトレーニングする、またはデータセットを束ねて変換する

Step Functionsを使用して他のAWSサービスに接続することについての詳細は、Step Functions 開発者ガイドをご覧ください。アプリケーションを実行する状態マシン内でタスクを作成することもできます。概要セクションのよくある質問「AWS Step Functions はどのように私のリソースに接続しますか?」を参照してください。

Q: AWS Step Functions と Amazon API Gateway はどのように連携しますか?

HTTPS リクエストがお客様定義の API メソッドに送信される際にこれらの API が状態マシンを呼び出すよう、Step Functions API を Amazon API Gateway に関連付けることができます。Amazon API Gateway API を使用して、分散型バックエンドアプリケーションのコンポーネントの調整のほか、承認リクエストおよび応答といったアプリケーションの各ステップに対する人間アクティビティタスクの統合を行う Step Functions 状態マシンを開始することができます。アプリケーションで使用するサービスの API に対するサーバーレス非同期呼び出しも可能です。詳細については、「API Gateway を使用して Step Functions API を作成する」のチュートリアルをお試しください。 

Q: AWS Step Functions に対して作業のログ記録およびモニタリングはどのように動作しますか?

AWS Step Functions は、アプリケーションのモニタリングのため、Amazon CloudWatch および AWS CloudTrail にメトリクスを送信します。Amazon CloudWatch によって、メトリクスの収集と追跡、アラームの設定が実行され、AWS Step Functions の変更にも自動的に反応します。AWS CloudTrailはStep Functions コンソールからのコール、およびコードコールからStep Functions APIへのコールも含む、すべてのStep FunctionsのAPIコールを事象として取り込みます 。Step Functions はまた、ワークフロー内の統合された各サービス向けに Amazon CloudWatch Events マネージドルールもサポートし、必要時に AWS アカウントの CloudWatch Events ルールを作成および管理します。詳細については、AWS Step Functions 開発者ガイド「モニタリングとログ記録」をご覧ください。 

セキュリティ

Q: どのようにワークフローを保護すればよいですか?

AWS Step Functions は AWS Identity and Access Management (AWS IAM) と統合されています。IAM ポリシーはStep Functions APIへのアクセスを管理するために使用され、AWS Step Functionコンソールの状態マシンを作成するとき、Step Functionは状態マシン定義に使用されているリソースに基づいてIAMポリシーを推薦します。詳細は、AWS Step Functions 開発者ガイド「統合サービスの IAM ポリシー」を参照してください。 

AWS Step Functions の使用を開始する

開始方法のページにアクセスする
始める準備はできましたか?
AWS Step Functions コンソールにサインイン
ご不明な点がありますか?
お問い合わせ