Apache Flink 向けの Amazon マネージドサービスとは何ですか? - Managed Service for Apache Flink

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

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

Apache Flink 向けの Amazon マネージドサービスとは何ですか?

Apache Flink 向けの Amazon マネージドサービスでは、Java、Scala、Python、または SQL を使用してストリーミングデータを処理および分析できます。このサービスでは、ストリーミングソースや静的ソースに対してコードを作成して実行し、時系列分析、リアルタイムダッシュボードのフィード、メトリクスのフィードを行うことができます。

Apache Flink ベースのオープンソースライブラリを使用して、Apache Flink 用マネージドサービスで選択した言語でアプリケーションを構築できます。Apache Flink は、データストリームを処理するための一般的なフレームワークおよびエンジンです。

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

Apache Flink 用の Amazon マネージドサービスで Flink ジョブを実行するには、2 つのオプションがあります。Apache Flink 用マネージドサービスでは、任意の IDE と Apache Flink データストリームまたはテーブル API を使用して、Java、Scala、または Python (および組み込み SQL) で Flink アプリケーションを構築できます。Apache Flink Studio のマネージドサービスを使用すると、データストリームをリアルタイムでインタラクティブにクエリし、標準 SQL、Python、および Scala を使用してストリーム処理アプリケーションを簡単に構築および実行できます。

ユースケースに最も適した方法を選択できます。よくわからない場合は、このセクションで大まかなガイダンスを提供して参考にしてください。

Apache Flink 用の Amazon マネージドサービスと Apache Flink Studio 用の Amazon マネージドサービスのどちらを使用するかを決める前に、ユースケースを検討する必要があります。

ストリーミング ETL や継続的アプリケーションなどのワークロードを引き受ける長時間稼働アプリケーションの運用を計画している場合は、Apache Flink のマネージドサービスの使用を検討する必要があります。これは、選択した IDE で Flink API を使用して Flink アプリケーションを直接作成できるからです。IDE を使用してローカルで開発することで、Git でのコードバージョン管理、CI/CD 自動化、ユニットテストなどのソフトウェア開発ライフサイクル (SDLC) の共通プロセスやツールを活用できるようになります。

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

注記

Studio ノートブックを長時間実行アプリケーションに昇格させることができます。ただし、Git でのコードバージョン管理や CI/CD 自動化などの SDLC ツールや、ユニットテストなどの手法と統合したい場合は、選択した IDE を使用する Apache Flink のマネージドサービスをお勧めします。

Apache Flink のマネージドサービスでは、任意の IDE で Apache Flink API を使用して Java、Python、および Scala を使用してアプリケーションを構築できます。Flink データストリームとテーブル API を使用してアプリケーションを構築する方法に関するガイダンスは、ドキュメントに記載されています。Flink アプリケーションを作成する言語と、アプリケーションと運用のニーズに最適な API を選択できます。よくわからない場合は、このセクションで大まかなガイダンスを参考にしてください。

Apache Flink API の抽象化レベルはさまざまで、アプリケーションの構築方法に影響する可能性があります。表現力豊かで柔軟性があり、組み合わせてアプリケーションを構築できます。Flink API を 1 つだけ使用する必要はありません。Flink API の詳細については、Apache Flink のドキュメントをご覧ください。

Flink には、Flink SQL、テーブル API、API、プロセス関数という 4 つのレベルの DataStream API 抽象化があり、これらは API と組み合わせて使用されます。 DataStream これらはすべて Apache Flink 用の Amazon マネージドサービスでサポートされています。可能な限り高いレベルの抽象化から始めることをお勧めしますが、Flink の機能の中には Java、Python、または Scala でアプリケーションを作成できる Datastream API でしか使用できないものもあります。次のような場合は、データストリーム API の使用を検討してください。

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

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

  • カスタムタイマーを使いたい (たとえば、カスタムウィンドウ処理やレイトイベント処理を実装するため)

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

注記

DataStreamAPI を使った言語の選択:

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

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

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

  • プロセス関数 API で非同期 IO を使用する予定がある場合は、Java を使用する必要があります。

API の選択は、状態をリセットせずにアプリケーションロジックを進化させる能力にも影響を与える可能性があります。これは、Java と Python の両方の DataStream API でのみ使用できる演算子に UID を設定する機能という特定の機能によって異なります。詳細については、Apache Flink ドキュメントの「すべてのオペレータに UUID を設定する」を参照してください。

ストリーミングデータアプリケーション入門

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

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

あるいは、Apache Flink Studio ノートブック用のマネージドサービスを作成することから始めることもできます。これにより、データストリームをリアルタイムでインタラクティブにクエリでき、標準 SQL、Python、および Scala を使用してストリーム処理アプリケーションを簡単に構築および実行できます。を数回クリックするだけで AWS Management Console、サーバーレスノートブックを起動してデータストリームをクエリし、数秒で結果を取得できます。始める前に、以下のセクションを読んでおくことをお勧めします。