全般

Q: Amazon Managed Service for Apache Flink とは何ですか?
Amazon Managed Service for Apache Flink では、Apache Flink を使用してストリーミングデータをリアルタイムで変換および分析できます。Apache Flink はオープンソースのフレームワークであり、データストリームを処理するためのエンジンです。Amazon Managed Service for Apache Flink を利用すると、Apache Flink アプリケーションを構築し、管理し、AWS のサービスと統合する作業がシンプルになります。
 
Amazon Managed Service for Apache Flink では、ストリーミングアプリケーションを継続的に実行するために必要なものすべてが提供され、受信データのボリュームとスループットレートに応じて自動的にスケールされます。Amazon Managed Service for Apache Flink を使用すれば、ストリーミングアプリケーションが使用するリソースに対してのみお支払いいただきます。サーバーを管理することも、最低料金やセットアップ費用がかかることもありません。
 
Q: リアルタイムストリーム処理とは何ですか? なぜそれが必要ですか?
リアルタイムデータソースの爆発的な増加により、企業はこれまでにない速さでデータを取り込んでいます。モバイルやウェブアプリケーションからのログデータであれ、e コマースサイトからの購入データであれ、IoT デバイスからのセンサーデータであれ、リアルタイムでデータを取り込むことにより、顧客、組織、ビジネスが現在何をしているかを知ることができます。
 
Q: Amazon Managed Service for Apache Flink では何ができますか?
Amazon Managed Service for Apache Flink はさまざまなユースケースで使用し、データを継続的に処理したり、数日や数週間待つことなく数秒または数分でインサイトを得たりすることができます。 Amazon Managed Service for Apache Flink では、ログ分析、クリックストリーム分析、モノのインターネット (IoT)、アドテク、ゲームなどを用途とするエンドツーエンドストリーム処理アプリケーションを簡単に構築できます。一般的な 4 つのユースケースには、ストリーミング ETL (Extract-Transform-Load/抽出、変換、読み込み)、継続的メトリクス生成、応答リアルタイム分析、データストリームのインタラクティブなクエリがあります。
 
ストリーミング ETL
ストリーミング ETL アプリケーションでは、データレイクやデータウェアハウスを読み込む前に、未加工データを洗浄、拡充、整理、変換でき、一括 ETL 手順を減らすか無くすことができます。配信前に小さなレコードを大きなファイルにバッファリングしたり、ストリームやテーブルをまたいで高度な連結を実行したりできます。例えば、 Amazon Managed Streaming for Apache Kafka (Amazon MSK) に保存されている IoT センサーデータを継続的に読み込むアプリケーションを構築し、センサーの種類別にデータを整理し、指定したスキーマでデータを正規化し、それから Amazon Simple Storage Service (Amazon S3) にデータを配信するアプリケーションを構築できます。
 
継続的メトリクス生成
継続的メトリクス生成アプリケーションでは、データの経時的な傾向を監視し、理解できます。アプリケーションでストリーミングデータを集めて重要な情報を引き出したり、報告用データベースやモニタリングサービスとつなぎ目なく統合し、アプリケーションやユーザーにリアルタイムでサービスを提供したりできます。Amazon Managed Service for Apache Flink では、Apache Flink コード (Java、Scala、Python、または SQL) を使用して、時間ウィンドウにわたって時系列分析を継続的に生成できます。例えば、モバイルゲームのトッププレーヤーを毎分決定して Amazon DynamoDB に送信することで、リアルタイムの順位表を作成できます。また、5 分ごとにウェブサイトの一意の訪問者数を計算し、処理した結果を Amazon Redshift に送信することで、ウェブサイトのトラフィックを追跡することもできます。
 
リアルタイム応答分析
リアルタイム応答分析アプリケーションは、特定のメトリクスが事前定義しきい値に到達したときや、より高度な例では、機械学習 (ML) アルゴリズムを使用してアプリケーションによって異常が検出されたときに、リアルタイムのアラームまたは通知を送信します。このようなアプリケーションでは、ユーザーがモバイルアプリを断念するのを予測し、劣化したシステムを特定するなど、ビジネスにおける変化にリアルタイムですぐに対応できます。たとえば、アプリケーションで、時系列における顧客向け API の可用性または正常終了率を計算して、その結果を Amazon CloudWatch に送信できます。また、特定の基準を満たすイベントを検出し、それを Amazon Kinesis Data Streams と Amazon Simple Notification Service (Amazon SNS) を使用して適切なユーザーに自動的に通知するアプリケーションを作成することもできます。
 
