AWS Step Functions の特徴
AWS Step Functions は、最新のアプリケーションにサーバーレスオーケストレーションを提供します。オーケストレーションにより、複数のステップに分割されフローロジックが追加されたワークフローを、ステップ間の入力と出力を追跡しながら集中管理できます。
Step Functions は、実行中のアプリケーションがワークフローステップのどこに位置するかを正確に追跡しながらアプリケーションの状態を維持し、アプリケーションのコンポーネント間でやり取りされるデータのイベントログを保存します。つまり、ネットワークに障害が起きたり、コンポーネントがハング状態になったりしても、アプリケーションを問題の直前の状態に復帰することができます。
Step Functions を使用すると、アプリケーションのビジネスロジックから独立してアプリケーションのワークフローを定義、管理できるため、より迅速かつ直感的にアプリケーション開発を行うことができます。ワークフローの特定の場所に加えた変更が他に影響を及ぼすことはありません。
ワークフローを 1 つの場所で簡単に更新、修正できるため、複数のポイントツーポイント統合の管理、監視、維持に労力を費やす必要はありません。 また、ワークフローから直接、ほぼすべての SaaS アプリケーションと簡単に統合できます。
Step Functions では過剰なコードを使用して関数やコンテナを作成する必要がないため、高い回復力と管理容易性を備えたアプリケーションをすばやく作成することができます。
Step Functions の特徴は何ですか?
視覚的で使いやすいワークフロー設定
AWS Step Functions を使用すると、ワークフローをステートマシンとして定義し、複雑なコードを理解しやすいステートメントとダイアグラムに変換することができます。アプリケーションの構築、およびそれらが望ましい機能を実装していることの確認が、より素早く、簡単になります。詳細については、Step Functions の仕組みをご覧ください。
分散アプリケーションのためのエラー処理、タイムアウト、並列処理フローが組み込まれています。
AWS Step Functions は、ステートと呼ばれるワークフロー用に事前作成されたステップを提供します。これらは、ユーザーのためにベーシックサービスプリミティブを実装するため、アプリケーションからロジックを取り除くことができます。ステートは、他のステートとマイクロサービスにデータを渡す、例外に対処する、タイムアウトを追加する、複数のパスを同時に実行するなどを実行できます。ステートの詳細については、こちらをご覧ください。
変数とペイロードの管理を強化
AWS Step Functions では、アプリケーションの開発をスピードアップするための変数とペイロードの管理機能が強化されています。これにより、デベロッパーは変数を使用して Step Functions ワークフロー内でペイロードデータをより簡単に保存および参照できます。中間状態を通過することなく、ワークフローのどの状態でもデータを割り当てて参照できるため、ワークフロー状態間のペイロード管理が簡単になります。デベロッパーは JSONata で組み込みのデータ変換機能を利用できるため、カスタムコードの必要性が減り、生産性が向上します。JSONata には、日付/時刻のフォーマットや数学演算などの包括的なデータ変換機能が追加されており、ワークフローで直接データ操作を実行できます。また、新しいワークフローと既存のワークフローの両方に、ワークフローレベルまたは個々の状態レベルで Variables と JSONata を段階的に導入できますが、既存のワークフローは変更なしで完全に機能します。これらの機能により、デベロッパーはより複雑で効率的なワークフローをより少ない状態で作成でき、全体的なコストをさらに削減できます。
220 の AWS サービスと 10,000 以上の API と直接統合
AWS Step Functions のサービスの統合を使用して、220 以上の AWS のサービスを呼び出すように Step Functions ワークフローを設定することができます。これには次が含まれます。
- コンピューティングサービス (AWS Lambda、Amazon ECS、Amazon EKS、および AWS Fargate)
- データベースサービス (Amazon DynamoDB)
- メッセージングサービス (Amazon SNS、Amazon SQS)、データ処理
- 分析サービス (Amazon Athena、AWS Batch、AWS Glue、Amazon EMR、および AWS Glue DataBrew)
- ジェネレーティブ AI と機械学習サービス (Amazon SageMaker、Amazon Bedrock)
- Amazon API Gateway で作成された API
サービスの統合についての詳細はこちら。
ほぼすべての SaaS アプリケーションとワークフローから直接統合
AWS Step Functions HTTPS エンドポイントの統合により、HTTP ベースのサービスをワークフローに直接統合できます。AWS サービスと SaaS アプリケーションで構成される複数ステップのワークフローを 1 か所から構築、管理、調整できます。HTTPS エンドポイントの統合により、カスタムコードを作成したり、追加のインフラストラクチャを維持したりすることなく、アプリケーションのさまざまなコンポーネントの調整、認証の管理、統合のテスト、エラーの処理を簡単に行うことができます。HTTPS エンドポイントの統合により、開発者の俊敏性が向上し、ビジネスをサポートする SaaS アプリケーションの機能を簡単に拡張できます。
分散されたコンポーネントの調整
AWS Step Functions は、HTTPS 接続を確立できるアプリケーションならば、それがどこでホストされているかにかかわらず (例えば、Amazon EC2 インスタンス、モバイルデバイス、またはオンプレミスサーバー)、どれでも調整することができます。Step Functions を使用することにより、AWS のサービス、およびユーザー独自のマイクロサービスを活用する分散アプリケーションをすばやく作成することができます。アクティビティタスクの詳細をご覧ください。
堅牢で効率的なアプリケーション開発を可能にする部品の耐久性
AWS Step Functions では、すでに使用している Lambda 関数とマイクロサービスを統合して堅牢なアプリケーションを構築し、新たな構成にすばやく書き換えることができます。ワークフローのタスクは、インスタンス、コンテナ、関数、モバイル端末など、あらゆる場所で実行可能です。既存のアプリケーションコンポーネントを再利用する方法をご確認ください。
ワークフローロジックの分離による開発サイクルの短縮化
AWS Step Functions は、アプリケーションのロジックを、アプリケーションの実装から厳密に分離させておきます。ステップは、ビジネスロジックに変更を加える必要なく、追加、移動、および交換し、順番を並び変えることができます。この関心の分離を通じて、ワークフローはモジュール性、シンプル化されたメンテナンス、スケーラビリティ、およびコードの再利性を得ます。
組み込みの状態管理およびワークフローの進捗追跡
AWS 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 では、アプリケーションの各ステップを実行するために、ワークロードの変化に応じて、オペレーションや基盤となるコンピューティング機能が自動的にスケールされます。これにより、リクエストの頻度が増加しても、アプリケーションワークフローのパフォーマンスを高い状態に維持できます。
IoT やデータインジェストなどのイベント処理ワークフローに対応した大容量オーケストレーション
AWS Step Functions が Express Workflows を追加します。Express Workflows は 1 秒あたり 100,000 件よりも早いイベント速度をサポートし、大容量で短期間のワークフローの構築を可能にします。
Express Workflow は、AWS Lambda 関数の呼び出し、AWS IoT ルールエンジンアクション、および 100 を超える AWS サードパーティ SaaS イベントソースからの Amazon EventBridge イベントを調整できます。
Express と Standard のワークフローの詳細と、自動化アーキテクチャのサンプルでの使用方法については、Step Functions のユースケースのページでご確認ください。
大規模な並列処理
Step Functions は、Amazon S3 に保存された画像、ログ、CSV ファイルなどのオブジェクトに対する反服作業を行い、何千もの並列ワークフローを起動して調整し、データを処理することができます。数千のワークフローの同時実行をより迅速かつ容易にスケールでき、数百万のログの分析、テラバイトのデータの反復処理、ドキュメント、画像、動画ファイルの処理に役立ちます。大規模な並列ワークフローを構築するための Step Functions Map ステートについて、詳しくはこちらをご覧ください。
セキュリティ
AWS Step Functions は、AWS Identity and Access Management (IAM) と統合されており、ワークフローで使用されるすべてのリソースに対して最小権限の IAM ポリシーを提案します。Step Functions が AWS PrivateLink を使用した VPC エンドポイント (VPCE) のサポートを開始しました。これにより、VPC が有効な AWS Lambda 関数や他の AWS のサービスから、パブリックインターネットを経由せずに AWS Step Functions にアクセスできるようになります。詳細については、Step Functions のセキュリティと認証をご覧ください。
コンプライアンス
AWS Step Functions は HIPAA 準拠サービスで、個人健康情報 (PHI) などの医療関連情報が含まれるアプリケーションでの使用も可能です。また、Step Functions は SOC (System & Organization Control) にも準拠しています。こうしたサードパーティーによる監査の結果は AWS SOC コンプライアンスサイトでご覧いただけます。AWS Step Functions は、その他の一般的なコンプライアンス標準にも準拠しています。AWS クラウドセキュリティサイトを確認して、コンプライアンスの対象範囲を理解してください。
利用に応じた支払い
AWS Step Functions では、ある状態から次の状態に遷移するごとに料金をお支払いいただきます。料金は、各状態の持続期間 (最長 1 年) には関わらず、状態の遷移回数に基づき計算されます。アイドル時間については料金は発生しません。これにより、実行が数回から何千万回に拡大される場合でも、Step Functions のコスト効率性が維持されます。Step Functions 料金の詳細については、こちらをご覧ください。