全般

Q: Amazon Kinesis Data Firehose とは何ですか?

Amazon Kinesis Data Firehose は、ストリーミングデータをデータストアや分析ツールにロードする最も簡単な方法です。ストリーミングデータをキャプチャして変換し、Amazon S3、Amazon Redshift、Amazon Elasticsearch Service、Splunk にロードして、現在お使いのビジネスインテリジェンスツールやダッシュボードでほぼリアルタイムに分析できます。フルマネージドサービスのため、データスループットに応じて自動的にスケールされ、継続的な管理は不要です。ロード前にデータのバッチ処理、圧縮処理、暗号化が行われるため、送信先でのストレージ量を最小化し、セキュリティを強化できます。

Q: Amazon Kinesis Data Firehose では何を管理できますか?

Amazon Kinesis Data Firehose では、データをキャプチャして Amazon S3、Amazon Redshift、Amazon Elasticsearch Service、Splunk にロードするために必要な、基盤となるインフラストラクチャ、ストレージ、ネットワーク、設定すべてを管理できます。このプロセスを管理するのに、ハードウェアとソフトウェアのプロビジョニング、デプロイ、継続的なメンテナンスについて心配したり、その他のアプリケーションを記述する必要もありません。また、Firehose は伸縮自在にスケールするため、何らかの操作や、関係するデベロッパーのオーバーヘッドは不要です。さらに、Amazon Kinesis Data Firehose では、同じ AWS リージョン内にある 3 つの拠点でデータが同期的に複製されるため、データ転送時の高い可用性と耐久性を確保できます。

Q: Amazon Kinesis Data Firehose を使用するにはどうすればよいですか?

アマゾン ウェブ サービスにサインアップ後、以下の方法で Amazon Kinesis Data Firehose の使用を開始できます。

  • Firehose コンソールを使用するか、CreateDeliveryStream オペレーションを実行して、Amazon Kinesis Data Firehose 配信ストリームを作成します。配信ストリーム内に AWS Lambda 関数を設定して、raw データを作成および変換してからデータをロードすることもできます。
  • Amazon Kinesis Agent または Firehose API を使用して、配信ストリームにデータを継続的に送信するようデータ生成元を設定します。
  • Firehose により、指定した送信先に対してデータが自動的かつ継続的にロードされます。

Q: ソースとは何ですか?

ソースはストリーミングデータが継続的に生成され、キャプチャされるところです。例えば、Amazon EC2 インスタンスで実行中のロギングサーバー、モバイルデバイスで実行中のアプリケーション、IoT デバイスのセンサー、Kinesis のストリームなどがソースになります。

Q: Amazon Kinesis Data Firehose の制限事項にはどんなものがありますか?

制限の詳細については、デベロッパーガイドの Amazon Kinesis Data Firehose の制限を参照してください。

主要な概念

Q: 配信ストリームとは何ですか?

配信ストリームは Amazon Kinesis Data Firehose の基盤となるエンティティです。配信ストリームを作成し、そこにデータを送信することにより、Firehose を利用できます。

Q: レコードとは何ですか?

レコードは、データ生成元からストリームに送信される処理対象のデータです。レコードの最大サイズは、Base64 エンコーディング前で、1024 KB です。

Q: 送信先とは何ですか?

送信先はデータが配信されるデータストアです。Amazon Kinesis Data Firehose で現在サポートされている送信先は、Amazon S3、Amazon Redshift、Amazon Elasticsearch Service、Splunk です。

配信ストリームの作成

Q: 配信ストリームを作成するにはどうすればよいですか?

Firehose コンソールを使用するか、CreateDeliveryStream オペレーションを実行して、Amazon Kinesis Data Firehose 配信ストリームを作成できます。詳細については、配信ストリームの作成を参照してください。

Q: どの圧縮形式が利用できますか?

Amazon Kinesis Data Firehose では、Amazon S3 への配信前にデータを圧縮できます。このサービスでは現在、GZIP、ZIP、SNAPPY の圧縮形式がサポートされています。さらにデータを Amazon Redshift にロードする場合は、GZIP のみがサポートされています。

Q: CloudWatch Logs のサブスクリプション機能を使用すると、圧縮はどのように機能しますか?

CloudWatch Logs のサブスクリプション機能を使用すると、CloudWatch Logs から Kinesis Data Firehose にデータをストリーミングできます。CloudWatch Logs のすべてのログイベントは、既に gzip 形式で圧縮されています。二重に圧縮することを防ぐため、Firehose では圧縮しないように設定してださい。CloudWatch Logs のサブスクリプション機能の詳細については、Amazon CloudWatch Logs ユーザーガイドの Amazon Kinesis Data Firehose のサブスクリプションフィルタを参照してください。

