Amazon Managed Service for Apache Flink とは? - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink (Amazon MSF) は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。

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

Amazon Managed Service for Apache Flink とは?

Amazon Managed Service for Apache Flink を使用すると、Java、Scala、Python、SQL のいずれかを使用してストリーミングデータを処理および分析できます。このサービスにより、ストリーミングソースや静的ソースに対してコードを作成・実行し、時系列分析を行い、リアルタイムダッシュボードやメトリクスにデータを供給できます。

Apache Flink に基づくオープンソースライブラリを使用して、Managed Service for Apache Flink で任意の言語を使用してアプリケーションを構築できます。Apache Flink は、データストリームを処理するための一般的なフレームワークおよびエンジンです。

Apache Flink 用 Managed Serviceは、Apache Flink アプリケーションの基盤となるインフラストラクチャを提供します。コンピュートリソースのプロビジョニング、AZ フェイルオーバー耐性、並列計算、自動スケーリング、アプリケーションバックアップ (チェックポイントやスナップショットとして実装) などのコア機能を処理します。ハイレベルの Flink プログラミング特徴 (オペレータ、関数、ソース、シンクなど) は、Flink インフラストラクチャーを自分でホストするときと同じように使用できます。

Amazon Managed Service for Apache Flink で Flink ジョブを実行するには、2 つのオプションがあります。Managed Service for Apache Flink を利用すると、任意の IDE と Apache Flink の Datastream API や Table API を使用して Java、Scala、Python (および埋め込み SQL) で Flink アプリケーションを構築できます。Managed Service for Apache Flink Studio を利用すると、リアルタイムでデータストリームをインタラクティブにクエリでき、標準 SQL、Python、Scala を使用してストリーム処理アプリケーションを容易に構築・実行できます。

ユースケースに最適な方法を選択できます。よくわからないときは、このセクションで大まかなガイダンスを確認してください。

Decision tree for selecting Flink application, Deployed Studio application, or Studio Notebook based on use case and programming experience.

Amazon Managed Service for Apache Flink と Amazon Managed Service for Apache Flink Studio のどちらを使用するかを決定する前に、ユースケースを検討する必要があります。

ストリーミング ETL や継続的アプリケーションなどのワークロードを引き受ける長時間稼働のアプリケーションを運用する場合は、Managed Service for Apache Flink の使用を検討する必要があります。これは、任意の IDE で Flink API を直接使用して Flink アプリケーションを作成できるためです。IDE を使用してローカルで開発することで、Git でのコードバージョニング、CI/CD オートメーション、ユニットテストなどのソフトウェア開発ライフサイクル (SDLC) の一般的なプロセスやツールを活用することもできます。

アドホックデータ探索に関心があり、ストリーミングデータをインタラクティブにクエリする場合、またはプライベートリアルタイムダッシュボードを作成する場合、Managed Service for Apache Flink Studio を使用すれば、わずか数クリックでこれらの目標を達成できます。SQL に精通しているユーザーは、長時間稼働しているアプリケーションを Studio から直接デプロイすることを検討できます。

注記

Studio ノートブックを長時間稼働するアプリケーションに昇格させることができます。ただし、Git でのコードバージョニングや CI/CD オートメーションなどの SDLC ツール、あるいはユニットテストなどの手法と統合する場合は、任意の IDE を使用して Managed Service for Apache Flink を使用することをお勧めします。

Managed Service for Apache Flink では、任意の IDE で Apache Flink API を使用して、Java、Python、Scala でアプリケーションを構築できます。Flink Datastream と Table API を使用してアプリケーションを構築する方法に関するガイダンスについては、ドキュメントを参照してください。Flink アプリケーションを作成する言語と、アプリケーションと運用のニーズに合わせて使用する API を選択できます。よく分からないときは、このセクションで大まかなガイダンスを提供します。

Apache Flink API には、さまざまな抽象化レベルがあり、アプリケーションの構築方法に影響を与える可能性があります。これらは表現力と柔軟性があり、一緒に使用することでアプリケーションを構築できます。1 つの Flink API のみを使用する必要はありません。Flink API の詳細については、Apache Flink のドキュメントを参照してください。

Flink には、Flink SQL、Table API、DataStream API、Process Function の 4 つの API 抽象化レベルが用意されています。これらは DataStream API と組み合わせて使用されます。これらはすべて Amazon Managed Service for Apache Flink でサポートされています。可能であれば、より高いレベルの抽象化から始めることをお勧めしますが、一部の Flink 機能は、Java、Python、または Scala でアプリケーションを作成できる Datastream API でのみ使用できます。以下の場合は、Datastream API の使用を検討する必要があります。

  • 状態をきめ細かく制御する必要がある

  • 外部データベースまたはエンドポイントを非同期的に呼び出す機能を活用したい (推論など)

  • カスタムタイマーを使用したい (カスタムウィンドウや遅延イベント処理の実装など)

  • 状態をリセットせずにアプリケーションのフローを変更できるようにしたい

Apache Flink APIs diagram showing abstraction levels and programming languages for different APIs.
注記

DataStream API を使用した言語の選択:

  • SQL は、選択したプログラミング言語に関係なく、任意の Flink アプリケーションに埋め込むことができます。

  • DataStream API を使用する場合、Python ではすべてのコネクタがサポートされているわけではありません。

  • 低レイテンシー/高スループットが必要な場合は、API に関係なく Java/Scala を検討する必要があります。

  • Process Functions API で非同期 IO を使用する場合は、Java を使用する必要があります。

API を選択すると、状態をリセットすることなくアプリケーションロジックを進化させる機能にも影響する可能性があります。これは、演算子に UID を設定することのできる特定の機能に依存しており、Java と Python の両方の DataStream API でのみ使用できます。詳細については、「Apache Flink ドキュメント」の「Set UUIDs For All Operators」を参照してください。

ストリーミングデータアプリケーションを始めるためのステップ

まず、ストリーミングデータを継続的に読み取って処理する Apache Flink アプリケーション用 Managed Service を作成します。次に、選択した IDE を使用してコードを書き、ライブストリーミングデータでテストします。Apache Flink 用 Managed Service で結果を送信する宛先を設定することもできます。

始める前に、以下のセクションを読んでおくことをお勧めします。

または、Managed Service for Apache Flink Studio ノートブックを作成することで、リアルタイムにデータストリームをインタラクティブにクエリし、標準 SQL、Python、Scala を利用してストリーム処理アプリケーションを容易に構築・実行できます。を数回クリックするだけで AWS マネジメントコンソール、サーバーレスノートブックを起動してデータストリームをクエリし、数秒で結果を取得できます。始める前に、以下のセクションを読んでおくことをお勧めします。