

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

# Amazon Keyspaces での変更データキャプチャ (CDC) ストリームの仕組み
<a name="cdc_how-it-works"></a>

このセクションでは、Amazon Keyspaces での変更データキャプチャ (CDC) ストリームの仕組みの概要を説明します。

Amazon Keyspaces 変更データキャプチャ (CDC) は、行レベルの変更の順序付けられたシーケンスを Amazon Keyspaces テーブルに記録し、この情報を*ストリーム*と呼ばれるログに最大 24 時間保存します。行レベルを変更するたびに、プライマリキー列情報と、すべての列を含む行の「前」状態と「後」状態を保持する新しい CDC レコードが生成されます。アプリケーションはストリームにアクセスし、ミューテーションをほぼリアルタイムで表示できます。

テーブルで CDC を有効にすると、Amazon Keyspaces は新しい CDC ストリームを作成し、テーブル内のすべての変更に関する情報をキャプチャし始めます。CDC ストリームには、次の形式の Amazon リソースネーム (ARN) があります。

```
arn:${Partition}:cassandra:{Region}:${Account}:/keyspace/${keyspaceName}/table/${tableName}/stream/${streamLabel}
```

最初に CDC ストリームを有効にするときに、CDC ストリームが各レコードに対して収集する情報のタイプまたは*ビュータイプ*を選択できます。その後、ストリームのビュータイプを変更することはできません。Amazon Keyspaces では、次のビュータイプがサポートされています。
+ `NEW_AND_OLD_IMAGES` – ミューテーションの前と後に行のバージョンをキャプチャします。これがデフォルトです。
+ `NEW_IMAGE` – ミューテーション後の行のバージョンをキャプチャします。
+ `OLD_IMAGE` – ミューテーションの前に行のバージョンをキャプチャします。
+ `KEYS_ONLY` – 変更された行のパーティションキーとクラスタリングキーをキャプチャします。

すべての CDC ストリームはレコードで構成されます。各レコードは、Amazon Keyspaces テーブルの 1 行の変更を表します。レコードは*、シャードと呼ばれるグループに論理的に整理されます*。これらのグループは、プライマリキーの範囲 (パーティションキーとクラスタリングキーの範囲の組み合わせ) によって論理的に整理され、Amazon Keyspaces の内部構造です。各シャードは複数のレコードのコンテナとして機能し、これらのレコードにアクセスして反復するために必要な情報が含まれています。

