MEGAZONE

MEGAZONEブログ

Comparing Amazon MWAA and AWS Step Functions
re:Invent 2023 Serverless Compute

Comparing Amazon MWAA and AWS Step Functions

Pulisher : AI & Data Analytics Center チェ・スンヒョン
Description : オーケストレーションサービスのうちMWAAとStep Functionサービスのメリットとデメリットを紹介するchalktalkセッション

プロジェクトを遂行しながら、データオーケストレーションサービスを主にGlue Workflow、MWAA、そしてStep Functionをたくさん使ってきました。 Glue Workflowを除いた他の2つのサービスがそれぞれどのような長所と短所があり、2つのサービス間の最も大きな違いが何なのか聞きたいと思い、セッションを申し込みました。

Chalk Talkで行われ、2つのサービスを比較するセッションなので、2人のスピーカーが強みのあるサービスを紹介し、その後Use Caseを共有してQ&Aの時間を行いました。

まず、AWSでOrchestratorは上の写真のようなサービスがあります。他のサービスとStep Function、WMAAの一番大きな違いはどのような目的のために構成されたオーケストレーターかどうかです。Glue WorkflowはETL目的、CodePipelineはCICD、SageMaker PipeはMLOpsそしてBatchはコンピューティングの目的でオーケストレーターが構成されています。

一方、Step Function、WMAAの場合は特殊な目的ではなく、GeneralなオーケストレーターでMLOps、ETL、Streamingなどの業務を行うことができます。

最初のStep Functionの場合、ドラッグアンドドロップ方式など4つの方法で実装が可能ですが、AWS以外のシステムをFlowの中に入れるためにはLambdaなどの追加開発が必要です。

WMAAの場合、各ステップに該当するTask、そして束であるDAGで構成されています。基本的に色んなソースに対してsensorやoperatorを提供しているので、AWS以外のサービスをFlowに一緒に構成することに強みを持っています。 また、Customで生成したい場合は、開発後、S3バケットにアップロードすれば、そのソースコードを活用してTaskやDAGの構成が可能です。

1番の事例のように、ビデオクリックで発生したデータをDaily基準で分析したい要件で、Step FunctionとWMAAを活用すると、次のような違いがあります。

MWAAの場合、外部データソースを様々なタイプのSensorを活用してデータを収集することができ、Operatorを通じてデータをロードして構成することができます。

しかし、Step Functionの場合、各ステップをLambdaでコードで構成する必要があります。 また、Lambdaを活用する場合、作業が完了したかどうかリターンを受け取ることができないため、一つのFlowにまとめて構成することに限界があります。

2番の事例のように、クリックで発生するイベントに対してリアルタイムで分析して推薦したい要件がある場合には、次のような違いがあります。

MWAAを使用してもLambdaがMWAAを呼び出す形式で構成しなければならない限界がありますが、Step Functionを活用する場合にはイベントブリッジ、lambdaなどを効果的に活用してリアルタイムデータ処理が可能です。

データパイプラインを構成しながら、どのオーケストレーションサービスを使うのがより効率的なのか悩んでいたところ、General目的で使われる二つのサービスについてそれぞれの長所と短所を整理することができました。

ブログ一覧

この記事の読者はこんな記事も読んでいます