Amazon SWF は、開発者が並行したステップまたは連続したステップがあるバックグラウンドジョブを構築、実行、スケールするのに役立ちます。Amazon SWF は、クラウド内の完全マネージド型の状態トラッカー、およびタスクコーディネーターとみなすことができます。

アプリのステップが完了に 500 ミリ秒より長くかかる場合、処理の状態を追跡し、タスクが失敗した場合は、リカバリまたは再試行が必要であり、Amazon SWF がお役に立ちます。


並行、連続、ファンアウトなどのワークフローパターンのサンプルコードを取得するには、使用の開始のページにアクセスしてください。

今すぐ始める

AWS を無料でお試しください

まずは無料で始める »
またはコンソールにサインイン

AWS 無料利用枠には、Amazon Simple Workflow Service (SWF) による 10,000 件のアクティビティタスク、30,000 ワークフロー日、1,000 回の実行が含まれます。

AWS アカウント作成の流れはこちら »

日本担当チームへお問い合わせ »

Amazon SWF は、バックグラウンドジョブの段階的論理の制御フローと独自のビジネスロジックを含む実際の部門の分離を推進しています。これにより、アプリケーションの「状態マシナリ」を、アプリケーションを差別化するコアビジネスロジックから分離して管理、維持、拡張できます。ビジネス要件の変化に合わせて、基盤となる状態マシナリ、タスクの割り当て、フロー制御を心配せずに、容易にアプリケーションロジックを変更できます。

Amazon SWF は、Amazon の高可用性データセンターで実行されるため、アプリケーションが必要なときはいつでも状態追跡やタスク処理エンジンが利用できます。Amazon SWF は重複してタスクを保管し、アプリケーションコンポーネントにタスクを確実に割り当てて、その進行状況をトラッキングし、最新の状態情報を保持します。

Amazon SWF は、独自にコーディングされたワークフローソリューションやプロセス自動化ソフトウェアの複雑さをなくす、完全マネージド型のクラウドワークフローウェブサービスです。プロセス自動化の基礎となるインフラストラクチャを開発者が管理する必要はなくなるので、アプリケーションの独自機能の開発に集中できます。

Amazon SWF は、アプリケーションの使用状況に合わせてシームレスに処理規模を拡大/縮小できます。アプリケーションにクラウドワークフローが追加されたり、ワークフローの複雑さが増大したりしても、ワークフローサービスに対する手作業での管理は必要ありません。

Amazon SWF では、アプリケーションコンポーネントやコーディネートロジックを任意のプログラミング言語で作成でき、実行する場所はクラウドでもオンプレミスでもかまいません。

Amazon S3Amazon EC2 を使用して動画をエンコーディングする。このユースケースでは、サイズの大きな動画を、ある程度のまとまり (チャンク) に分けて Amazon S3 にアップロードします。このチャンクのアップロードを監視する必要があります。チャンクが1つアップロードされたら、そのチャンクをエンコードするために Amazon EC2 インスタンスの1つにダウンロードします。エンコードされたチャンクは、別の Amazon S3 ロケーションに保管します。このようにしてすべてのチャンクがエンコードされたら、チャンクを結合して1つのエンコード済みファイルを作成し、そのまま Amazon S3 に保管します。チャンクの1つで発生したエンコードエラーが原因で、このプロセスが異常終了することもあります。そのような障害は、Amazon SWF のクラウドワークフロー管理によって検出し、処理する必要があります。

コンポーネントをデータセンターからクラウドに移行する。ビジネスに欠かせないオペレーションがプライベートのデータセンターでホスティングされていますが、全体をクラウドに移行する必要があります。ただし、サービスの中断が発生してはなりません。Amazon SWF ベースのアプリケーションでは、データセンターで実行されるコンポーネントをラッピングするワーカーと、クラウド内で実行されるワーカーとを組み合わせることができます。データセンターワーカーをシームレスに移行するには、同じタイプの新しいワーカーを最初にクラウド内にデプロイします。データセンター内のワーカーは引き続き通常どおり稼働し、並行して新しいクラウドベースのワーカーも稼働します。クラウドベースのワーカーのテストと検証を行うために、作業負荷の一部をクラウドにルーティングします。このテストの期間中も、アプリケーションが中断されることはありません。データセンター内のワーカーは引き続き稼働しているからです。テストが成功すると、データセンター内のワーカーは段階的に停止していき、クラウド内のワーカーがスケールアップして、その全体がクラウドワークフロー管理アプリケーションに移行することになります。このクラウドワークフロープロセスを、データセンター内の他のすべてのワーカーについても同様に実行すると、アプリケーションを完全にクラウドに移行できます。ビジネス上の理由で、特定の処理ステップを引き続きプライベートのデータセンターで実行する場合は、そのワーカーを引き続きプライベートデータセンターで実行しながらアプリケーションに参加させることが可能です。

サイズの大きい製品カタログを Amazon Mechanical Turk を使用して処理する。大規模カタログのデータを検証するときに、カタログ内の製品をバッチに分けて処理します。複数のバッチを同時に処理することができます。バッチごとに、製品データをデータセンター内のサーバーから抽出して CSV(カンマ区切り形式)ファイルに変換します。これは、Amazon Mechanical Turk の RUI(Requester User Interface)で要求されている形式です。この CSV をアップロードすると、そのデータを入力として HIT(Human Intelligence Task)が実行されます。HIT が完了したら、生成された CSV を逆変換してデータを元の形式に戻します。この結果を評価し、結果が合格ならば Amazon Mechanical Turk の作業者に報酬が支払われます。HIT の結果が不合格の場合は取り除いて再処理しますが、合格の場合はその結果を使用してカタログを更新します。バッチが処理されるときに、システムは Amazon Mechanical Turk 作業者の質をトラッキングして、報酬をそれに応じて調整する必要があります。不合格の HIT は再びバッチにまとめられて、もう一度パイプラインに送られます。