Q: どのような暗号化を利用できますか?

Amazon Kinesis Data Firehose では、Amazon S3 バケットに送信されたデータを暗号化できます。配信ストリームを作成する際に、お客様が所有する AWS Key Management Service (KMS) キーによるデータの暗号化を選択できます。KMS の詳細については、AWS Key Management Service を参照してください。

Q: Lambda 関数によるデータ変換とはどのようなものですか?

Firehose では AWS Lambda 関数を呼び出すことで、受信データを変換してから送信先に送信することができます。新しい Lambda 関数は、提供されている Lambda 設計図を使用するか、既存の Lambda 関数から選択して設定できます。

Q: ソースレコードバックアップとは何ですか?

Lambda 関数によるデータ変換を使用する場合、ソースレコードバックアップを有効にすると、Amazon Kinesis Data Firehose で未変換の受信データは別の S3 バケットに送信されます。Firehose によって生成される「YYYY/MM/DD/HH」形式の UTC 時刻のプレフィックスの前に、別の接頭辞を追加することを指定できます。

Q: エラーログとは何ですか?

Lambda 関数によるデータ変換を使用する場合、Firehose では Lambda 呼び出しとデータ配信のすべてのエラーを Amazon CloudWatch Logs のログに記録できます。Lambda 呼び出しまたはデータ配信が失敗した場合、ユーザーは特定のエラーログをここで確認できます。詳細については、Amazon CloudWatch Logs を使用した Kinesis Data Firehose のモニタリングを参照してください。

Q: バッファサイズとバッファ間隔とは何ですか?

Amazon Kinesis Data Firehose では、受信ストリーミングデータを送信先に配信する前に、一定のサイズにバッファするか、一定の時間にバッファできます。バッファサイズとバッファ間隔は、配信ストリームの作成時に設定できます。バッファサイズは MB 単位で、送信先が Amazon S3 の場合は 1 MB~128 MB で、送信先が Amazon Elasticsearch Service である場合は 1 MB~100 MB です。バッファ間隔は、60 秒から 900 秒の間で 1 秒ごとに設定できます。送信先へのデータ配信が配信ストリームへのデータ書き込みより遅くなった場合、Firehose では、バッファサイズを動的に拡大して遅れを取り戻し、すべてのデータが送信先に配信されるようにします。

Q: データの圧縮を選択した場合、バッファサイズはどのように適用されますか?

バッファサイズは圧縮前に適用されます。そのため、データの圧縮を選択した場合、ご利用の Amazon S3 バケット内の対象データのサイズは、指定したバッファサイズよりも小さくなる可能性があります。

Q: 配信ストリームの作成時に指定する必要がある IAM ロールは何ですか?

Amazon Kinesis Data Firehose では、Amazon S3 バケットや Amazon Elasticsearch ドメインなどのリソースにアクセスするために、お客様が IAM ロールを指定することを前提としています。詳細については、Amazon Kinesis Data Firehose デベロッパーガイドの Amazon Kinesis Data Firehose によるアクセスの制御を参照してください。

Q: 配信ストリーム作成時に、Amazon Redshift ユーザーにどのような権限を指定する必要がありますか?

Amazon Redshift ユーザーは、お客様のデータを Amazon S3 バケットから Redshift クラスターにコピーするために、Redshift INSERT 権限を持っている必要があります。

Q: Amazon Redshift クラスターが VPC 内にある場合は何を行う必要がありますか?

Amazon Redshift クラスターが VPC 内にある場合は、VPC から Firehose の IP アドレスのブロックを解除して、Amazon Kinesis Data Firehose から Redshift クラスターにアクセスできるようにする必要があります。VPC で IP のブロックを解除する方法の詳細については、Amazon Kinesis Data Firehose デベロッパーガイドの Amazon Redshift の送信先へのアクセス権を Kinesis Data Firehose に付与するを参照してください。

Q: Amazon Redshift を送信先として選択する際に、Amazon S3 バケットを用意する必要があるのはなぜですか?

Amazon Redshift を送信先として選択した場合、Amazon Kinesis Data Firehose ではまず Amazon S3 バケットにデータが送信されます。その後 Redshift COPY コマンドが実行され、S3 バケットから Redshift クラスターにデータがロードされます。

Q: Amazon Elasticsearch Service の送信先のインデックスローテーションについて教えてください。

Amazon Kinesis Data Firehose では、Amazon Elasticsearch Service インデックスを一定の期間でローテーションさせることができます。この期間は、配信ストリームの作成時に設定できます。詳細については、Amazon Kinesis Data Firehose デベロッパーガイドの Amazon ES 送信先のインデックスのローテーションを参照してください。

Q: Amazon Elasticsearch Service を送信先として選択する際に、Amazon S3 バケットを用意する必要があるのはなぜですか?

