を使用してオンプレミスの Apache Kafka クラスターを Amazon MSK に移行する MirrorMaker - AWS 規範ガイダンス

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

を使用してオンプレミスの Apache Kafka クラスターを Amazon MSK に移行する MirrorMaker

ハン・チャン (AWS) とタナー・プラット(AWS)によって作成されました

環境:PoC またはパイロット

ソース:オンプレミスまたはセルフマネージド Apache Kafka クラスター

ターゲット:Amazon Managed Streaming for Apache Kafka (Amazon MSK)

Rタイプ:リプラットフォーム

ワークロード:その他すべてのワークロード、オープンソース

テクノロジー:分析、ビッグデータ、移行

AWS サービス: Amazon MSK

[概要]

このパターンは、オンプレミス、セルフマネージド、またはホスト型の Apache Kafka クラスターを、Amazon Managed Streaming for Apache Kafka (Amazon MSK) に移行するガイダンスを提供します。このパターンを使用して、ある Amazon MSK クラスターから別の Amazon MSK クラスターに移行することもできます。

Apache Kafka には、2 つの Kafka クラスター間でデータをレプリケートする MirrorMaker 機能が含まれています。 MirrorMaker コンシューマーグループ の一部であるコンシューマー のコレクションで構成されています。 コンシューマーはソースクラスターのトピックからデータを読み取り、そのデータをプロデューサーに渡し、プロデューサーはデータをターゲットクラスターに書き込みます。

Amazon MSK ドキュメントには、 MirrorMaker バージョン 1.0 を使用してオンプレミスの Kafka クラスターを Amazon MSK に移行するプロセスの概要が記載されています。このパターンは、 MirrorMaker バージョン 2.0 を使用するための包括的な step-by-step 指示を提供することで、この情報を補完します。

前提条件と制限

前提条件

  • アクティブなAWS アカウント

  • 以下のいずれかのKafka ソースクラスター:

    • オンプレミスのデータセンターで

    • クラウドで管理されます

    • パートナーを通じてホストされています

制約事項

  • MirrorMaker バージョン 2.0 を使用するには、ソースクラスターが Apache Kafka バージョン 2.4.0 以降を実行している必要があります。以前のバージョンについては、Amazon MSK ドキュメントの手順を参照して、 MirrorMaker バージョン 1.0 を使用してください。

製品バージョン

アーキテクチャ

ソーステクノロジースタック

  • ソース:オンプレミスまたはセルフマネージド Apache Kafka クラスター

ターゲットテクノロジースタック

  • Amazon MSK クラスター

ターゲット アーキテクチャ

MirrorMaker はソースクラスター上のデータを読み取り、ターゲット Amazon MSK クラスターにレプリケートします。

図表に示す内容は以下のステップです。

  1. MirrorMaker は、ソース Kafka クラスター内のトピックとコンシューマーグループからデータを読み取ります。

  2. MirrorMaker は、データとコンシューマー情報をターゲット Amazon MSK クラスターにレプリケートします。

ツール

サービス

  • Amazon Elastic Compute Cloud (Amazon EC2)」は、AWS クラウドでスケーラブルなコンピューティング容量を提供します。必要な数の仮想サーバーを起動することができ、迅速にスケールアップまたはスケールダウンができます。

  • Amazon Managed Streaming for Apache Kafka (Amazon MSK)」 は、Apache Kafka を使ってストリーミングデータを処理するアプリケーションを、構築および実行することを支援するフルマネージドサービスです。

  • Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワーク内でリソースを起動できます。この仮想ネットワークは、お客様自身のデータセンターで運用されていた従来のネットワークに似ていますが、AWS のスケーラブルなインフラストラクチャを使用できるというメリットがあります。

その他のツール

  • Apache Kafka」 は、オープンソースのイベントストリーミングプラットフォームです。このパターンでは、Kafka MirrorMakerの機能を使用してクラスター間移行を実行します。

ベストプラクティス

ソース環境またはターゲット環境のいずれかで MirrorMaker を実行できますが、ターゲットクラスターにできるだけ近い場所で実行することをお勧めします。詳細については、Apache Kafka ドキュメントの「ベストプラクティス:リモートからコンシューマを使用し、ローカルに生成する」 を参照してください。

エピック

タスク説明必要なスキル