データ ストリームのインタラクティブな分析
インタラクティブな分析により、データのストリーミングの探索をリアルタイムで行えます。アドホックなクエリまたはプログラムを使用すると、Amazon MSK または Amazon Kinesis Data Streams からのストリームを検査し、それらのストリーム内のデータがどのように見えるかを可視化することができます。例えば、時間枠の平均を計算するリアルタイムメトリクスがどのように動作するかを表示し、選択した送信先に集計データを送信できます。また、インタラクティブな分析は、ストリーム処理アプリケーションの反復開発にも役立ちます。作成したクエリは、新しいデータが到着すると継続的に更新されます。Amazon Managed Service for Apache Flink Studio を使用すると、これらのクエリをデプロイし、自動スケーリングと永続的な状態のバックアップを有効にして継続的に実行することができます。 
 

開始方法

Q: Amazon Managed Service for Apache Flink 向け Apache Flink アプリケーションの開始方法を教えてください。
Amazon Managed Service for Apache Flink コンソールにサインインし、新しいストリーム処理アプリケーションを作成します。AWS CLI や AWS SDK を使用することもできます。アプリケーションを作成したら、希望する統合開発環境に進み、AWS に接続し、選択した言語でオープンソースの Apache Flink ライブラリと AWS SDK をインストールします。Apache Flink はオープンソースのフレームワークであり、データストリームと AWS SDK を処理するためのエンジンです。拡張可能なライブラリには、ウィンドウやアグリゲートなどのあらかじめ構築された 25 以上のストリーム処理演算子および Amazon MSK、Amazon Kinesis Data Streams、Amazon DynamoDB や Amazon Kinesis Data Firehose などの AWS のサービス統合が含まれています。構築したら、Amazon Managed Service for Apache Flink にコードをアップロードします。次に、Amazon Kinesis Data Analytics では、クエリを継続的に実行するために必要なものすべてが提供され、受信データのボリュームとスループットレートに応じて自動的にスケールされます。 
 
Q: Amazon Managed Service for Apache Flink 向け Apache Beam アプリケーションの開始方法を教えてください。
Apache Beam を使用して Amazon Managed Service for Apache Flink アプリケーションを作成することは、Apache Flink を使い始めるのと非常によく似ています。上記の質問の指示に従うことができます。デベロッパーガイドの指示に従って、アプリケーションを Apache Beam で実行するために必要なコンポーネントを必ずインストールしてください。Amazon Managed Service for Apache Flink は Apache Beam で実行されている場合にのみ Java SDK をサポートすることに注意してください。 
 
Q: Amazon Managed Service for Apache Flink Studio の開始方法を教えてください
Amazon Managed Service for Apache Flink コンソールから起動して、新しい Studio ノートブックを作成できます。ノートブックを起動すると、Apache Zeppelin で開いて、すぐに SQL、Python、Scala でコードを書くことができます。組み込みの統合を使用する Amazon Kinesis Data Streams、Amazon MSK、Amazon S3 のノートブックインターフェイス、およびカスタムコネクタを備えた Apache Flink がサポートするソースと出力先を使用して、インタラクティブにアプリケーションを開発できます。Apache Flink が Flink SQL でサポートするすべての演算子と Table API を使用して、アドホックデータストリームのクエリを実行し、ストリーム処理アプリケーションを開発できます。準備が整うと、コードを自動スケーリングと永続的な状態で継続的に実行されるストリーム処理アプリケーションにわずか数ステップで構築およびプロモートできます。 
 
Q: Amazon Managed Service for Apache Flink にはどのような制限がありますか?
Amazon Managed Service for Apache Flink により、アプリケーションが大半のシナリオにおける複雑なクエリとソースストリームのデータスループットに対応できるように、伸縮自在にスケールされます。Apache Flink アプリケーション向けサービスの制限に関する詳細については、Amazon Managed Service for Apache Flink デベロッパーガイドの「制限」セクションをご参照ください。 
 
