AWS Step Functions は、アプリケーションにサーバーレスオーケストレーションを提供します。オーケストレーションにより、複数のステップに分割されフローロジックが追加されたワークフローを、ステップ間の入力と出力を追跡しながら集中管理できます。Step Functions は、実行中のアプリケーションがワークフローステップのどこに位置するかを正確に追跡しながらアプリケーションの状態を維持し、アプリケーションのコンポーネント間でやり取りされるデータのイベントログを保存します。つまり、ネットワークに障害が起きたり、コンポーネントがハング状態になったりしても、アプリケーションを問題の直前の状態に復帰することができます。

Step Functions を使用すると、アプリケーションのビジネスロジックから独立してアプリケーションのワークフローを定義、管理できるため、より迅速かつ直感的にアプリケーション開発を行うことができます。ワークフローの特定の場所に加えた変更が他に影響を及ぼすことはありません。ワークフローを 1 つの場所で簡単に更新、修正できるため、複数のポイントツーポイント統合の管理、監視、維持に労力を費やす必要はありません。Step Functions では過剰なコードを使用して関数やコンテナを作成する必要がないため、高い回復力と管理容易性を備えたアプリケーションをすばやく作成することができます。

ワークフローの構成

Step Functions を使用すると、ワークフローをステートマシンとして定義し、複雑なコードを理解しやすいステートメントとダイアグラムに変換することができます。アプリケーションの構築、およびそれらが望ましい機能を実装していることの確認が、より素早く、簡単になります。詳細については、Step Functions の仕組みをご覧ください。

組み込まれたサービスプリミティブ

Step Functions は、ステートと呼ばれるワークフロー用に事前作成されたステップを提供します。これらは、ユーザーのために基本的なサービスプリミティブを実装するため、アプリケーションからロジックを取り除くことができます。ステートは、他のステートとマイクロサービスにデータを渡す、例外に対処する、タイムアウトを追加する、複数のパスを同時に実行するなどを実行できます。ステートの詳細については、こちらをご覧ください。 

AWS のサービスの統合

Step Functions のサービスタスクを使用して、他の AWS のサービスを呼び出すように Step Functions ワークフローを設定することができます。これには、コンピューティングサービス (AWS Lambda、Amazon ECS、AWS Fargate)、データベースサービス (Amazon DynamoDB)、メッセージングサービス (Amazon SNS と Amazon SQS)、データ処理サービス (AWS Batch と AWS Glue)、および機械学習サービス (Amazon SageMaker) が含まれます。サービスタスクの詳細をご覧ください。

分散されたコンポーネントの調整

Step Functions は、HTTPS 接続を確立できるアプリケーションならば、それがどこでホストされているかにかかわらず (例えば、Amazon EC2 インスタンス、モバイルデバイス、またはオンプレミスサーバー)、どれでも調整することができます。Step Functions を使用することにより、AWS のサービス、およびユーザー独自のマイクロサービスを活用する分散アプリケーションをすばやく作成することができます。アクティビティタスクの詳細をご覧ください。

コンポーネントの再利用

AWS Step Functions では、すでに使用している Lambda 関数とマイクロサービスを統合して堅牢なアプリケーションを構築し、新たな構成にすばやく書き換えることができます。ワークフローのタスクは、インスタンス、コンテナ、関数、モバイル端末など、あらゆる場所で実行可能です。既存のアプリケーションコンポーネントを再利用する方法をご確認ください。

ワークフロー抽象化

Step Functions は、アプリケーションのロジックを、アプリケーションの実装から厳密に分離させておきます。ステップは、ビジネスロジックに変更を加える必要なく、追加、移動、および交換し、順番を並び変えることができます。この関心の分離を通じて、ワークフローはモジュール性、シンプル化されたメンテナンス、スケーラビリティ、およびコードの再利性を得ます。

ステート管理

Step Functions は実行中アプリケーションのステートを維持し、これには、それが実行のどのステップにあるかの追跡、およびワークフローのステップ間で移動するデータの保存が含まれます。これは、ユーザーがデータストアの使用、またはタスクのすべてに複雑なステート管理を構築することによってステートを管理する必要がないことを意味します。

組み込みのエラー処理

AWS Step Functions に組み込まれた try/catch および retry により、タスクの完了にかかる時間の長さに関わらず、エラーと例外が自動的に処理されます。失敗またはタイムアウトしたタスクの再試行、エラーの種類に基づいた的確な対処、指定したクリーンアップ/リカバリコードへのフォールバックによる正常な復元などを自動的に実行できます。詳細については、Step Functions のエラー処理およびステートマシンを使用してエラー状態を処理する方法をご覧ください。

各実行の履歴

リアルタイムの診断機能とダッシュボード機能を備えた AWS Step Functions は、Amazon CloudWatch および AWS CloudTrail と連携し、全体的な状態、失敗したステップ、入力、出力を含むすべての実行をログに記録します。何らかの問題が発生しても、その問題の場所だけでなく原因もすばやく特定できるうえ、障害のトラブルシューティングと修復を迅速に行うことができます。詳細については、Step Functions のモニタリングとログ記録をご覧ください。

視覚的なモニタリング

アプリケーションの起動は、ボタンを押すことと同じくらいシンプルな操作です。起動後はステップの実行を視覚的に確認して、すべてが順序通りに、かつ期待通りに動作していることを簡単に確認できます。コンソールはエラーを明確にハイライト表示するため、根本的な原因をすばやく特定し、問題のトラブルシューティングを実行できます。

高可用性

AWS Step Functions は、耐障害性を備えています。各リージョンのアベイラビリティゾーン全体でサービスキャパシティーを維持し、マシンやデータセンターで発生する個別の障害に対してアプリケーションを保護します。これにより、サービス自体とサービスで実行されるアプリケーションワークフローの両方の可用性が高くなります。

自動スケーリング

AWS Step Functions では、アプリケーションの各ステップを実行するために、ワークロードの変化に応じて、オペレーションや基盤となるコンピューティング機能が自動的にスケールされます。Step Functions は自動的にスケールするため、リクエストの頻度が増えてもアプリケーションワークフローのパフォーマンスが一定に保たれることを確実にするために役立ちます。

セキュリティとコンプライアンス

AWS Step Functions は、AWS Identity and Access Management (IAM) と統合されており、ワークフローで使用されるすべてのリソースに対して最小権限の IAM ポリシーを提案します。Step Functions は HIPAA 準拠サービスで、個人健康情報 (PHI) などの医療関連情報が含まれるアプリケーションでの使用も可能です。また、AWS Step Functions は SOC (System & Organization Control) にも準拠しています。こうしたサードパーティーによる監査の結果は AWS SOC コンプライアンスサイトでご覧いただけます。詳細については、Step Functions のセキュリティと認証をご覧ください。

利用に応じた支払い

AWS Step Functions では、ある状態から次の状態に遷移するごとに料金をお支払いいただきます。料金は、各状態の持続期間 (最長 1 年) には関わらず、状態の遷移回数に基づき計算されます。アイドル時間については料金は発生しません。これにより、実行が数回から何千万回に拡大される場合でも、Step Functions のコスト効率性が維持されます。Step Functions 料金の詳細については、こちらをご覧ください。

AWS Step Functionsの料金に関する詳細

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