Amazon Kinesis Data Firehose では、Amazon Elasticsearch Service にデータをロードする際に、すべてのデータまたは配信に失敗したデータのみをバックアップできます。この機能を利用してデータの損失を防ぐために、バックアップ用の Amazon S3 バケットを用意する必要があります。

Q: 配信ストリームを作成した後に設定を変更することはできますか?

配信ストリームの設定は、作成後いつでも変更できます。Firehose コンソールを使用するか、UpdateDestination オペレーションを実行して、設定を変更できます。設定を変更している間も配信ストリームは ACTIVE 状態のままであるため、継続的にデータを配信ストリームに送信できます。変更後の設定は通常、数分で適用されます。

VPC の宛先に配信するときに、同じ VPC、サブネット、セキュリティグループ内で新しい宛先にアクセスできる限り、宛先エンドポイント URL を変更できます。VPC、サブネット、セキュリティグループを変更するには、Firehose 配信ストリームを再作成する必要があります。

Q: あるアカウントで Firehose 配信ストリームを使用して、別のアカウントの Amazon Elasticsearch Service ドメインの VPC の宛先にデータを配信できますか?

いいえ、Firehose 配信ストリームと宛先の Amazon Elasticsearch Service のドメインは同じアカウントにある必要があります。

Q: あるリージョンで Firehose 配信ストリームを使用して、別のリージョンの Amazon Elasticsearch Service ドメインの VPC の宛先にデータを配信できますか?

いいえ、Firehose 配信ストリームと宛先の Amazon Elasticsearch Service のドメインは同じリージョンにある必要があります。

データの準備と変換

Q: Amazon Kinesis Data Firehose で raw データを準備して変換するにはどうすればよいですか?

Amazon Kinesis Data Firehose では、配信ストリーム内で受信する raw データを AWS Lambda 関数を使用して準備および変換し、送信先にロードできます。データ変換用の AWS Lambda 関数は、配信ストリームを新規作成するとき、または既存の配信ストリームを編集する際に設定できます。

Q: AWS Lambda 関数で準備および変換したデータを Amazon Kinesis Data Firehose に戻すにはどうすればよいですか?

Lambda 関数で変換されたすべてのレコードは、以下の 3 つのパラメータと共に Firehose に戻す必要があります。それ以外のレコードは、Firehose によって拒否され、データ変換エラーとして処理されます。

  • recordId: Lambda 関数の呼び出し中、recordId は各レコードと共に Firehose から Lambda 関数に渡されます。変換された各レコードは、recordId を完全に同じ値に保ったまま返される必要があります。元の recordId と返された recordId が一致しない場合、データ変換エラーとして処理されます。
  • result: 各レコードの変換結果のステータス。このパラメータには次の値を使用できます。"Ok": レコードが期待どおり正しく変換された場合。"Dropped": ユーザーの処理ロジックによりレコードが期待どおりドロップされた場合。"ProcessingFailed": レコードを期待どおりに変換することができなかった場合。Firehose で SucceedProcessing.Records と SucceedProcessing.Bytes のメトリクスが作成される際、"Ok" および "Dropped" ステータスで返されたレコードは処理成功レコードとして扱われ、"ProcessingFailed" ステータスで返されたレコードは処理失敗レコードとして扱われます。 
  • data: based64 エンコード後の変換済みデータペイロード。

Q: データの作成と変換に使用できる Lambda 設計図にはどのようなものがありますか?

Firehose では、ユーザーがデータ変換用の Lambda 関数を作成するために使用できる以下の Lambda 設計図が提供されています。

  • 一般的な Firehose 処理: この設計図には、上記のデータ変換およびステータスモデルが含まれています。この設計図はあらゆるカスタム変換ロジックに使用します。
  • Apache ログから JSON へ: この設計図では Apache ログ行を解析して JSON オブジェクトに変換し、事前定義された JSON フィールド名を使用します。
  • Apache ログから CSV へ: この設計図では Apache ログ行を解析して CSV 形式に変換します。
  • Syslog から JSON へ: この設計図では Syslog 行を解析して JSON オブジェクトに変換し、事前定義された JSON フィールド名を使用します。
  • Syslog から CSV へ: この設計図では Syslog 行を解析して CSV 形式に変換します。

Q: すべての raw データのコピーを S3 バケットに保持できますか?

はい。Firehose では、変換されたレコードを送信先に送信するのと並行して、未変換のすべてのレコードを S3 バケットにバックアップできます。配信ストリームを作成または更新するときにソースレコードバックアップを有効にすることができます。

配信ストリームへのデータの追加

Q: Amazon Kinesis Data Firehose 配信ストリームにデータを追加するにはどうすればよいですか?