Q: Amazon Managed Service for Apache Flink はスキーマの登録をサポートしていますか?
はい。Apache Flink DataStream コネクタを利用すると、Amazon Managed Service for Apache Flink アプリケーションが AWS Glue のサーバーレス機能である AWS Glue スキーマレジストリを使用できるようになります。Apache Kafka/Amazon MSK および Amazon Kinesis Data Streams を、シンクまたはソースとして、Amazon Managed Service for Apache Flink ワークロードと統合できます。詳細については、また使用開始するには、 AWS Glue スキーマ登録デベロッパーガイドをご覧ください。 

主要な概念

Q: Amazon Managed Service for Apache Flink アプリケーションとは何ですか?
アプリケーションは、使用する Amazon Managed Service for Apache Flink のエンティティです。Amazon Managed Service for Apache Flink アプリケーションでは、ストリーミングデータがリアルタイムで連続的に読み込まれて処理されます。Apache Flink がサポートする言語を使用してアプリケーションコードを記述し、着信ストリーミングデータを処理して出力を生成します。次に、Amazon Managed Service for Apache Flink が、設定した出力先に出力を書き込みます。
 
各アプリケーションは、3 つの基本的コンポーネントで構成されています。
 
  1. 入力: 入力はアプリケーションのストリーミングソースです。入力の設定では、ストリーミングソースをデータストリームにマッピングします。データはデータソースからデータストリームに流れます。アプリケーションコードを利用してこのようなデータストリームからのデータを処理し、処理したデータを後続のデータストリームなどのデータの出力先に送信します。Apache Flink アプリケーションや Studio ノートブックのアプリケーションコード内、および Amazon Managed Service for Apache Flink アプリケーションの API を介して、入力を追加します。 
  2. アプリケーションのコード: アプリケーションコードは入力の処理と出力の生成を行う一連の Apache Flink 演算子です。最も単純な形状では、アプリケーションコードは、ストリーミングソースに関連付けられているデータストリームから読み込み、出力に関連付けられているその他のデータストリームに書き込む 1 つの Apache Flink 演算子になります。Studio ノートブックの場合、これは単純な Flink SQL 選択クエリであり、結果はノートブック内のコンテキストに表示されます。Amazon Managed Service for Apache Flink アプリケーションまたは Studio ノートブック用の Apache Flink コードを、サポートされている言語で記述できます。
  3. 出力: オプションで、データを外部の出力先に保存するようにアプリケーション出力を設定できます。Amazon Managed Service for Apache Flink アプリケーションや Studio ノートブックのアプリケーションコード内に出力を追加します。 

Q: どのアプリケーションコードがサポートされていますか?

Amazon Managed Service for Apache Flink は、Java、Scala、Python を使用して構築されたアプリケーションと、オープンソースの Apache Flink ライブラリおよび独自のカスタムコードをサポートしています。Amazon Managed Service for Apache Flink は、オープンソースの Apache Beam ライブラリと独自のカスタマーコードを使用して Java を使って構築したアプリケーションもサポートします。Amazon Managed Service for Apache Flink Studio は、Apache Flink 互換の SQL、Python、Scala を使用してビルドされたコードをサポートしています。

アプリケーションの管理

Q: Amazon Managed Service for Apache Flink アプリケーションの運用とパフォーマンスをモニタリングする方法を教えてください。
AWS では Apache Flink アプリケーションの Flink ダッシュボードへのアクセスなど、Amazon Managed Service for Apache Flink アプリケーションのモニタリングに使用できるさまざまなツールを提供しています。自動モニタリングを実施するように、これらのツールを設定できます。アプリケーションの監視方法の詳細については、以下のデベロッパーガイドをご覧ください。 
 

Q: Amazon Managed Service for Apache Flink アプリケーションへのアクセスを管理および制御するにはどうすればよいですか?

Amazon Managed Service for Apache Flink では、ユーザーがアプリケーション内で指定したストリーミングデータソース内のレコードに対する読み取り権限が必要になります。また、Amazon Managed Service for Apache Flink はユーザーがアプリケーション出力設定に指定した出力先にアプリケーション出力を書き込む権限も必要になります。これらの権限を付与するには、Amazon Managed Service for Apache Flink が引き受けることのできる AWS Identity and Access Management (IAM) ロールを作成します。このロールに付与する権限によって、サービスがこのロールを引き受けたときに Amazon Managed Service for Apache Flink で実行できる内容が決まります。詳細については、次のデベロッパーガイドを参照してください。

Q: Amazon Managed Service for Apache Flink はアプリケーションをどのようにスケールしますか?

