Ruby Flow ユーザー向けオプション - Amazon Simple Workflow Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Ruby Flow ユーザー向けオプション

AWS Flow Framework for Ruby の開発は終了しています。既存のコードは今後も機能し続けますが、新しい機能またはバージョンはありません。このトピックは、Amazon SWF を使用し続けるための使用および移行オプション、および Step Functions への移行方法について説明します。

オプション 説明

Ruby Flow Framework を使用し続ける

現状、Ruby Flow Framework は機能しています。何もしないでいると、コードは引き続きそのまま機能し続けます。近い将来の AWS Flow Framework for Ruby からの移行を計画します。

Java Flow Framework に移行する

Java Flow Framework は現在も開発中であり、今後も新しい機能や更新がリリースされます。

Step Functions に移行する

Step Functions は、ステートマシンと呼ばれる視覚的なワークフローを使用して、分散アプリケーションのコンポーネントを調整する方法を提供します。

Flow Framework を使用せずに SWF API を直接使用する Ruby を使用し続け、Ruby Flow Framework の代わりに SWF API を直接使用できます。

Ruby であっても Java であっても、Flow Framework が提供する利点は、ワークフローロジックに専念できることです。フレームワークが細かい通信と調整の多くを処理し、複雑性の一部が抽象化されます。Java Flow Framework に移行することで同レベルの抽象化を維持できます。または Amazon SWF SDK を直接操作することもできます。

Ruby Flow Framework を使用し続ける

AWS Flow Framework for Ruby は、短期的には現在と同様に引き続き機能します。AWS Flow Framework for Ruby で記述されたワークフローがある場合、これらは引き続き動作します。更新、サポート、セキュリティの修正がないため、近い将来 AWS Flow Framework for Ruby から移行するしっかりとした計画を立てることをお勧めします。

Java Flow Framework に移行する

AWS Flow Framework for Java は、アクティブな開発で保持されます。概念的には、AWS Flow Framework for Java は AWS Flow Framework for Ruby に似ています。ワークフローロジックに集中でき、フレームワークによってディサイダーロジックが管理しやすく、Amazon SWF のその他の面も管理しやすくなります。

Step Functions に移行する

AWS Step Functions では Amazon SWF に似たサービスを提供しますが、ここではワークフローロジックはステートマシンによって制御されます。視覚的なワークフローを使用して、分散アプリケーションとマイクロサービスのコンポーネントを調整するには、Step Functions を使用します。それぞれ別個の関数 (タスク) を実行する個々のコンポーネントからアプリケーションを構築することで、簡単にアプリケーションをスケールおよび変更できます。Step Functions を使えば、安心してコンポーネントを調整し、アプリケーションの関数を配置できます。グラフィカルコンソールは、アプリケーションのコンポーネントを一連のステップとして可視化する手段を提供します。各ステップが自動的にトリガーおよび追跡され、エラーが発生した場合は再試行されるため、アプリケーションが毎回意図したとおりの順序で実行されます。また、Step Functions では各ステップの状態がログに記録されるため、問題が発生した場合は、問題を簡単に診断およびデバッグできます。

Step Functions では、Amazon States Language を使用して定義された宣言型 JSON で記述されたステートマシンを使用して、タスクの調整を管理します。ステートマシンを使用することで、アプリケーションロジックを制御するディサイダープログラムを作成および維持する必要がなくなります。Step Functions は、視覚的なワークフローを使用してアプリケーションコンポーネントを調整する直感的、効率的、迅速なアプローチを提供します。すべての新しいアプリケーションでは AWS Step Functions を使用することを検討してください。Step Functions は、AWS Flow Framework for Ruby に現在実装されているワークフローに移行する優れたプラットフォームを提供します。

Ruby 言語のスキルを引き続き活用しながらタスクを Step Functions に移行するために、Step Functions には Ruby アクティビティワーカーのサンプルが用意されています。このサンプルはアクティビティワーカーを実装するベストプラクティスを使用しており、Step Functions にタスクロジックを移行するためのテンプレートとして使用できます。詳細については、「AWS Step Functions デベロッパーガイド」の「Ruby でのアクティビティワーカーの例」トピックを参照してください。

注記

多くのお客様にとって、AWS Flow Framework for Ruby から Step Functions への移行が最適な選択肢です。しかし、信号がプロセスに介入する必要がある場合、または結果を親に返す子プロセスを起動する必要がある場合は、Amazon SWF API を直接使用したり、AWS Flow Framework for Java に移行することを検討してください。

AWS Step Functions の詳細については、以下を参照してください。

Amazon SWF API を直接使用する

AWS Flow Framework for Ruby によって、Amazon SWF の複雑性が管理されている場合は、Amazon SWF API を直接使用することもできます。API を直接使用することで、タスクの実装と調整を完全に制御するワークフローを構築できます。進行状況を追跡してその状態情報を維持するといった、内部的に複雑な処理を行う必要はありません。