Amazon Kinesis Data Firehose 配信ストリームにデータを追加するには、Amazon Kinesis Agent を使用するか、Firehose の PutRecord オペレーションや PutRecordBatch オペレーションを使用します。Kinesis Data Firehose は、Kinesis Data Streams、AWS IoT、Amazon CloudWatch Logs、Amazon CloudWatch Events といったその他の AWS データソースとも統合されています。

Q: Amazon Kinesis エージェントとは何ですか?

Amazon Kinesis Agent は、データを収集して配信ストリームに送信する機能を簡単に実現する、事前に構築された Java アプリケーションです。このエージェントは、ウェブサーバー、ログサーバー、データベースサーバーなど、Linux ベースのサーバー環境にインストールできます。エージェントによって特定のファイルがモニタリングされ、データが継続的に配信ストリームに送信されます。詳細については、Kinesis エージェントを使用した Kinesis Data Firehose への書き込みを参照してください。

Q: Amazon Kinesis Agent ではどのようなプラットフォームをサポートしていますか?

現在、Amazon Kinesis Agent では Amazon Linux と Red Hat Enterprise Linux がサポートされています。

Q: Amazon Kinesis エージェントはどこで入手できますか?

次のコマンドとリンクを使用して Amazon Kinesis エージェントをダウンロードおよびインストールできます。

Amazon Linux の場合: sudo yum install –y aws-kinesis-agent

Red Hat Enterprise Linux の場合: sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

GitHub から: awlabs/amazon-kinesis-agent

Q: Amazon Kinesis エージェントを使用するにはどうすればよいですか?

Amazon Kinesis Agent をサーバーにインストールした後、ディスクの特定のファイルをモニタリングするように設定し、配信ストリームに継続して新しいデータを送信します。詳細については、Kinesis エージェントを使用した Kinesis Data Firehose への書き込みを参照してください。

Q: PutRecord オペレーションと PutRecordBatch オペレーションの違いは何ですか?

PutRecord オペレーションは、1 度の API 呼び出しで単一のデータレコードを許可し、PutRecordBatch オペレーションは、1 度の API 呼び出しで複数のデータレコードを許可します。詳細については、PutRecordPutRecordBatch を参照してください。

Q: Amazon Kinesis Data Firehose API にアクセスするには、どのプログラミング言語とプラットフォームを使用できますか?

Amazon Kinesis Data Firehose API はアマゾン ウェブ サービス SDK で使用できます。アマゾン ウェブ サービス SDK 用のプログラミング言語またはプラットフォームのリストについては、アマゾン ウェブ サービスのツールを参照してください。

Q: Kinesis のストリームから Firehose 配信ストリームにデータを追加するにはどうすればよいですか?

AWS コンソールまたは Firehose API によって配信の作成や更新を行っている場合、Kinesis ストリームを配信ストリームのソースとして設定できます。設定が完了すると、Kinesis ストリームから Firehose によって自動的にデータが読み取られ、指定された送信先にロードされます。

Q: Kinesis Data Firehose はどれほどの頻度で Kinesis のストリームからデータを読み取りますか?

Kinesis Data Firehose では、各 Kinesis シャードにつき毎秒 1 回 Kinesis Data Streams GetRecords() が呼び出されます。

Q: 配信ストリームのソースに Kinesis のストリームが設定されている場合、Kinesis Data Firehose はどこからデータを読み取りますか?

配信ストリームのソースに Kinesis データストリームが設定されている場合、Kinesis Data Firehose では LATEST 位置からデータの読み取りを開始します。Kinesis のデータストリームの位置の詳細については、Kinesis Data Streams サービス API リファレンスの GetShardIterator を参照してください。

Q: 自分の Kinesis データストリームを複数の Firehose 配信ストリームのソースとして設定できますか?

はい、できます。ただし、Kinesis Data Firehose からの GetRecords() コールは Kinesis シャード全体のスロットリング上限に対してカウントされることに注意してください。スロットリングが発生しないよう、その他の Kinesis アプリケーションに合わせて配信ストリームを計画を立てることが必要になります。詳細については、Kinesis Data Streams デベロッパーガイドの Kinesis Data Streams の制限を参照してください。

Q: 自分の Kinesis のデータストリームがソースに設定されている場合でも、Kinesis Agent や Firehose の PutRecord オペレーションおよび PutRecordBatch オペレーションを使用して配信ストリームにデータを追加できますか?

いいえ、できません。Kinesis のデータストリームが Firehose 配信ストリームのソースに設定されると、Firehose の PutRecord オペレーションと PutRecordBatch オペレーションが無効になります。その代わり、Kinesis Data Streams の PutRecord オペレーションと PutRecords オペレーションを使用して Kinesis のデータストリームにデータを追加できます。