Amazon Managed Service for Apache Flink により、アプリケーションが大半のシナリオにおける複雑なクエリとソースストリームのデータスループットに対応できるように、伸縮自在にスケールされます。Amazon Managed Service for Apache Flink は、Amazon KPU という形でキャパシティをプロビジョニングします。1 つの KPU で 1 vCPU と 4 GB メモリが与えられます。 

Apache Flink アプリケーションおよび Studio ノートブックの場合、Amazon Managed Service for Apache Flink によって、KPU あたり 50 GB の稼働アプリケーションストレージが割り当てられます。このストレージはアプリケーションによってチェックポイントに利用されます。また、これは一時ディスクを通じて利用できます。チェックポイントは、アプリケーションが中断したとき、即座に回復するために使用される、稼働アプリケーションの最新バックアップです。API の Parallelism パラメータと ParallelismPerKPU パラメータを利用し、Apache Flink アプリケーションタスク (ソースから読み込んだり、演算子を実行したりなど) に対する Amazon Managed Service for Apache Flink の並列実行を制御することもできます。Parallelism によってタスクの同時実行インスタンスの数が定義されます。演算子、ソース、シンクはすべて定義された並列処理で実行されます。デフォルトは 1 です。KPU あたりの Parallelism によって、アプリケーションの KPU 単位でスケジュールできる並列タスクの数が定義されます。デフォルトは 1 です。詳細については、Amazon Managed Service for Apache Flink デベロッパーガイド の「スケーリング」を参照してください。 
 
Q: Amazon Managed Service for Apache Flink アプリケーションの構築や管理に関するベストプラクティスは何ですか?
Apache Flink のベストプラクティスについては、Amazon Managed Service for Apache Flink デベロッパーガイドの「 ベストプラクティス」セクションを参照してください。このセクションでは、耐障害性、ログ記録、コーディングなどのベストプラクティスを取り上げます。 
 
Amazon Managed Service for Apache Flink Studio のベストプラクティスについては、Amazon Managed Service for Apache Flink Studio デベロッパーガイドの「ベストプラクティス」セクションを参照してください。ベストプラクティスに加えて、このセクションでは、SQL、Python、Scala アプリケーションのベストプラクティスとサンプル、継続的に実行されるストリーム処理アプリケーションとしてコードをデプロイするための要件、パフォーマンス、ロギングなどについて説明しています。
 
Q: Amazon Managed Service for Apache Flink アプリケーションを使用して Amazon VPC の背後のリソースにアクセスできますか?
はい。Amazon VPC の背後のリソースにアクセスできます。Amazon Managed Service for Apache Flink デベロッパーガイドの「 Amazon VPC の使用」セクションで、VPC アクセス用にアプリケーションを設定する方法を学習できます。
 
Q: 1 つの Amazon Managed Service for Apache Flink アプリケーションから複数の VPC にアクセスできますか?
いいえ。複数のサブネットを指定する場合、それらは同一の VPC に存在している必要があります。VPC をピアリングすることで他の VPC に接続できます。
 
Q: VPC に接続された Amazon Managed Service for Apache Flink アプリケーションは、インターネットおよび AWS のサービスエンドポイントにアクセスできますか?
個別 VPC のリソースに対するアクセスを設定された Amazon Managed Service for Apache Flink アプリケーションおよび Amazon Managed Service for Apache Flink Studio ノートブックでは、デフォルトの構成としてインターネットにアクセスできなくなっています。Amazon Managed Service for Apache Flink デベロッパーガイドの「 インターネットとサービスアクセス」セクションで、アプリケーションのインターネットアクセスを設定する方法を学習できます。

料金と請求

Q: Amazon Managed Service for Apache Flink の料金はいくらですか?
Amazon Managed Service for Apache Flink では、使用した分についてのみお支払いいただきます。Amazon Managed Service for Apache Flink では、リソースのプロビジョニングをする必要がなく、初期費用もありません。 

ストリーミングアプリケーションの実行に使用された KPU の数に基づいて時間あたりの課金が発生します。KPU とは、1 vCPU のコンピューティングと 4 GB のメモリで構成されるストリーム処理能力の単位です。Amazon Managed Service for Apache Flink では、メモリやコンピューティングの要求が処理の複雑性や処理されたストリーミングデータのスループットに合わせて変わるとき、ストリーム処理アプリケーションによって必要とされる KPU の数が自動的に拡大縮小されます。 
 
