AWS Data Pipelineからのワークロードの移行
AWSは2012年にAWS Data Pipelineサービスを開始しました。当時は、さまざまなコンピューティングオプションを使用して、異なるデータソース間でデータを確実に移動できるサービスが求められていました。現在は、お客様により優れたエクスペリエンスを提供するサービスが他にもあります。例えば、AWS Glueを使用してApache Sparkアプリケーションの実行とオーケストレーションを行ったり、AWSStep Functionsを使用してAWSサービスコンポーネントのオーケストレーションを行ったり、Amazon Managed Workflows for Apache Airflow (Amazon MWAA)を使用してApache Airflowのワークフローオーケストレーションを管理したりできます。
このトピックでは、AWS Data Pipelineから代替オプションに移行する方法について説明します。選択するオプションは、AWS Data Pipelineの現在のワークロードによって異なります。AWS Data Pipelineの一般的なユースケースは、AWS Glue、AWSStep FunctionsまたはAmazon MWAAのいずれかに移行できます。
AWS Glueへのワークロードの移行
AWS Glue
次のような場合は、AWS Data PipelineのワークロードをAWS Glueに移行することをお勧めします。
さまざまなデータソース、ビジュアルエディタやノートブックなどのオーサリングインターフェイス、データ品質や機密データ検出などの高度なデータ管理機能をサポートするサーバーレスデータ統合サービスを探している。
ワークロードをAWS Glueワークフロー、ジョブ(PythonまたはApache Spark)、クローラー(例えば、既存のパイプラインがApache Spark上に構築されている場合)に移行できる。
取り込み、処理、転送、整合性テスト、品質チェックなど、データパイプラインのあらゆる側面を処理できる単一のプラットフォームを必要としている。
既存のパイプラインが、DynamoDBテーブルをAmazon S3にエクスポートするなど、AWS Data Pipelineコンソールで事前定義されたテンプレートから作成されたもので、同じ目的のテンプレートを探している。
ワークロードがApache Hiveのような特定のHadoopエコシステムアプリケーションには依存しない。
ワークロードにオンプレミスサーバーのオーケストレーションが必要ない。
AWS料金は、クローラー(データの検出)とETLジョブ(データの処理とロード)に対して時間あたりの料金が秒単位で課金されます。AWS GlueStudioは、AWS Glueリソース用の組み込みのオーケストレーションエンジンで、追加コストなしで提供されます。料金の詳細については、「AWS Glueの料金
AWSStep Functionsへのワークロードの移行
AWSStep Functions
AWS Data Pipelineと同様に、AWSStep FunctionsはAWSが提供するフルマネージドサービスです。インフラストラクチャの管理、ワーカーのパッチ適用、OSバージョン更新の管理などを行う必要はありません。
次のような場合は、AWS Data PipelineのワークロードをAWSStep Functionsに移行することをお勧めします。
サーバーレスで可用性の高いワークフローオーケストレーションサービスを探している。
1つのタスク実行の粒度で課金される、費用対効果の高いソリューションを探している。
ワークロードが、Amazon EMR、Lambda、AWS Glue、DynamoDBなど、他の複数のAWSサービスのタスクをオーケストレーションしている。
ワークフロー作成用のドラッグアンドドロップ式のビジュアルデザイナーが付属している、新しいプログラミング概念を学習する必要のない、ローコードのソリューションを探している。
11,000以上のアクションに対応する250を超える他のAWSサービスと追加設定なしで統合できるだけでなく、カスタムのAWS以外のサービスやアクティビティとの統合も可能にするサービスを探している。
AWS Data PipelineとStep FunctionsはどちらもJSON形式を使用してワークフローを定義します。これにより、ワークフローをソース管理に保存し、バージョンを管理し、アクセスを制御し、CI/CDで自動化することができます。Step Functionsは、完全にJSONに基づいたAmazon State Language と呼ばれる構文を使用しており、ワークフローのテキスト表現と視覚表現をシームレスに切り替えることができます。
Step Functionsでは、現在AWS Data Pipelineで使用しているのと同じバージョンのAmazon EMRを選択できます。
AWS Data Pipelineマネージドリソースのアクティビティを移行する場合、Step FunctionsのAWSSDKサービス統合を使用して、リソースのプロビジョニングとクリーンアップを自動化できます。
オンプレミスサーバー、ユーザーマネージドEC2インスタンス、またはユーザーマネージドEMRクラスター上のアクティビティを移行する場合、SSMエージェントをインスタンスにインストールできます。コマンドは、Step FunctionsからAWSSystems Managerの実行コマンドを使用して開始できます。Amazon EventBridge
AWSStep Functionsには、標準ワークフローとExpressワークフローの2つのワークフロータイプがあります。標準ワークフローでは、アプリケーションの実行に必要な状態遷移の回数に基づいて課金されます。Expressワークフローでは、ワークフローのリクエスト数とその期間に基づいて課金されます。料金の詳細については、「AWSStep Functionsの料金
Amazon MWAAへのワークロードの移行
Amazon MWAA
AWS Data Pipelineと同様に、Amazon MWAAはAWSが提供するフルマネージドサービスです。これらのサービスに固有の新しい概念をいくつか学ぶ必要がありますが、インフラストラクチャの管理、ワーカーのパッチ適用、OSバージョン更新の管理などを行う必要はありません。
次のような場合は、AWS Data PipelineワークロードをAmazon MWAAに移行することをお勧めします。
Pythonで記述されたワークフローをオーケストレーションするための、マネージド型の可用性の高いサービスを探している。
移植性を最大限に高めるに、フルマネージドで広く採用されているオープンソーステクノロジであるApache Airflowに移行したいと考えている。
取り込み、処理、転送、整合性テスト、品質チェックなど、データパイプラインのあらゆる側面を処理できる単一のプラットフォームを必要としている。
オブザーバビリティのための優れたUI、失敗したワークフローの再起動、バックフィル、タスクの再試行などの機能を備えた、データパイプラインオーケストレーション向けに設計されたサービスを探している。
AWSだけでなくAWS以外のサービスにも対応する、800以上のオペレータとセンサーがあらかじめ組み込まれたサービスを探している。
Amazon MWAAワークフローはPythonを使用するDirected Acyclic Graphs (DAG) として定義されるため、ソースコードとして扱うこともできます。Airflowの拡張可能なPythonフレームワークにより、事実上あらゆるテクノロジーと接続するワークフローを構築できます。ワークフローを表示および監視するための優れたユーザーインターフェイスが付属しており、バージョン管理システムと簡単に統合してCI/CDプロセスを自動化できます。
Amazon MWAAでは、現在AWS Data Pipelineで使用しているのと同じバージョンのAmazon EMRを選択できます。
AWS料金は、Airflow環境の稼働時間に対する料金に加えて、ワーカーまたはウェブサーバーの容量を増やすための追加の自動スケーリングに対する料金がかかります。料金の詳細については、「Amazon Managed Workflows for Apache Airflowの料金
概念のマッピング
次の表には、サービスで使用される主要な概念のマッピングが示されています。Data Pipelineに精通している人がStep FunctionsとMWAAの用語を理解するのに役立ちます。
Data Pipeline | 接着語 | ステップ関数 | Amazon MWAA |
---|---|---|---|
パイプライン | ワークフロー | ワークフロー | Direct acylic graphs |
パイプライン定義JSON | ワークフロー定義またはPythonベースのブループリント | Amazon State Language JSON | Pythonベース |
アクティビティ | ジョブ | ステートとタスク | タスク |
インスタンス | ジョブ実行 | 実行 | DAG実行 |
Attempts | 再試行回数 | Catcherとretrier | 再試行 |
パイプラインスケジュール | スケジュールトリガー | EventBridgeスケジューラタスク | Cron |
パイプラインの式と関数 | ブループリントライブラリ | Step Functions組み込み関数とAWSLambda | 拡張可能なPythonフレームワーク |
サンプル
以下のセクションでは、AWS Data Pipelineから個々のサービスへの移行について参照できる公開例をリストしています。それらを例として参照し、ユースケースに基づいて更新してテストすることで、個々のサービスで独自のパイプラインを構築できます。
AWS Glueサンプル
以下のリストには、AWS Glueを使用した最も一般的なAWS Data Pipelineのユースケースのサンプル実装が含まれています。
JDBCからAmazon S3へのデータのコピー
(Amazon Redshiftを含む) Amazon S3からJDBCへのデータのコピー
(Amazon Redshiftを含む)
AWSStep Functionsの例
以下のリストには、AWSStep Functionsを使用した最も一般的なAWS Data Pipelineのユースケースのサンプル実装が含まれています。
AWSStep Functionsの使用については、追加のチュートリアルとサンプルプロジェクトを参照してください。
Amazon MWAAのサンプル
以下のリストには、Amazon MWAAを使用した最も一般的なAWS Data Pipelineのユースケースのサンプル実装が含まれています。
Amazon MWAAの使用については、追加のチュートリアルとサンプルプロジェクトを参照してください。