Q: AWS IoT から配信ストリームにデータを追加するにはどうすればよいですか?

AWS IoT から配信ストリームにデータを追加するには、配信ストリームにイベントを送信する AWS IoT アクションを作成します。詳細については、Kinesis Data Firehose デベロッパーガイドの AWS IoT を使用した Amazon Kinesis Data Firehose への書き込みを参照してください。

Q: CloudWatch Logs から配信ストリームにデータを追加するにはどうすればよいですか?

CloudWatch Logs から Firehose 配信ストリームにデータを追加するには、配信ストリームにイベントを送信する CloudWatch Logs サブスクリプションフィルターを作成します。詳細については、Amazon CloudWatch ユーザーガイドの CloudWatch Logs サブスクリプションフィルタの使用を参照してください。

Q: CloudWatch Events から Amazon Kinesis Data Firehose 配信ストリームにデータを追加するにはどうすればよいですか?

CloudWatch Events から Firehose 配信ストリームにデータを追加するには、配信ストリームをターゲットとして CloudWatch Events ルールを作成します。詳細については、Kinesis Data Firehose デベロッパーガイドの CloudWatch イベントを使用した Amazon Kinesis Data Firehose への書き込みを参照してください。

データ配信

Q: Amazon Kinesis Data Firehose から Amazon S3 バケットにデータが配信される頻度はどのくらいですか?

Amazon S3 へのデータ配信頻度は、配信ストリーム作成時に設定された S3 バッファサイズとバッファ間隔によって異なります。Amazon Kinesis Data Firehose では、Amazon S3 にデータを配信する前に受信データがバッファされます。S3 バッファサイズ (1 MB~128 MB) またはバッファ間隔 (60~900 秒) の値を設定できます。最初に満たされた条件によって Amazon S3 へのデータ配信がトリガーされます。送信先へのデータ配信が配信ストリームへのデータの取り込みより遅くなった場合、Amazon Kinesis Data Firehose では、バッファサイズを自動的に拡大して遅れを取り戻し、すべてのデータが送信先に配信されるようにします。

Q: Amazon Kinesis Data Firehose から Amazon Redshift クラスターにデータが配信される頻度はどのくらいですか?

Amazon Redshift を送信先として選択した場合、Amazon Kinesis Data Firehose ではまず Amazon S3 バケットにデータが送信されます。その後 Redshift COPY コマンドが実行され、S3 バケットから Redshift クラスターにデータがロードされます。Amazon S3 から Amazon Redshift へのデータ COPY オペレーションの頻度は、Redshift クラスターの COPY コマンド処理速度によって異なります。コピーするデータがまだ残っている場合、Firehose では、直前の COPY コマンドが Redshift クラスターで終了した後すぐに新たな COPY コマンドが実行されます。

Q: Amazon Kinesis Data Firehose から Amazon Elasticsearch ドメインにデータが配信される頻度はどのくらいですか?

Amazon Elasticsearch Service へのデータ配信頻度は、配信ストリーム作成時に設定された Elasticsearch バッファサイズとバッファ間隔によって異なります。Firehose では、Amazon Elasticsearch Service にデータを配信する前に受信データがバッファされます。Elasticsearch バッファサイズの値 (1 MB~100 MB) またはバッファ間隔 (60~900 秒) の値を設定し、Amazon Elasticsearch Service へのデータ配信を最初にトリガーするために満たす条件を設定できます。送信先へのデータ配信が配信ストリームへのデータの取り込みより遅くなった場合、Amazon Kinesis Data Firehose では、バッファサイズを自動的に拡大して遅れを取り戻し、すべてのデータが送信先に配信されるようにします。

Q: Amazon S3 バケットではどのようにデータが整理されますか?

Amazon Kinesis Data Firehose では、UTC 時間のプレフィックスを YYYY/MM/DD/HH 形式で追加してから、Amazon S3 にオブジェクトが送信されます。このプレフィックスにより、フォワードスラッシュ (/) で区切られた各ラベルがサブフォルダとなり、Amazon S3 のフォルダ構造に格納されます。任意の最上位フォルダとフォワードスラッシュを追加する (例: myApp/YYYY/MM/DD/HH)、または YYYY 最上位フォルダ名の前にテキストを追加する (例: myApp YYYY/MM/DD/HH) ことにより、フォルダ構造を変更できます。配信ストリーム作成時に S3 プレフィックスを指定することにより、上記の操作を行うことができます。

Q: Amazon Kinesis Data Firehose により配信された Amazon S3 オブジェクトの命名規則はどのようなものですか?