Apache Flink と Apache Beam のアプリケーションの場合、アプリケーションのオーケストレーションに使用した KPU が、アプリケーションあたり 1 単位追加される方式で課金されます。Apache Flink と Apache Beam のアプリケーションは、稼働アプリケーションストレージと永続的アプリケーションバックアップに対しても課金されます。稼働アプリケーションストレージは Amazon Managed Service for Apache Flink のステートフル処理機能のために使用され、GB 単位で毎月課金されます。永続的アプリケーションバックアップは任意です。これは、アプリケーションバックアップにポイントインタイムリカバリを提供するもので、GB 単位で毎月課金されます。 
 
開発モードまたはインタラクティブモードの Amazon Managed Service for Apache Flink Studio の場合、アプリケーションオーケストレーション用の KPU とインタラクティブな開発用の 1 つの KPU について追加で課金されます。アプリケーション ストレージの実行にも課金されます。耐久性のあるアプリケーションのバックアップには課金されません。
 
料金の詳細については、Amazon Managed Service for Apache Flink の 料金ページを参照してください。
 
Q: 実行中ではあるが、ソースのデータを処理していない Amazon Managed Service for Apache Flink アプリケーションは課金されますか?
Apache Flink と Apache Beam のアプリケーションの場合、Amazon Managed Service for Apache Flink アプリケーションを実行しているのであれば、2 KPU と 50GB の稼働アプリケーションストレージに対する料金が最低料金として請求されます。
 
Amazon Managed Service for Apache Flink Studio ノートブックの場合、アプリケーションを実行しているのなら、3 KPU と 50GB の稼働アプリケーションストレージに対する料金が最低料金として請求されます。
 
Q: Amazon Managed Service for Apache Flink の費用以外に、他に発生する可能性のある費用はありますか?
Amazon Managed Service for Apache Flink は、データの読み込み元であるストリーミングソースと、処理したデータの書き込み先から独立した、完全マネージド型ストリーミング処理ソリューションです。アプリケーションとの間で読み書きするサービスとは別に請求されます。
 
Q: Amazon Managed Service for Apache Flink は AWS 無料利用枠で利用できますか?
いいえ。Amazon Managed Service for Apache Flink は、現在 AWS 無料利用枠ではご利用いただけません。
Q: Apache Flink とは何ですか?
Apache Flink はストリームと一括データ処理のためのオープンソースのフレームワーク/エンジンです。用途の広い演算子を提供し、重複処理など、ストリーミングの中心的問題を解決するため、ストリーミングアプリケーションを簡単に構築できます。Apache Flink は、データストリーム全体の分散計算に対してデータ分配、通信、耐障害性を与えます。
 
Q: アプリケーションの開発方法は?
まず、AWS SDK、Apache Flink、AWS のサービス向けコネクタを含むオープンソースライブラリをダウンロードすることから始めます。ライブラリのダウンロード方法と初めてのアプリケーションを作成する方法は、 Amazon Managed Service for Apache Flink デベロッパーガイドにあります。
 
