Apache Kafkaを使用したOCIStreamingへの接続

OCI GoldenGateソースまたはターゲットを使用するための、Apache Kafkaを使用したOCIストリーミングへの接続の作成について学習します。

開始する前に

接続を作成する前に、次のことを確認します。

Apache Kafka接続によるソースOCIストリーミングの作成

Apache Kafka接続でソースOCIストリーミングを作成するには:
  1. OCI GoldenGateの「概要」ページで、「接続」をクリックします。
    「はじめに」セクションの「接続の作成」をクリックして、ステップ3にスキップすることもできます。
  2. 「接続」ページで、「接続の作成」をクリックします。
  3. 「接続の作成」ページで、次のようにフィールドに入力します。
    1. 「名前」に、接続の名前を入力します。
    2. (オプション)「説明」に、この接続を他の接続から区別するのに役立つ説明を入力します。
    3. (マルチクラウドのGoldenGateの場合のみ)「サブスクリプション」を選択し、次のフィールドに入力します。
      1. 「コンパートメント」ドロップダウンで、「リソース・アンカー」が存在するコンパートメントを選択します。
      2. 「マルチクラウド・パートナ・リージョン」を選択します。
      3. 「パートナ可用性ゾーン」を選択します。使用可能なオプションは、選択したマルチクラウド・パートナ・リージョンに基づいて移入されます。
    4. 「コンパートメント」で、接続を作成するコンパートメントを選択します。
    5. 「タイプ」で、ドロップダウンから「Apache Kafkaを使用したOCIストリーミング」を選択します。
    6. ブートストラップ・サーバーの場合:
      1. ブートストラップ・サーバーのホストおよびポート番号を入力します。プライベートIPは、ホスト名をサブネットから解決できない場合、またはSSL/TLSを使用する場合にのみ入力します。
        ノート

        プライベートIPを入力すると、OCI GoldenGateによって、プライベートIPがip-10-0-0-0.ociggsvc.oracle.vcn.comの形式でリライトされます。

        ヒント:

        プライベート・エンドポイントを介したトラバースを許可するには、クラスタ内のすべてのノードにFQDNが必要です。
      2. (オプション)別のブートストラップ・サーバーを追加するには、「+ ブートストラップ・サーバー」をクリックします。
    7. セキュリティ・プロトコルの場合は、次のいずれかを選択します。
      • プレーンテキスト
      • SASL over plaintext
      • SASL over SSL
      • SSL

      これらのオプションの詳細は、クラスタ・セキュリティの管理を参照してください。

  4. 「詳細オプションの表示」を展開します。次のオプションを構成できます。
    • セキュリティ
      • この接続にパスワード・シークレットを使用しない場合は、「ボールト・シークレットの使用」の選択を解除します。選択されていない場合は、次のようになります。
        • 「Oracle管理暗号化キーの使用」を選択して、すべての暗号化キー管理をOracleに残します。
        • 「顧客管理暗号化キーの使用」を選択して、OCI Vaultに格納されている特定の暗号化キーを選択し、接続資格証明を暗号化します。
    • ネットワーク接続
      • 共有エンドポイント: エンドポイントを割り当てられたデプロイメントと共有します。デプロイメントのイングレスIPからの接続を許可する必要があります。
      • 専用エンドポイント: VCN内の割り当てられたサブネットの専用エンドポイントを介したネットワーク・トラフィック用。この接続のイングレスIPからの接続を許可する必要があります。
        ノート

        • 専用接続が7日間未割当てのままの場合、サービスはそれを共有接続に変換します。
        • Oracle GoldenGate接続についてさらに学習します。
    • 設定
      • JSONデシリアライザのKafkaコンシューマ・プロパティ:
        key.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer
        value.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer
      • JSONコンバータのKafkaコンシューマ・プロパティ:
        key.converter=org.apache.kafka.connect.json.JsonConverter
        value.converter=org.apache.kafka.connect.json.JsonConverter
      • AvroコンバータのKafkaコンシューマ・プロパティ:
        key.converter=io.confluent.connect.avro.AvroConverter
        value.converter=io.confluent.connect.avro.AvroConverter
    • セキュリティ属性: Zero Trust Packet Routing (ZPR)を使用して、この接続へのアクセスを制御するセキュリティ属性を追加します。
    • タグ: リソースを編成するタグを追加します。
  5. 「作成」をクリックします。

接続が作成されると、「接続」リストに表示されます。接続をデプロイメントに割り当てて、レプリケーションのソースまたはターゲットとして使用するように接続を割り当てることを確認してください。

Apache Kafka接続によるターゲットOCIストリーミングの作成

