ワークフローとは何ですか?

ワークフローは、人々が最初から最後までどのように仕事をするかを説明するものです。ワークフローは、プロセスのステップと状態で構成されます。ワークフローは、チェックリストの一連のステップとして、またはステップを視覚化する図表として表されます。

以下は、簡単なサポートワークフローの例です。

  1. 顧客の Carl が、サポートリクエストを開始します。
  2. 未解決のケースは、サポート担当者の Sasha に割り当てられます。
  3. Sasha は割り当てられたケースを受け取り、Carl に情報を求めます。返信を待っている間、ケースのステータスは保留中です。
  4. Carl が要求された情報を提供した後、Sasha は解決策を返し、ケースのステータスを解決済みに更新します。
  5. Carl は、回答と、サポートリクエストに関するフィードバックを提供できるアンケートリンクを受け取ります。彼は Sasha の素早い反応に喜んでおり、調査で高い評価を得ています。ケースのステータスが [終了] に更新されます。

このワークフローでは、「開始」、「割り当て」、「解決」、「終了」のステップがあります。状態は「オープン」、「割り当て済み」、「保留中」、「解決済み」、「終了」です。ステップは、ワークフローが完了するまで、プロセスをパスに沿って状態から状態へ移動します。

ワークフローを使用することの利点は何ですか?

ワークフローは、開始、スケジュール、およびモニタリングできる、反復可能な一連のステップとタスクを提供します。

ワークフローを視覚化して観察し、ワークフローの正確性を検証し、ワークフローの操作を監視できます。

ワークフローを使用することで、企業はコードをさらに複雑にすることなく、分散アプリケーションの信頼性を向上させることができます。ワークフローをきめ細かく自動化、最適化、スケーリングできます。 

ワークフローはアプリケーションアーキテクチャに何をもたらしますか?

ワークフローは、ジョブの段階的論理の制御フローと独自のビジネスロジックを含む実際の作業単位の分離を促進します。この部門では、コアビジネスロジックとは別に、アプリケーションのステートメカニカルを管理、維持、および拡張できます。

ビジネス要件の変化に合わせて、基盤となる状態マシナリ、タスクの割り当て、フロー制御を変更することなく、容易にアプリケーションロジックを変更できます。

ワークフローサービスはアプリケーションアーキテクチャをどのように改善しますか?

信頼性

状態追跡とタスク処理を分離することで、クラウドベースのアーキテクチャに信頼性がもたらされます。ワークフローサービスを使用すると、タスクをアプリケーションコンポーネントにディスパッチし、進捗状況を追跡し、システムの最新の状態を知ることができます。

シンプルさ

ワークフローは、カスタムコーディングされた自社開発のソリューションとプロセス自動化コードの複雑さを置き換えます。

処理ステップを次に進めていくタスクは、完了までに長時間を要することもあり、時には異常終了やタイムアウトが発生したり、再起動が必要になったりすることがあります。タスク完了までのスループットやレイテンシー(遅延)も、多くの場合は一定ではありません。これらすべてのケースで、タスクをトラッキングして可視化することは、難しいだけでなく、差別化不要の作業でもあります。

ワークフローサービスを使用すると、開発者はプロセス自動化のインフラストラクチャ配管を管理する必要がなくなります。その結果、アプリケーションの独自の機能にエネルギーを集中させることができます。

スケーラビリティ

ワークフローサービスは、アプリケーションの使用状況に応じてシームレスにスケーリングするように設計されています。アプリケーションにワークフローが追加されたり、ワークフローの複雑さが増大したりしても、ワークフローサービスの管理を自動化できます。

柔軟性

開発者は、ワークフローサービスを使用して、さまざまなプログラミング言語でアプリケーションコンポーネントと調整ロジックを作成できます。その後、開発者は差別化されたアプリケーションロジックに集中できます。

一般的なワークフローのユースケースにはどのようなものがありますか?