Amazon S3 オブジェクト名の命名規則は、DeliveryStreamName-DeliveryStreamVersion-YYYY-MM-DD-HH-MM-SS-RandomString です。DeliveryStreamVersion は 1 から始まり、配信ストリームの設定が変更されるたびに 1 ずつ増加していきます。Firehose コンソール または UpdateDestination オペレーションを利用して、配信ストリームの設定 (S3 バケット名、バッファリングヒント、圧縮、暗号化など) を変更できます。

Q: Amazon S3 バケットのマニフェストフォルダとは何ですか?

送信先が Amazon Redshift の場合、Amazon S3 オブジェクトを Redshift クラスターにまとめてロードするために、Amazon Kinesis Data Firehose にマニフェストファイルが作成されます。マニフェストフォルダには、Firehose により生成されたマニフェストファイルが格納されます。

Q: Amazon S3 バケットではバックアップされた Elasticsearch ドキュメントはどのように表示されますか?

"すべてのドキュメント" モードが使用されている場合、Amazon Kinesis Data Firehose により配信ストリームのバッファリングに基づいて複数の受信レコードが連結され、S3 オブジェクトとして S3 バケットに配信されます。設定されているバックアップモードを問わず、失敗したドキュメントは特定の JSON 形式を使用して S3 バケットに配信されます。この形式により、エラーコード、配信試行回数などの追加情報が提供されます。詳細については、Amazon Kinesis Data Firehose デベロッパーガイドの Amazon ES 送信先の Amazon S3 バックアップを参照してください。

Q: 単一の配信ストリームで複数の Amazon S3 バケットにデータを配信することはできますか?

現在、単一の配信ストリームがデータを配信できるのは単一の Amazon S3 バケットに対してのみです。複数の S3 バケットにデータを配信する場合は、複数の配信ストリームを作成できます。

Q: 単一の配信ストリームで複数の Amazon Redshift クラスターまたはテーブルにデータを配信することはできますか?

現在、単一の配信ストリームがデータを配信できるのは単一の Amazon Redshift クラスターまたはテーブルのみです。複数の Redshift クラスターまたはテーブルにデータを配信する場合は、複数の配信ストリームを作成できます。

Q: 単一の配信ストリームで複数の Amazon Elasticsearch Service ドメインまたはインデックスにデータを配信することはできますか?

現在、単一の配信ストリームがデータを配信できるのは単一の Amazon Elasticsearch Service ドメインおよびインデックスのみです。複数の Amazon Elasticsearch ドメインまたはインデックスにデータを配信する場合は、複数の配信ストリームを作成できます。

Q: Amazon Kinesis Data Firehose はどのようにして VPC の Amazon Elasticsearch Service ドメインにデータを配信しますか?

Kinesis Data Firehose が VPC の Amazon Elasticsearch Service の宛先にデータを配信できるようにすると、Amazon Kinesis Data Firehose は、選択したサブネットごとに VPC に 1 つ以上のクロスアカウント Elastic Network Interface (ENI) を作成します。Amazon Kinesis Data Firehose はこれらの ENI を使用してデータを VPC に配信します。ENI の数は、サービス要件を満たすように自動的に調整されます。

配信ストリームのトラブルシューティングと管理

Q: Amazon Kinesis Data Firehose 配信ストリームにデータを送信する際にスロットルされるのはなぜですか?

初期設定では、各配信ストリームで、毎秒 2,000 件のトランザクション、毎秒 5,000 件および毎秒 5 MB のレコードの取り込みが可能です。この制限は、サービス上限緩和申請を提出することにより簡単に引き上げることができます。

Q: Amazon S3 バケット、Amazon Redshift のテーブル、Amazon Elasticsearch インデックス、あるいは Splunk クラスターに重複したレコードがあるのはなぜですか?

Amazon Kinesis Data Firehose では、データの配信に少なくとも 1 回のセマンティクスが使用されます。データ配信のリクエスト試行がタイムアウトして、配信が Firehose によって再試行されるなど、ごくまれに以前のリクエストが実行されて重複が発生する場合があります。

Q: Amazon S3 バケットへのデータ配信が失敗した場合は、どうなりますか?

Amazon S3 バケットへのデータ配信が失敗した場合、Amazon Kinesis Data Firehose では、最大 24 時間 5 秒ごとにデータの配信が再試行されます。24 時間の保持期間が経過しても問題が継続する場合、データは破棄されます。

Q: Amazon Redshift クラスターへのデータ配信が失敗した場合は、どうなりますか?

Amazon Redshift クラスターへのデータ配信が失敗した場合、Amazon Kinesis Data Firehose では最大 120 分間、5 分ごとにデータの配信が再試行されます。120 分後、Amazon Kinesis Data Firehose では COPY の準備が整っている S3 オブジェクトの現在のバッチをスキップし、次のバッチの処理に進みます。スキップされたオブジェクトに関する情報はエラーフォルダ内のマニフェストファイルとして S3 バケットに送信されるため、手動によるバックフィルに使用できます。マニフェストファイルを使って手動でデータをコピーする方法について詳しくは、マニフェストを使用し、データファイルを指定するを参照してください。