Apache Kafka接続でターゲットOCIストリーミングを作成するには:
  1. OCI GoldenGateの「概要」ページで、「接続」をクリックします。
    「はじめに」セクションの「接続の作成」をクリックして、ステップ3にスキップすることもできます。
  2. 「接続」ページで、「接続の作成」をクリックします。
  3. 「接続の作成」ページで、次のようにフィールドに入力します。
    1. 「名前」に、接続の名前を入力します。
    2. (オプション)「説明」に、この接続を他の接続から区別するのに役立つ説明を入力します。
    3. (マルチクラウドのGoldenGateの場合のみ)「サブスクリプション」を選択し、次のフィールドに入力します。
      1. 「コンパートメント」ドロップダウンで、「リソース・アンカー」が存在するコンパートメントを選択します。
      2. 「マルチクラウド・パートナ・リージョン」を選択します。
      3. 「パートナ可用性ゾーン」を選択します。使用可能なオプションは、選択したマルチクラウド・パートナ・リージョンに基づいて移入されます。
    4. 「コンパートメント」で、接続を作成するコンパートメントを選択します。
    5. 「タイプ」で、ドロップダウンから「Apache Kafkaを使用したOCIストリーミング」を選択します。
    6. ブートストラップ・サーバーの場合:
      1. ブートストラップ・サーバーのホストおよびポート番号を入力します。プライベートIPは、ホスト名をサブネットから解決できない場合、またはSSL/TLSを使用する場合にのみ入力します。
        ノート

        プライベートIPを入力すると、OCI GoldenGateによって、プライベートIPがip-10-0-0-0.ociggsvc.oracle.vcn.comの形式でリライトされます。

        ヒント:

        プライベート・エンドポイントを介したトラバースを許可するには、クラスタ内のすべてのノードにFQDNが必要です。
      2. (オプション)別のブートストラップ・サーバーを追加するには、「+ ブートストラップ・サーバー」をクリックします。
    7. セキュリティ・プロトコルの場合は、次のいずれかを選択します。
      • プレーンテキスト
      • SASL over plaintext
      • SASL over SSL
      • SSL

      これらのオプションの詳細は、クラスタ・セキュリティの管理を参照してください。

  4. 「詳細オプションの表示」を展開します。次のオプションを構成できます。
    • セキュリティ
      • この接続にパスワード・シークレットを使用しない場合は、「ボールト・シークレットの使用」の選択を解除します。選択されていない場合は、次のようになります。
        • 「Oracle管理暗号化キーの使用」を選択して、すべての暗号化キー管理をOracleに残します。
        • 「顧客管理暗号化キーの使用」を選択して、OCI Vaultに格納されている特定の暗号化キーを選択し、接続資格証明を暗号化します。
    • ネットワーク接続
      • 共有エンドポイント: エンドポイントを割り当てられたデプロイメントと共有します。デプロイメントのイングレスIPからの接続を許可する必要があります。
      • 専用エンドポイント: VCN内の割り当てられたサブネットの専用エンドポイントを介したネットワーク・トラフィック用。この接続のイングレスIPからの接続を許可する必要があります。
        ノート

        • 専用接続が7日間未割当てのままの場合、サービスはそれを共有接続に変換します。
        • Oracle GoldenGate接続についてさらに学習します。
    • 設定: KafkaレプリケーションでSnappy圧縮を使用するには、「プロデューサ・プロパティ」をドラッグ・アンド・ドロップするか選択し、「圧縮OCI GoldenGate (Confluent) Kafkaレプリケーションの使用」の説明に従ってレプリケーション設定を変更します。
    • セキュリティ属性: Zero Trust Packet Routing (ZPR)を使用して、この接続へのアクセスを制御するセキュリティ属性を追加します。
    • タグ: リソースを編成するタグを追加します。
  5. 「作成」をクリックします。

接続が作成されると、「接続」リストに表示されます。接続をデプロイメントに割り当てて、レプリケーションのソースまたはターゲットとして使用するように接続を割り当てることを確認してください。

Kafka接続エラーのトラブルシューティング

ほとんどの接続の問題では、TimeoutExceptionエラーが発生します。例:

A failure occurred sending a message to Kafka to topic [ggstest] org.apache.kafka.common.errors.TimeoutException: Topic ggstest not  present in metadata after 60000/120000 ms.

Replicatレポート・ファイルでこのメッセージが表示される場合、次のことができます。

  • ターゲット・トピックが存在するか、ターゲットKafka設定内で自動トピック作成が有効になっていることを確認します。
  • トラフィックをブロックするファイアウォール・ルールがないことを確認します。
  • プライベート・エンドポイントを使用してOCIでKafkaを実行している場合は、内部FQDNをserver.propertiesおよびKafka接続でブートストラップ・サーバーとして使用してください。
  • プライベート・エンドポイントを使用してConfluent Cloudに接続する場合:
    • DNSゾーンおよびDNSレコードがOCIとターゲット・サード・パーティ・クラウドの両方で正しく構成されていることを確認します。
    • OCIとターゲット・クラウド間のネットワーク接続が適切に機能することを確認します。
    • サード・パーティ・クラウドに接続された同じサブネットで実行されているOCI VMから、OpenSSL (openssl s_client -connect <bootstrap>)を使用してターゲットConfluent Cloudに接続できることをテストします。
    • サード・パーティ・クラウドに接続されている同じサブネット内で、OCIで実行されているKafkaクライアントからメッセージを公開または消費できることをテストします。失敗した場合は、OCIとサード・パーティ・クラウドの両方でネットワーク設定を確認します。