

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

# MSK Replicator を使用したアクティブ/アクティブ設定の作成
<a name="msk-replicator-active-active"></a>

両方の MSK クラスターが読み込みと書き込みをアクティブに処理するアクティブ/アクティブ設定を作成する場合は、プレフィックス付きトピック名レプリケーション (コンソールで**トピック名にプレフィックスを追加**) が設定された MSK レプリケーターを使用することをお勧めします。ただし、レプリケートされたトピックを読み込むようにコンシューマーを再設定する必要があります。

次のステップを実行して、ソース MSK クラスター A とターゲット MSK クラスター B の間にアクティブ/アクティブトポロジを設定します。

1. MSK クラスター A をソース、MSK クラスター B をターゲットとして MSK レプリケーターを作成します。

1. 上記の MSK レプリケーターが正常に作成されたら、クラスター B をソース、クラスター A をターゲットとしてレプリケーターを作成します。

1. 2 組のプロデューサーを作成し、それぞれがプロデューサーと同じリージョン内のクラスターのローカルトピック (「topic」など) に同時にデータを書き込みます。

1. コンシューマーのセットを 2 つ作成します。各コンシューマーは、コンシューマーと同じ AWS リージョンの MSK クラスターからワイルドカードサブスクリプション (「.\$1topic」など) を使用してデータを読み込みます。これにより、コンシューマーはローカルトピック (`topic` など) からリージョン内でローカルに生成されたデータを自動的に読み取るだけでなく、他のリージョンからレプリケートされたデータ (トピック内でプレフィックス `<sourceKafkaClusterAlias>.topic` が付いているトピック) も自動的に読み取ります。これら 2 組のコンシューマーは、異なるコンシューマーグループ ID を持つ必要があります。これにより、MSK レプリケーターがコンシューマーグループのオフセットを他のクラスターにコピーしたときに、それらのオフセットが上書きされなくなります。

クライアントの再設定を避けたい場合は、プレフィックス付きトピック名レプリケーション (コンソールで**トピック名にプレフィックスを追加**) の代わりに、同一トピック名レプリケーション (コンソールで**同じトピック名を保持**) を使用して MSK レプリケーターを作成し、アクティブ/アクティブ設定を作成してください。ただし、レプリケーターごとに追加のデータ処理および転送料金が発生します。これは、各レプリケーターが通常の 2 倍のデータ量 (レプリケーションのために 1 回、無限ループを防ぐために 1 回) を処理する必要があるためです。`ReplicatorBytesInPerSec` メトリクスを使用して、各レプリケーターによって処理されるデータの合計量を追跡できます。「[レプリケーションのモニタリング](msk-replicator-monitor.md)」を参照してください。このメトリクスには、ターゲットクラスターにレプリケートされたデータと、データが元のトピックと同じトピックにコピーされないように MSK Replicator によってフィルタリングされたデータが含まれます。

**注記**  
同一トピック名レプリケーション (コンソールで**同じトピック名を保持**) を使用してアクティブ/アクティブトポロジを設定している場合は、トピックを削除した後に少なくとも 30 秒待ってから、同じ名前のトピックを再作成します。この待機期間は、重複したメッセージがソースクラスターにレプリケートされるのを防ぐのに役立ちます。コンシューマーは、ダウンストリームに影響を与えることなく、重複したメッセージを再処理できる必要があります。「[マルチリージョン Apache Kafka アプリケーションを構築する際の考慮事項](msk-replicator-increase-resiliency.md#msk-replication-multi-region-kafka-applications)」を参照してください。