Q: Amazon Elasticsearch ドメインへのデータ配信が失敗した場合は、どうなりますか?

送信先が Amazon Elasticsearch Service である場合、デリバリーストリームの作成時に 0~7200 秒の間再試行期間を指定することができます。Amazon ES ドメインへのデータ配信が失敗した場合、Amazon Kinesis Data Firehose では、指定された期間にデータ配信が再試行されます。再試行期間の経過後、Amazon Kinesis Data Firehose ではデータの現在のバッチをスキップし、次のバッチの処理に進みます。スキップされたドキュメントに関する情報は elasticsearch_failed フォルダ内の S3 バケットに送信されるため、手動によるバックフィルに使用できます。

Q: データ変換に失敗した場合はどうなりますか?

Firehose でデータ変換のための Lambda 関数を呼び出す場合、2 つのタイプの失敗シナリオがあります。

  • 最初のタイプは、ネットワークのタイムアウトに到達して Lambda の呼び出し制限に達したなどの理由で関数の呼び出しが失敗する場合です。この失敗シナリオでは、Firehose はデフォルトで呼び出しを 3 回再試行し、そのあと問題のレコードのバッチをスキップします。スキップされたレコードは処理失敗レコードとして扱われます。呼び出しの再試行回数は、CreateDeliveryStream API および UpdateDeliveryStream API を使用して 0 から 300 の間で設定できます。このタイプの失敗では、Firehose のエラーログ機能を使用して、呼び出しエラーを CloudWatch Logs に書き出すことができます。詳細については、Amazon CloudWatch Logs を使用した Kinesis Data Firehose のモニタリングを参照してください。
  • 2 つ目のタイプの失敗シナリオは、レコードが Lambda 関数から返されるときにレコードの変換結果が "ProcessingFailed" に設定される場合に発生します。Firehose ではこれらのレコードは処理失敗レコードとして扱われます。このタイプの失敗では、Lambda 関数のログ機能を使用して、エラーログを CloudWatch Logs に書き出すことができます。詳細については、AWS Lambda の Amazon CloudWatch Logs へのアクセスを参照してください。

どちらのタイプの失敗シナリオでも、処理失敗レコードは S3 バケットの processing_failed フォルダに送信されます。

Q: 配信された S3 オブジェクトのサイズが配信ストリーム設定で指定したバッファサイズより大きくなるのはなぜですか?

バッファ間隔の条件より先にバッファサイズの条件が満たされている場合は大抵、配信された S3 オブジェクトのサイズに指定されたバッファサイズが反映されます。ただし、送信先へのデータ配信が配信ストリームへのデータ書き込みより遅くなった場合、Firehose では、バッファサイズを動的に拡大して遅れを取り戻し、すべてのデータが送信先に配信されるようにします。このような場合、配信された S3 オブジェクトのサイズが指定されたバッファサイズより大きくなる可能性があります。

Q: Amazon S3 バケットにあるエラーフォルダとは何ですか?

エラーフォルダには、Amazon Redshift クラスターにロードできなかった S3 オブジェクトの情報が格納されたマニフェストファイルが保存されます。Redshift COPY コマンドを使用して、これらのオブジェクトを手動で再ロードできます。マニフェストファイルを使って手動でデータをコピーする方法について詳しくは、マニフェストを使用し、データファイルを指定するを参照してください。

Q: Amazon S3 バケットにある elasticsearch_failed フォルダとは何ですか?

elasticsearch_failed フォルダには、Amazon Elasticsearch ドメインへのロードに失敗したドキュメントが保存されます。バックフィルのために手動でこれらのドキュメントのインデックスを再作成できます。

Q: Amazon S3 バケットにある processing_failed フォルダとは何ですか?

processing_failed フォルダは AWS Lambda 関数で変換に失敗したレコードが保管されるフォルダです。これらのレコードは再度手動で処理できます。

Q: Amazon Kinesis Data Firehose 配信ストリームの動作とパフォーマンスをモニタリングするにはどうすればいいですか?

Firehose コンソールには、受信データボリュームや配信データボリュームなど、主要な動作とパフォーマンスのメトリクスが表示されます。また Amazon Kinesis Data Firehose は Amazon CloudWatch メトリクスとも統合されているため、配信ストリームのメトリクスを収集、表示、分析できます。Amazon Kinesis Data Firehose のメトリクスの詳細については、Amazon Kinesis Data Firehose デベロッパーガイドの Amazon CloudWatch Metrics のモニタリングを参照してください。