ワークフローは、一連のステップに分割できる計算上の問題やビジネスプロセスを支援します。ワークフローは、相互依存関係を持つジョブの管理を簡素化します。一般的ユースケースには、以下のようなものがあります。

  • アプリケーションオーケストレーション – イベントの通信を通じて、それぞれが独自のプロセスで実行され、独立してデプロイされる、疎結合のマイクロサービスを調整します。サーバーレス機能を組み合わせて、非同期の人間による承認ステップで Web アプリケーションを構築します。その他のユースケースの例については、AWS Step Functions 開発者ガイドの「マイクロサービスオーケストレーション」を参照してください。
  • データプロセシング – データをマルチデータベースから統一されたレポートにまとめる、大きなデータセットを便利な形式に精製して減らす、または手順の多い分析とマシンラーニングワークフローを整合します。その他のユースケースの例については、AWS Step Functions 開発者ガイドの「データ処理」を参照してください。
  • DevOps および ITオートメーション – 継続的インテグレーションとデプロイメントのためにツールを構築、またはインフラストラクチャーの変化に自動的に応答する事象主動のアプリケーションを作成します。その他のユースケースの例については、AWS Step Functions 開発者ガイドの「IT とセキュリティの自動化」を参照してください。
  • e コマース – 注文のフルフィルメントや在庫追跡など、ミッションクリティカルなビジネスプロセスを自動化する。
  • Web アプリケーション – 堅牢なユーザー登録プロセスと認証を実装し、オプションで監査とセキュリティ強化のための手順を統合します。
  • 機械学習 – 抽出、変換、ロード (ETL) ジョブを実行して、機械学習モデルを構築、トレーニング、およびデプロイします。例えば、ビデオストリーム内のオブジェクトを検出したり、バウンディングボックスを追加したり、データカタログ化のための視覚情報とメタデータ情報を提供するために、画像データを収集して処理します。その他のユースケースの例については、AWS Step Functions 開発者ガイドの「機械学習」を参照してください。
  • セキュリティ自動化 – マネージドリソースイベントによって開始される、スケジュールされた分析またはセキュリティインシデント対応で、ビジネスルールに応じて監査および通知手順を呼び出すカスタマイズされたワークフローを使用します。
  • メディア処理 – PDF ドキュメントまたは画像からデータを抽出して処理します。大規模な並列化を使用してビデオを分割およびトランスコードします。その他のユースケースの例については、「AWS Step Functions ユースケースでのメディア処理」を参照してください。 

ワークフローはどのように作成するのですか?

開発者は、最初にカスタムコード化されたソリューションとプロセス自動化コードを構築できます。これらのソリューションは最初は簡単なものですが、時間をかけて開発するうちに複雑になり、エラーが発生しやすくなる傾向があります。ビジネスロジックの更新に必要な労力が増し、時間の経過とともに変更の速度が低下します。

ワークフロー固有のライブラリを採用することで、自社開発のソリューションの複雑さを軽減できます。ただし、これらのツールを構成すると、プロセスがさらに複雑になる可能性があります。ワークフローのステップと状態は、まだ視覚化するのが難しい場合があります。

ワークフローの高度な作成と監視には、ワークフローの状態と手順を調整するための視覚的なツールが必要です。これらのツールでは、ビジネスロジックルールを管理および更新できます。グラフィカルツールを使用すると、開発者の生産性とワークフローの可視性を高め、エラーの可能性を減らすことができます。

ビジュアルワークフローデザイナー Workflow Studio を使用した実践的なチュートリアルについては、「AWS デベロッパーセンターでサーバーレスワークフローを作成する方法」を参照してください。

一般的なワークフローパターンは何ですか?

ワークフローを使用すると、インタラクションを機能させるためのソフトウェアを作成するのではなく、コンポーネントのインタラクションの定義に集中できます。

ワークフローは、マイクロサービスとコンテナの両方をオーケストレーションできます。ワークフローの一般的なパターンには、マイクロサービス連鎖、非同期または同期応答、人間とのやり取り、コンテナのオーケストレーションと振り付け、分岐、エラー処理などがあります。

AWS はどのようなワークフローサービスを提供していますか?

AWS Step Functions は、AWS のサービスのオーケストレーション、ビジネスプロセスの自動化、サーバーレスアプリケーションの構築を実現するローコードの視覚的なワークフローサービスです。Step Functions には、ドラッグアンドドロップ、ローコードのビジュアルワークフローデザイナー、ワークフロースタジオが含まれています。このツールは、ステートマシンの定義に使用される JSON ベースの構造化言語である Amazon States Language で、関数と設定を自動生成します。Step Functions コンソールで Amazon ステート言語を使用するか、エクスポートして編集できます。

Amazon Managed Workflows for Apache Airflow (Amazon MWAA) は、同じオープンソースの Apache Airflow エクスペリエンスをフルマネージド型のサービスとして提供します。Amazon MWAA を使用して既存のオンプレミスソリューションをクラウドに移行することで、運用コストを削減し、大規模にデプロイします。開発者は、他の AWS サービスと統合しながら、タスクの依存関係を宣言して Python で有向非循環グラフ (DAG) モデルを引き続き記述できます。

AWS Step Functions では、より生産的かつ機敏なアプローチにより、視覚的ワークフローを使用してアプリケーションコンポーネントを調整できるため、新しいアプリケーションには AWS Step Functions を使用することをお勧めします。Step Functions Workflow Studio と Amazon ステートランゲージの両方を使用したハンズオンチュートリアルについては、「AWS デベロッパーセンターでサーバーレスワークフローを作成するにはどうすればよいですか」を参照してください。 

AWS でのワークフローの次のステップ

その他の製品関連リソースを確認する
アプリケーション統合サービスの詳細 
AWS Step Functions の無料利用枠にサインアップする

200 以上の AWS のサービスと 9,000 の API アクションでワークフローを構築する

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで API ゲートウェイを使って構築を開始しましょう。

サインイン