Q: アプリケーションコードの概要を教えてください。
データストリームとストリーム演算子を利用し、Apache Flink コードを記述します。アプリケーションデータストリームは、コードを利用した処理の実行対象となるデータ構造です。データはソースからアプリケーションデータストリームに継続的に流れます。変換、分割、集計、結合、ウィンドウなどの処理をアプリケーションデータストリームで定義するために 1 つまたは複数のストリーム演算子が使用されます。データストリームと演算子はシリアルチェーンとパラレルチェーンでつなげることができます。擬似コードを利用した簡単な例を以下に示します。
DataStream <GameEvent> rawEvents = env.addSource(
 New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
 rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId, 
   event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
            .keyBy(1)
            .window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
            .apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
Q: Apache Flink オペレータの使用方法を教えてください。
演算子は入力としてアプリケーションデータストリームを受け取り、処理したデータをアプリケーションデータストリームに出力として送信します。演算子をつなげて複数の手順を持つアプリケーションを構築できます。実装や運用に分散システムの高度な知識は必要ありません。
 
Q: どのような演算子がサポートされていますか?
Amazon Managed Service for Apache Flink は Apache Flink のすべてのオペレータをサポートしていて、マップ、KeyBy、集約、ウィンドウ、結合など、さまざまなユースケースの解決に使用できます。例えば、マップ演算子では、任意の処理を実行できます。入ってきたデータストリームから 1 つの要素を受け取り、別の要素を生み出します。KeyBy では、指定したキーを利用してデータが論理的に整理されるため、同様のデータポイントをまとめて処理できます。集合では、sum、min、max など、複数のキーをまたいで処理が実行されます。Window Join では、所与のキーとウィンドウで 2 つのデータストリームが結合されます。 

これらの演算子で要件が満たされない場合、カスタム演算子を構築できます。他の例については、Amazon Managed Service for Apache Flink デベロッパーガイドの「演算子」セクションをご覧ください。Apache Flink 演算子の完全一覧は Apache Flink ドキュメントにあります。 
 
Q: Amazon Managed Service for Apache Flink アプリケーションではどのような統合がサポートされていますか?
最小限のコードで Apache Flink が提供する事前構築された統合をセットアップするか、独自の統合を構築して事実上すべてのデータソースに接続することができます。Apache Flink をベースとするオープンソースライブラリでは、データの配信を処理するためのストリーミングの配信元、配信先、シンクがサポートされます。これには、非同期 I/O コネクタを通じたデータ強化サポートも含まれています。これらのコネクタには、次のものが含まれます。
 
  • ストリーミングデータソース: Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis Data Streams Destinations、またはシンク: Amazon Kinesis Data Streams
  • Amazon Kinesis Data Firehose、Amazon DynamoDB、Amazon Elasticsearch Service、Amazon S3 (ファイルシンク統合経由で)

Q: Amazon Managed Service for Apache Flink アプリケーションでは、ストリームやトピック間でデータを複製できますか?

はい。Amazon Managed Service for Apache Flink アプリケーションを使用して、Amazon Kinesis Data Streams、Amazon MSK、および他のシステム間でデータを複製できます。 ドキュメントに記載されている は、ある Amazon MSK トピックから読み取りを行う方法、別のトピックに書き込む方法を示しています。
 
Q: カスタム統合はサポートされていますか?
ファイル、ディレクトリ、ソケット、あるいはインターネット経由でアクセスできるあらゆるものとの読み書きを可能にする一連のプリミティブの上に構築することで、アプリケーションに配信元と配信先を追加できます。Apache Flink からは、 データソース データシンク用にこのようなプリミティブが提供されます。プリミティブには、データを継続的、1 回限り、非同期、同期などの方法で読み書きする機能などの設定が付属します。例えば、既存のファイルベースのソース統合を延長することで、Amazon S3 から継続的に読み込むアプリケーションを設定できます。
 
Q: Amazon Managed Service for Apache Flink アプリケーションにはどのような配信モデルと処理モデルがありますか?
Amazon Managed Service for Apache Flink の Apache Flink アプリケーションでは、ソースとシンクなど、べき等演算子を使用してアプリケーションが構築されている場合、「厳密に 1 回」の配信モデルが使用されます。つまり、処理されたデータは下流の結果に 1 回だけ影響を与えます。
 
デフォルトでは、Amazon Managed Service for Apache Flink アプリケーションでは Apache Flink の「厳密に 1 回」のセマンティックスが使用されます。Apache Flink の「厳密に 1 回」のセマンティックスを活用するソース、演算子、シンクでアプリケーションを設計する場合、そのアプリケーションでは「厳密に 1 回」の処理セマンティックスがサポートされます。
 
Q: アプリケーションストレージからローカルストレージにアクセスできますか?
はい。Amazon Managed Service for Apache Flink アプリケーションは、KPU ごとに 50 GB の稼働アプリケーションストレージをアプリケーションに提供します。Amazon Managed Service for Apache Flink は、アプリケーションに合わせてストレージをスケールします。稼働アプリケーションストレージは、チェックポイントを利用したアプリケーション状態の保存に利用されます。データをキャッシュするかその他の目的で一時ディスクとして使用するためにアプリケーションコードからも利用できます。Amazon Managed Service for Apache Flink では、チェックポイント (演算子、リソース、シンクなど) を通じて保存されない稼働アプリケーションストレージからいつでもデータを削除できます。稼働アプリケーションストレージに保存されているデータは暗号化されます。
 
Q: Amazon Managed Service for Apache Flink はアプリケーションをどのように自動的にバックアップしますか?
Amazon Managed Service for Apache Flink では、チェックポイントとスナップショットを利用し、稼働アプリケーションの状態が自動的にバックアップされます。チェックポイントではアプリケーションの現在の状態が保存されます。Amazon Managed Service for Apache Flink アプリケーションでは、アプリケーションの位置を回復できるため、障害なし実行と同じ意味になります。チェックポイントでは、稼働アプリケーションストレージが使用されます。Apache Flink アプリケーションのチェックポイントは Apache Flink の チェックポイント機能を通じて提供されます。スナップショットは、アプリケーションのポイントインタイムリカバリポイントを保存し、永続的なアプリケーションバックアップを使用します。スナップショットは Flink セーブポイントに似ています。
 
Q: アプリケーションスナップショットとは何ですか?
スナップショットを使用すると、アプリケーションを前のポイントインタイムに作成/復元できます。これにより、アプリケーションの前の状態を維持したり、アプリケーションをいつでもロールバックしたりできます。スナップショットはゼロから数千の単位で管理します。スナップショットでは永続的アプリケーションバックアップが使用されます。Amazon Managed Service for Apache Flink では、サイズに基づいて請求されます。Amazon Managed Service for Apache Flink は、スナップショットに保存されたデータをデフォルトで暗号化します。API から個々のスナップショットを削除したり、アプリケーションを削除することですべてのスナップショットを削除したりできます。
 
Q: どのバージョンの Apache Flink をサポートしていますか?
サポートされている Apache Flink のバージョンの詳細については、 Amazon Managed Service for Apache Flink のリリースノートページを参照してください。このページには、Amazon Managed Service for Apache Flink がサポートする Apache Beam、Java、Scala、Python、および AWS SDK のバージョンも記載されています。 
 
Q: Amazon Managed Service for Apache Flink アプリケーションでは Apache Beam を実行できますか?
はい、Amazon Managed Service for Apache Flink は、 Apache Beam を使用して構築されたストリーミングアプリケーションをサポートします。Java で Apache Beam ストリーミングアプリケーションを構築し、Amazon Managed Service for Apache Flink で Apache Flink を使用するなど、さまざまなエンジンやサービスで実行することができます。サポートされている Apache Flink と Apache Beam のバージョンに関する情報は、 Amazon Managed Service for Apache Flink デベロッパーガイドで確認することができます。 

Q: Studio アプリケーションの開発方法を教えてください。
わずか数ステップで Amazon Managed Service for Apache Flink Studio、Amazon Kinesis Data Streams、または Amazon MSK コンソールから開始してサーバーレスノートブックを起動し、データストリームをすぐにクエリしてインタラクティブなデータ分析を実行することができます。
 
インタラクティブなデータ分析: SQL、Python、Scala でノートブックにコードを記述し、ストリーミングデータを操作することができます。クエリの応答時間は秒単位です。組み込みの可視化を使用して、ノートブック内からデータを探索し、ストリーミング データに関するリアルタイムインサイトを表示し、Apache Flink を利用したストリーム処理アプリケーションを開発できます。

コードを本番アプリケーションとして実行する準備ができたら、ワンステップで、サーバーなしで 1 秒あたり数ギガバイトのデータを処理するストリーム処理アプリケーションに移行できます。

ストリーム処理アプリケーション: コードを本番環境にプロモートする準備ができたら、ノートブックインターフェイスで [Deploy as stream processing application] (ストリーム処理アプリケーションとしてデプロイ) をクリックするか、CLI で 1 つのコマンドを発行してコードを構築できます。Amazon Managed Service for Apache Flink アプリケーションと同様に、自動スケーリングと耐久性のある状態が有効になった Studio がストリーム処理アプリケーションを大規模に実行するために必要なインフラストラクチャ管理をすべて行います。

Q: アプリケーションコードの概要を教えてください。
Apache Flink の Table API を使用して、SQL、Python、Scala などの任意の言語により、ノートブックでコードを記述できます。Table API は、SQL の機能のスーパーセットをサポートする高レベルの抽象化およびリレーショナル API です。選択、フィルター、結合、グループ化、集計などの使い慣れた操作や、ウィンドウ処理などのストリーム固有の概念を提供します。% を使用して、ノートブックのセクションで使用する言語を指定することで、言語を切り替えることができます。インタープリターは Apache Zeppelin プラグインで、デベロッパーがノートブックの各セクションに言語またはデータ処理エンジンを指定できるようにします。また、ユーザー定義関数を作成し、それらを参照してコード機能を改善することもできます。

Q: どのような SQL 操作がサポートされていますか?
次のような SQL 操作を実行できます。

  • スキャンとフィルタリング (SELECT、WHERE) 
  • 集計 (GROUP BY、GROUP BY WINDOW、HAVING) 
  • セット (UNION、UNIONALL、INTERSECT、IN、EXISTS) 
  • 順序 (ORDER BY、LIMIT) 
  • 結合 (INNER、OUTER、時限ウィンドウ – BETWEEN、AND、一時テーブルとの結合 – 時間の経過に伴う変化を追跡するテーブル)
  • Top-N
  • データ重複排除
  • パターン認識 

GROUP BY、OUTER JOIN、Top-N などの一部のクエリは、ストリーミングデータの「結果の更新」です。つまり、ストリーミングデータが処理されると、結果が継続的に更新されます。CREATE、ALTER、DROP などの他の DDL ステートメントもサポートされています。クエリとサンプルの完全なリストについては、Apache Flink クエリのドキュメントを参照してください。

Q: Python と Scala はどのようにサポートされていますか?

Apache Flink の Table API は、Python 文字列と Scala 式を使用した言語統合を通じて、Python と Scala をサポートしています。サポートされている操作は、選択、順序、グループ化、結合、フィルター、ウィンドウ処理など、サポートされている SQL 操作と非常に似ています。操作の完全なリストとサンプルは、デベロッパーガイドに含まれています。

Q: どのバージョンの Apache Flink および Apache Zeppelin をサポートしていますか?

サポートされている Apache Flink のバージョンの詳細については、Amazon Managed Service for Apache Flink のリリースノートページを参照してください。このページには、Amazon Managed Service for Apache Flink がサポートする Apache Zeppelin、Apache Beam、Java、Scala、Python、および AWS SDK のバージョンも記載されています。

Q: Amazon Managed Service for Apache Flink Studio アプリケーションでは、どのような統合がデフォルトでサポートされていますか?

  • データソース: Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Amazon Kinesis Data Streams、Amazon S3 
  • 統合先、またはシンク: Amazon MSK、Amazon Kinesis Data Streams、Amazon S3

Q: カスタム統合はサポートされていますか?
わずかな追加ステップで Apache Flink コード (Python、Scala、または Java) を数行追加するだけで、追加の統合を設定して、Apache Flink がサポートするすべての統合との接続を定義できます。これには、Amazon OpenSearch Service、Amazon ElastiCache for Redis、Amazon Aurora、Amazon Redshift、Amazon DynamoDB、Amazon Keyspaces などの出力先が含まれます。Amazon Managed Service for Apache Flink Studio アプリケーションを作成または設定するときに、これらのカスタムコネクタの実行可能ファイルをアタッチすることができます。

サービスレベルアグリーメント (SLA)

Q: Amazon Managed Service for Apache Flink の SLA は何を保証しますか?

当社のサービスレベルアグリーメント (SLA) では、Amazon Managed Service for Apache Flink の月間稼働率が 99.9% 以上であることを保証しています。

Q: SLA サービスクレジットの資格を有しているかどうかを知るにはどうすればよいですか?

同じ AWS リージョン内の複数のアベイラビリティーゾーンでタスクを実行しており、いずれかの月間課金期間中に月間稼働率が 99.9% 未満であった場合、Amazon Managed Service for Apache Flink SLA に基づいて Amazon Managed Service for Apache Flink に対する SLA サービスクレジットを受け取る資格があります。SLA 利用規約に関するすべての詳細、およびクレジット請求方法の詳細については、Amazon Managed Service for Apache Flink SLA の詳細ページを参照してください。

Amazon Kinesis Data Analytics の使用を開始する

Kinesis Data Analytics の料金ページをご覧ください。
コストを計算

Amazon Kinesis Data Analytics の料金ページをご覧ください。

Read the documentation
入門ガイドを見る

SQL または Apache Flink のステップバイステップガイドで Amazon Kinesis Data Analytics の使用方法を学習できます。

コンソールで構築を開始する
ストリーミングアプリケーションの構築を開始する

Amazon Kinesis Data Analytics コンソールからストリーミングアプリケーションを構築する。