Q: Amazon Kinesis Data Firehose 配信ストリームのデータ変換および送信障害をモニタリングするにはどうすればいいですか?

Amazon Kinesis Data Firehose は Amazon CloudWatch Logs と統合されているため、データの変換または送信が失敗した場合に特定のエラーログを確認できます。エラーログは配信ストリームの作成時に有効にできます。詳細については、Amazon Kinesis Data Firehose デベロッパーガイドの Amazon CloudWatch Logs を使用した Kinesis Data Firehose のモニタリングを参照してください。

Q: Amazon Kinesis Data Firehose 配信ストリームへのアクセスを管理および制御する方法を教えてください。

Amazon Kinesis Data Firehose は、AWS の各種サービスとリソースへのユーザーアクセスを安全に制御できる AWS Identity and Access Management というサービスに統合されています。例えば、Firehose 配信ストリームへのデータの追加を特定のユーザーまたはグループのみに許可するポリシーを作成できます。ストリームのアクセスの管理と制御に関する詳細については、Amazon Kinesis Data Firehose によるアクセスの制御 を参照してください。

Q: セキュリティの分析と動作のトラブルシューティングのために Amazon Kinesis Data Firehose 配信ストリームに対して行われた API コールのログを記録する方法を教えてください。

Amazon Kinesis Data Firehose は AWS CloudTrail と統合されています。AWS CloudTrail は、ユーザーのアカウントに対する AWS API コールを記録してログファイルを提供するサービスです。API コールのログおよびサポートされる Amazon Kinesis Data Firehose API オペレーションのリストの詳細については、AWS CloudTrail を使用した Kinesis Data Firehose API コールのログ記録を参照してください。

料金と請求

Q: Amazon Kinesis Data Firehose は AWS 無料利用枠の対象ですか?

いいえ。現在、Amazon Kinesis Data Firehose は AWS 無料利用枠の対象ではありません。AWS 無料利用枠は、一部の AWS のサービスを無料で試用できるプログラムです。詳細については、AWS 無料利用枠を参照してください。

Q: Amazon Kinesis Data Firehose の料金はどれくらいですか?

Amazon Kinesis Data Firehose ではシンプルな従量課金制を採用しています。前払い料金や最低料金はなく、使用したリソースに対してのみお支払いいただきます。Amazon Kinesis Data Firehose の料金は、Firehose によって取り込まれたデータボリューム (GB) に基づいています。各レコードのボリュームは、直近の 5 KB の倍数に切り上げた数値となります。VPC の宛先への配信の場合、配信ストリームが各アベイラビリティーゾーンでプロビジョニングされたままである時間ごとに、宛先に処理されたデータの GB ごとに支払います。Amazon Kinesis Data Firehose の料金の詳細については、Amazon Kinesis Data Firehose 料金を参照してください。

Q: PutRecordBatch オペレーションを使用してデータを Amazon Kinesis Data Firehose に送信する場合、5 KB への切り上げはどのように計算されますか?

5 KB への切り上げは、API オペレーションのレベルではなく、レコードのレベルで計算されます。例えば、PutRecordBatch 呼び出しに 1 KB のレコードが 2 件含まれている場合、その呼び出しのデータボリュームは 10 KB となります(1 件ごとに 5 KB への切り上げを行うため)。

Q: Amazon Kinesis Data Firehose の料金に、Amazon S3、Amazon Redshift、Amazon Elasticsearch Service、AWS Lambda の料金は含まれていますか?

いいえ。ストレージやリクエストを含む Amazon S3、Amazon Redshift、Amazon Elasticsearch Service、AWS Lambda の使用量に関する料金は別途請求されます。詳細については、Amazon S3 料金Amazon Redshift 料金Amazon Elasticsearch Service 料金AWS Lambda 料金を参照してください。

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

Q: Amazon Kinesis Data Firehose SLA では何が保証されますか?

Amazon Kinesis Data Firehose SLA では、Amazon Kinesis Data Firehose について少なくとも 99.9% の月間稼働率を保証しています。

Q: SLA サービスクレジットの資格を有しているかどうかは、どうすればわかりますか?

同じリージョン内の複数のアベイラビリティーゾーンでタスクを実行しており、任意の月間課金期間中に月間稼働率が 99.9% 未満であった場合、Amazon Kinesis Data Firehose SLA に基づいて Amazon Kinesis Data Firehose に対する SLA クレジットを受け取る資格があります。

SLA の利用規約に関するすべての詳細、およびクレジット請求方法の詳細については、Amazon Kinesis Data Firehose SLA の詳細ページを参照してください。

Amazon Kinesis Data Firehose の料金の詳細

料金ページを見る
始める準備はできましたか?
サインアップ
ご不明な点がおありですか?
お問い合わせ