VPC を作成します。

  1. ターゲット AWS アカウントに新しい VPC とサブネットグループを作成します。手順については、Create a role を参照してください。

  2. これらは、同じ VPC 内の 2 つの異なるアベイラビリティーゾーンにあるプライベートサブネットである必要があります。手順については、Create a role を参照してください。異なるアベイラビリティーゾーンを使用すると、高い可用性と耐障害性が実現します。

    注:パブリックインターネット接続を使用して Kafka クラスターを移行する場合は、パブリックサブネットを作成し、Amazon MSK 「クラスターへのパブリックアクセス」 を有効にします。

AWS システム管理者、 DevOps エンジニア、クラウド管理者

Amazon MSK クラスターを作成します。

Amazon ECS クラスターを作成します。手順については、「AWS マネジメントコンソールを使用してクラスターを作成する」 または 「AWS CLI を使用してクラスターを作成する」 を参照してください。以前に作成した VPC とサブネットを使用するようにクラスターを設定します。

AWS システム管理者、 DevOps エンジニア、クラウド管理者
タスク説明必要なスキル

をインストールします MirrorMaker。

  1. EC2 インスタンスを起動します。

  2. EC2 インスタンスに接続します。

  3. EC2 インスタンスで、最新の Kafka リリースをダウンロードして抽出します。手順については、 ドキュメントの「クイックスタート」を参照してください。

: このパターンでは、Amazon EC2 MirrorMaker2 インスタンスに 2.0 を専用 MirrorMaker クラスターとしてインストールします。このオプションは開発環境には適しており、このパターンで使用されているアプローチでもあります。 MirrorMaker2.0 の他のデプロイオプションの詳細については、このパターンの「追加情報」セクションを参照してください。

AWS システム管理者、クラウド管理者、 DevOps エンジニア

Kafka クラスター情報を指定します。

Kafka bin クライアントのインストールフォルダーに mm2.properties ファイルを作成し、ソース Kafka クラスター用に設定します。手順については、「専用 MirrorMaker クラスターの実行」(Kafka ドキュメント) を参照してください。

AWS システム管理者、クラウド管理者、 DevOps エンジニア

を起動します MirrorMaker。

mm2.properties ファイルを起動 MirrorMaker して渡すには、次のコマンドを入力します。

$ ./bin/connect-mirror-maker.sh mm2.properties
AWS システム管理者、クラウド管理者、 DevOps エンジニア

進行状況をモニタリングする

各トピックの最後のオフセットとトピックの現在のオフセット MirrorMaker が消費している間の遅延を調べて、進行状況を確認します。手順については、Kafka ドキュメントの「ジオレプリケーションの監視」 を参照してください。

AWS システム管理者、クラウド管理者、 DevOps エンジニア
タスク説明必要なスキル

コンシューマアプリケーションを停止します。

ソースクラスターのデータを消費するコンシューマーアプリケーションをすべて停止します。

アプリ開発者

コンシューマアプリケーションを停止します。

アプリケーションのブートストラップ構成を、デスティネーションクラスターを指すように変更します。次に、ターゲットクラスターでコンシューマを開始します。

アプリ開発者

ソースクラスターですべての ETL プロセスを停止します。

コンシューマーアプリケーションがターゲットクラスターで正常に消費できるようになったら、ソースクラスターのプロデューサーを停止します。

アプリ開発者

ターゲットクラスターでプロデューサーを起動します。

プロデューサーの設定ブートストラップサーバーを変更し、ターゲットクラスターを指定します。プロデューサーを開始する前に MirrorMaker 、 がソースクラスターからのすべてのデータのミラーリングを完了するまで待ちます。

アプリ開発者

を停止します MirrorMaker。

プロデューサーがターゲットクラスターに移動したら、 を停止します MirrorMaker。

AWS システム管理者、クラウド管理者、 DevOps エンジニア

関連リソース

AWS リソース

その他のリソース

追加情報

このパターンは、Amazon EC2 MirrorMaker 2 の専用 MirrorMaker クラスター として 2.0 を実行します。このアカウントの SSH 開発環境 このパターンでは説明されていませんが、Kafka Connect クラスターで MirrorMaker 2.0 を実行することもできます。このデプロイオプションでは、スケーリングとメンテナンスを改善する Kafka エコシステム内のフレームワークを使用します。アプリケーションを実行するための関連する設定を含む Kafka Connect クラスターにコネクターをデプロイします。コネクタは、開発やテストではスタンドアロンモードで、本番環境では分散モードで実行できます。詳細については、「Connect クラスター MirrorMaker での実行」(Apache Kafka ドキュメント) を参照してください。他の MirrorMaker 2.0 デプロイオプションの詳細については、「チュートリアル: MirrorMaker 2.0 の実行」(Kafka ドキュメント) を参照してください。