![\[Amazon Keyspaces CDC ストリームは、行ミューテーションの集合の CDC レコードを表すシャードで構成されます。\]](http://docs.aws.amazon.com/ja_jp/keyspaces/latest/devguide/images/keyspaces_cdc.png)


各 CDC レコードには、シャード内でレコードが発行された順序を反映したシーケンス番号が割り当てられます。シーケンス番号は、各シャード内で増加し、一意であることが保証されます。

Amazon Keyspaces はシャードを自動的に作成および削除します。トラフィックの負荷に基づいて、Amazon Keyspaces は時間の経過とともにシャードを分割またはマージすることもできます。例えば、Amazon Keyspaces は 1 つのシャードを複数の新しいシャードに分割したり、シャードを新しい 1 つのシャードにマージしたりできます。Amazon Keyspaces APIsシャードと CDC ストリーム情報を公開し、シャードの系統グラフ全体にアクセスして、消費するアプリケーションが正しい順序でレコードを処理できるようにします。

Amazon Keyspaces CDC は、アプリケーションを構築するときに信頼できる以下の原則に基づいています。
+ 各行レベルのミューテーションレコードは、CDC ストリームに 1 回だけ表示されます。
+ シャードを系統順に使用すると、各行レベルのミューテーションレコードは、プライマリキーの実際のミューテーション順序と同じ順序で表示されます。

**Topics**
+ [データ保持](#CDC_how-it-works-data-retention)
+ [TTL データの有効期限](#CDC_how-it-works-ttl)
+ [バッチオペレーション](#CDC_how-it-works-batch-operations)
+ [静的列](#CDC_how-it-works-static)
+ [保管中の暗号化](#CDC_how-it-works-encryption)
+ [マルチリージョンレプリケーション](#CDC_how-it-works-mrr)
+ [AWS サービスとの統合](#howitworks_integration)

## Amazon Keyspaces の CDC ストリームのデータ保持の仕組み
<a name="CDC_how-it-works-data-retention"></a>

Amazon Keyspaces は、CDC ストリームのレコードを 24 時間保持します。保持期間を変更することはできません。テーブルで CDC を無効にすると、ストリーム内のデータは 24 時間読み取られます。この時間が経過すると、データの有効期限が切れ、レコードは自動的に削除されます。

## Amazon Keyspaces の CDC ストリームで有効期限 (TTL) データの有効期限がどのように機能するか
<a name="CDC_how-it-works-ttl"></a>

Amazon Keyspaces は、CDC 変更レコード`expirationTime`の というメタデータフィールドで、列/セルレベルでの有効期限と行レベルを表示します。Amazon Keyspaces TTL がセルの有効期限を検出すると、CDC は TTL を変更のオリジンとして表示する新しい変更レコードを作成します。TTL の詳細については、「[Amazon Keyspaces (Apache Cassandra 向け) で有効期限 (TTL) を使用してデータを期限切れにする](TTL.md)」を参照してください。

## Amazon Keyspaces での CDC ストリームのバッチオペレーションの仕組み
<a name="CDC_how-it-works-batch-operations"></a>

バッチオペレーションは、内部的に個々の行レベルの変更に分割されます。Amazon Keyspaces は、変更がバッチオペレーションで発生した場合でも、CDC ストリーム内のすべてのレコードを行レベルで保持します。Amazon Keyspaces は、CDC ストリーム内のレコードの順序を、行レベルまたはプライマリキーで発生したミューテーション順序と同じ順序で維持します。

## Amazon Keyspaces の CDC ストリームでの静的列の仕組み
<a name="CDC_how-it-works-static"></a>

静的列値は、Cassandra のパーティション内のすべての行間で共有されます。この動作により、Amazon Keyspaces は静的列への更新を CDC ストリーム内の別のレコードとしてキャプチャします。次の例は、静的列ミューテーションの動作をまとめたものです。
+ 静的列のみが更新されると、CDC ストリームには、静的列の行変更が行内の唯一の列として含まれます。
+ 静的列を変更せずに行が更新されると、CDC ストリームには静的列を除くすべての列を含む行変更が含まれます。
+ 行が静的列とともに更新されると、CDC ストリームには 2 つの個別の行変更が含まれます。1 つは静的列用、もう 1 つは残りの行用です。

## Amazon Keyspaces の CDC ストリームの保管時の暗号化の仕組み
<a name="CDC_how-it-works-encryption"></a>

CDC 順序付きログに保管中のデータを暗号化するために、Amazon Keyspaces はテーブルに既に使用されているのと同じ暗号化キーを使用します。保管時の暗号化の詳細については、「[Amazon Keyspaces の保管データ暗号化](EncryptionAtRest.md)」を参照してください。

## Amazon Keyspaces の CDC ストリームでのマルチリージョンレプリケーションの仕組み
<a name="CDC_how-it-works-mrr"></a>

`update-table` API または CQL コマンドを使用して、マルチリージョンテーブルの個々のレプリカの CDC `ALTER TABLE` ストリームを有効または無効にできます。非同期レプリケーションと競合の解決により、マルチリージョンテーブルの CDC ストリームは全体で一貫性がありません AWS リージョン。したがって、Amazon Keyspaces がストリームでキャプチャするレコードは、異なるリージョンで異なる順序で表示される可能性があります。

マルチリージョンレプリケーションの詳細については、「」を参照してください[Amazon Keyspaces のマルチリージョンレプリケーション (Apache Cassandra 用）](multiRegion-replication.md)。

## CDC ストリームと AWS サービスとの統合
<a name="howitworks_integration"></a>

### Amazon Keyspaces で CDC ストリームの VPC エンドポイントを操作する方法
<a name="CDC_how-it-works-vpc"></a>

VPC エンドポイントを使用して Amazon Keyspaces CDC ストリームにアクセスできます。ストリームの VPC エンドポイントを作成してアクセスする方法については、「」を参照してください[インターフェイス VPC エンドポイントでの Amazon Keyspaces CDC ストリームの使用](vpc-endpoints-streams.md)。

### Amazon Keyspaces の CDC ストリームに対する CloudWatch によるモニタリングの仕組み
<a name="CDC_how-it-works-monitoring"></a>

Amazon CloudWatch を使用して、Amazon Keyspaces CDC エンドポイントに対して行われた API コールをモニタリングできます。使用可能なメトリクスの詳細については、「」を参照してください[Amazon Keyspaces 変更データキャプチャ (CDC) のメトリクス](metrics-dimensions.md#keyspaces-cdc-metrics)。

### Amazon Keyspaces の CDC ストリームでの CloudTrail を使用したログ記録の仕組み
<a name="CDC_how-it-works-logging"></a>

Amazon Keyspaces CDC は AWS CloudTrail、Amazon Keyspaces のユーザー、ロール、または のサービスによって実行されたアクションを記録する AWS サービスである と統合されています。CloudTrail では Amazon Keyspaces のデータ定義言語 (DDL) API コールとデータ操作言語 (DML) API コールがイベントとしてキャプチャされます。キャプチャされたコールには、Amazon Keyspaces コンソールからのコールと、Amazon Keyspaces API オペレーションへのプログラムによるコールが含まれます。

CloudTrail でキャプチャされた CDC イベントの詳細については、「」を参照してください[を使用した Amazon Keyspaces API コールのログ記録 AWS CloudTrail](logging-using-cloudtrail.md)。

### Amazon Keyspaces の CDC ストリームでのタグ付けの仕組み
<a name="CDC_how-it-works-tagging"></a>

Amazon Keyspaces CDC ストリームはタグ付け可能なリソースです。CQL、 AWS SDK、または を使用してプログラムでテーブルを作成するときに、ストリームにタグを付けることができます AWS CLI。既存のストリームにタグ付けしたり、タグを削除したり、ストリームのタグを表示したりすることもできます。詳細については、「[Amazon Keyspaces のキースペース、テーブル、ストリームにタグを付ける](Tagging.Operations.md)」を参照してください。