View a markdown version of this page

Amazon S3 配信の仕組み - Amazon Kinesis Data Streams

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

Amazon S3 配信の仕組み

このトピックでは、Amazon S3 配信が Amazon Kinesis Data Streams ストリームから、ストレージ設定、圧縮、ストレージクラス、レコード形式、暗号化などの汎用 Amazon Simple Storage Service バケットにレコードを送信する方法について説明します。

配信の仕組み

Amazon S3 配信は、次の手順でレコードを汎用 Amazon S3 バケットに送信します。

  1. Read – 配信は、Kinesis Data Streams ストリーム内のすべてのシャードからレコードを読み取ります。

  2. バッファ — レコードは、データの鮮度間隔に達するまでバッファされます。

  3. 検証 – レコード形式が の場合STRING、各レコードは有効な UTF-8 文字列として検証されます。レコード形式が の場合JSON、各レコードは有効な JSON ペイロードとして検証されます。検証に失敗したレコードは、デッドレターキューに送信されます。

  4. 圧縮と形式 – レコードは設定された出力形式に従ってフォーマットされ、指定された圧縮アルゴリズムを使用して圧縮されます。

  5. 配信 – 結果のオブジェクトは、設定されたキーテンプレートを使用して送信先 Amazon S3 バケットに書き込まれます。

  6. デッドレターキュー – 検証に失敗したレコードは、エラーコンテキストを使用してデッドレターキューに書き込まれます。

ストレージ設定

Amazon S3 配信を作成するときは、次のストレージ設定を指定します。

  • BucketARN – 送信先 Amazon S3 バケットの ARN。

  • ExpectedBucketOwner – レプリケート先バケットの予想される所有者の 12 桁の AWS アカウント ID。この値は必須であり、所有権が変更された場合の意図しないバケットへの配信を防ぐのに役立ちます。

  • CompressionType – 配信されたオブジェクトに適用される圧縮タイプ。この値は必須です。 を指定NONEして、圧縮せずにオブジェクトを配信します。「圧縮オプション」を参照してください。

  • StorageClass – 配信されたオブジェクトの Amazon S3 ストレージクラス (オプション)。「ストレージクラス」を参照してください。

  • OutputKeyTemplate – Amazon S3 オブジェクトキーの構築に使用されるテンプレート (オプション)。「Amazon S3 配信用の S3 出力キーテンプレート Amazon S3」を参照してください。

圧縮オプション

汎用 Amazon S3 バケットに配信するには、圧縮タイプを指定する必要があります。圧縮せずにオブジェクトを配信するには、 を選択しますNONE。次のいずれかの圧縮タイプを選択します。

  • GZIP – 標準の gzip 圧縮。圧縮率と速度のバランスが良い。

  • ZSTD – Zstandard 圧縮。圧縮率が高くなり、解凍が速くなります。

  • NONE – 圧縮は適用されません。レコードは圧縮されずに配信されます。

ストレージクラス

必要に応じて、配信されたオブジェクトの Amazon S3 ストレージクラスを指定できます。指定しない場合、デフォルトのストレージクラスは STANDARD です。サポートされているストレージクラス:

  • STANDARD – 頻繁にアクセスされるデータの汎用ストレージ。

  • INTELLIGENT_TIERING – は、使用パターンに基づいてアクセス層間でデータを自動的に移動します。

  • GLACIER_IR – 即時取得が必要なデータの低コストストレージ。

Amazon S3 ストレージクラスの詳細については、「Amazon Amazon S3ユーザーガイド」の「ストレージクラスの理解と管理」を参照してください。

出力キーテンプレート

出力キーテンプレートを設定して、配信されたファイルの Amazon S3 オブジェクトキー構造を制御できます。テンプレートは、日付、時刻、配信メタデータの動的プレースホルダーをサポートし、送信先バケット内のデータを整理します。デフォルトのテンプレート、サポートされている変数、および例については、「」を参照してくださいAmazon S3 配信用の S3 出力キーテンプレート Amazon S3。

データの鮮度

データの鮮度は、レコードが配信されるまでの最大バッファ時間を定義します。この値は 300~900 秒 (5~15 分) の間で設定できます。デフォルトは 300 秒です。値を小さくすると配信が速くなり、値を大きくすると生成されるオブジェクトは少なくなります。

デッドレターキュー

デッドレターキューは、汎用 Amazon S3 バケットへの配信にはオプションです。デッドレターキュー設定を指定しない場合、配信はデフォルトでエラープレフィックスを持つ同じ送信先バケットにエラー情報を書き込みます。

デッドレターキューを指定する場合は、以下を指定します。

  • BucketARN – 配信できなかったレコードに関する情報を受け取る Amazon S3 バケットの ARN。

  • ExpectedBucketOwner – デッドレターキューバケットの予想される所有者の 12 桁の AWS アカウント ID (デッドレターキューを指定する場合に必要)。

  • ErrorOutputPrefix – バケット内の障害メタデータオブジェクトを整理するためのオプションのプレフィックス。

レコード形式

Amazon S3 配信では、汎用 Amazon S3 バケットへの配信に次のレコード形式がサポートされています。

  • JSON – プレーン JSON レコード。

  • STRING – UTF-8 文字列レコード。

  • BYTE_ARRAY – raw バイナリレコード。

注記

GSR_JSON レコード形式は、汎用 Amazon S3 バケットへの配信ではサポートされていません。これは、 AWS Glue スキーマレジストリを必要とする Apache Iceberg のストリーミングテーブルへの配信でのみサポートされています。

アカウント間での配信

Amazon S3 配信は、汎用 Amazon S3 バケットへのクロスアカウント配信をサポートしています。ソースストリームとレプリケート先バケットは同じ にある必要があります AWS リージョン。オブジェクトを書き込むアクセス許可を配信 IAM ロールに付与するように送信先バケットポリシーを設定します。

暗号化

Amazon S3 配信は、汎用 Amazon S3 バケットに配信されるオブジェクトのカスタマーマネージド AWS KMS キーによるサーバー側の暗号化をサポートします。カスタマーマネージド AWS KMS キーを指定して、配信されたオブジェクトを暗号化できます。

重要

エイaws/kinesis AWS KMS リアスを送信先暗号化に使用することはできません。カスタマーマネージド AWS KMS キーを使用する必要があります。

ソース Kinesis データストリームが暗号化されている場合は、追加の考慮事項が適用されます。(エイリアス) AWS マネージドキー aws/kinesis で暗号化されたストリームはサポートされておらず、サービス実行ロールにはソースレコードを復号するための AWS KMS アクセス許可が必要です。ソースストリームの暗号化要件については、「」を参照してくださいソースストリームの暗号化。サービス実行ロールに必要なアクセス許可については AWS KMS 、「」を参照してくださいデータ配信の IAM アクセス許可。