Apache Kafka를 사용하여 OCI Streaming에 연결

OCI GoldenGate 소스 또는 대상을 사용하기 위해 Apache Kafka를 사용한 OCI Streaming에 대한 연결을 생성하는 방법을 알아봅니다.

시작하기 전에

연결을 생성하기 전에 다음 사항을 확인하십시오.
  • OCI GoldenGate가 소스 및 대상에 연결하는 방법을 검토합니다.

  • 암호 사용, 저장소 사용 및 암호 번들 읽기와 같은 보안 저장소 및 암호 액세스를 사용으로 설정하는 데 필요한 정책을 구성합니다. 자세한 내용은 최소 권장 정책을 참조하십시오.

  • TLS/mTLS를 사용하는 경우 접속에 사용할 JKS 보안 저장소 또는 보안 저장소 및 키 저장소를 PKCS12 형식으로 변환합니다.
    1. JDK의 keytool 유틸리티를 사용하여 PKCS12 형식으로 변환합니다.

      키 저장소의 경우 다음 예에 표시된 것처럼 keytool 유틸리티에서 암호를 입력하라는 메시지를 표시합니다.
      keytool -importkeystore -srckeystore [MY_KEYSTORE.jks] -destkeystore [MY_KEYSTORE.p12] -srcstoretype JKS -deststoretype PKCS12 -deststorepass [PASSWORD_PKCS12]
      보안 저장소의 경우 다음 예에 표시된 것처럼 keytool 유틸리티가 암호를 묻는 메시지를 표시합니다.
      keytool -importkeystore -srckeystore [MY_TRUSTSTORE.jks] -destkeystore [MY_TRUSTSTORE.p12] -srcstoretype JKS -deststoretype PKCS12 -deststorepass [PASSWORD_PKCS12]
    2. 키 저장소 및 보안 저장소를 변환한 후 Kafka 생산자 속성 파일에 다음 행을 추가한 다음 변경사항을 저장합니다.
      ssl.truststore.type=PKCS12
      ssl.keystore.type=PKCS12
    3. 고급 옵션설정 섹션에서 접속의 생산자 속성으로 파일을 업로드합니다.

소스 Apache Kafka를 사용한 OCI Streaming 연결 생성

소스 Apache Kafka를 사용하여 OCI Streaming 연결을 생성하려면 다음을 수행합니다.
  1. OCI GoldenGate 개요 페이지에서 연결을 누릅니다.
    시작하기 섹션에서 접속 생성을 누르고 3단계로 건너뛸 수도 있습니다.
  2. 접속 페이지에서 접속 생성을 누릅니다.
  3. Create Connection 페이지에서 다음과 같이 필드에 정보를 입력합니다.
    1. 이름에 대해 연결 이름을 입력합니다.
    2. (선택 사항) 설명에 대해 이 연결을 다른 연결과 구별하는 데 도움이 되는 설명을 입력합니다.
    3. (멀티클라우드의 GoldenGate에만 해당) 구독을 선택한 후 다음 필드에 정보를 입력합니다.
      1. 구획 드롭다운에서 리소스 앵커가 상주하는 컴파트먼트를 선택합니다.
      2. 멀티클라우드 파트너 지역을 선택합니다.
      3. 파트너 가용성 영역을 선택합니다. 사용 가능한 옵션은 선택한 멀티클라우드 파트너 영역을 기반으로 채워집니다.
    4. 구획의 경우 접속을 생성할 구획을 선택합니다.
    5. 유형의 경우 드롭다운에서 Apache Kafka를 사용한 OCI Streaming을 선택합니다.
    6. 부트스트랩 서버의 경우:
      1. 부트스트랩 서버에 대한 호스트포트 번호를 입력합니다. 호스트 이름은 서브넷에서 분석할 수 없거나 SSL/TLS를 사용하는 경우에만 프라이빗 IP를 입력합니다.

        주:

        전용 IP를 입력하면 OCI GoldenGate가 전용 IP를 ip-10-0-0-0.ociggsvc.oracle.vcn.com 형식으로 다시 씁니다.

        참고:

        클러스터의 모든 노드에 FQDN이 있어야 프라이빗 끝점을 통과할 수 있습니다.
      2. (선택 사항) + 부트스트랩 서버를 눌러 다른 부트스트랩 서버를 추가합니다.
    7. 보안 프로토콜의 경우 다음 중 하나를 선택합니다.
      • 일반 텍스트
      • 일반 텍스트를 통한 SASL
      • SSL을 통한 SASL
      • SSL

      이러한 옵션에 대한 자세한 내용은 클러스터 보안 관리를 참조하십시오.

  4. 고급 옵션을 표시합니다. 다음과 같은 옵션을 구성할 수 있습니다.
    • 보안
      • 이 접속에 비밀번호 암호를 사용하지 않으려는 저장소 암호 사용의 선택을 해제합니다. 선택되지 않은 경우:
        • 모든 암호화 키 관리를 Oracle에 그대로 두려면 Oracle 관리 암호화 키 사용을 선택합니다.
        • 고객 관리 암호화 키 사용을 선택하여 OCI 저장소에 저장된 특정 암호화 키를 선택하여 접속 인증서를 암호화합니다.
    • 네트워크 접속
      • 공유 끝점 - 지정된 배치와 끝점을 공유합니다. 배포의 수신 IP에서 연결을 허용해야 합니다.
      • 전용 엔드포인트 - VCN의 지정된 서브넷에 있는 전용 엔드포인트를 통한 네트워크 트래픽용입니다. 이 접속의 수신 IP에서 접속을 허용해야 합니다.

        주:

        • 전용 연결이 7일 동안 할당되지 않은 상태로 유지되면 서비스가 해당 연결을 공유 연결로 변환합니다.
        • Oracle GoldenGate 연결에 대해 자세히 알아보십시오.
    • 설정
      • Extract에 이 접속을 사용하는 경우 끌어 놓거나 소비자 또는 생산자 속성 파일(.properties)을 선택합니다.
      • Kafka에서 캡처하려면 다음 deserializers 또는 변환기 중 하나를 사용하여 Kafka Consumer 속성 파일(.properties)을 생성합니다.
        • JSON deserializer에 대한 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 Streaming 연결 생성

대상 Apache Kafka를 사용한 OCI Streaming 연결을 생성하려면 다음을 수행합니다.
  1. OCI GoldenGate 개요 페이지에서 연결을 누릅니다.
    시작하기 섹션에서 접속 생성을 누르고 3단계로 건너뛸 수도 있습니다.
  2. 접속 페이지에서 접속 생성을 누릅니다.
  3. Create Connection 페이지에서 다음과 같이 필드에 정보를 입력합니다.
    1. 이름에 대해 연결 이름을 입력합니다.
    2. (선택 사항) 설명에 대해 이 연결을 다른 연결과 구별하는 데 도움이 되는 설명을 입력합니다.
    3. (멀티클라우드의 GoldenGate에만 해당) 구독을 선택한 후 다음 필드에 정보를 입력합니다.
      1. 구획 드롭다운에서 리소스 앵커가 상주하는 컴파트먼트를 선택합니다.
      2. 멀티클라우드 파트너 지역을 선택합니다.
      3. 파트너 가용성 영역을 선택합니다. 사용 가능한 옵션은 선택한 멀티클라우드 파트너 영역을 기반으로 채워집니다.
    4. 구획의 경우 접속을 생성할 구획을 선택합니다.
    5. 유형의 경우 드롭다운에서 Apache Kafka를 사용한 OCI Streaming을 선택합니다.
    6. 부트스트랩 서버의 경우:
      1. 부트스트랩 서버에 대한 호스트포트 번호를 입력합니다. 호스트 이름은 서브넷에서 분석할 수 없거나 SSL/TLS를 사용하는 경우에만 프라이빗 IP를 입력합니다.

        주:

        전용 IP를 입력하면 OCI GoldenGate가 전용 IP를 ip-10-0-0-0.ociggsvc.oracle.vcn.com 형식으로 다시 씁니다.

        참고:

        클러스터의 모든 노드에 FQDN이 있어야 프라이빗 끝점을 통과할 수 있습니다.
      2. (선택 사항) + 부트스트랩 서버를 눌러 다른 부트스트랩 서버를 추가합니다.
    7. 보안 프로토콜의 경우 다음 중 하나를 선택합니다.
      • 일반 텍스트
      • 일반 텍스트를 통한 SASL
      • SSL을 통한 SASL
      • SSL

      이러한 옵션에 대한 자세한 내용은 클러스터 보안 관리를 참조하십시오.

  4. 고급 옵션을 표시합니다. 다음과 같은 옵션을 구성할 수 있습니다.
    • 보안
      • 이 접속에 비밀번호 암호를 사용하지 않으려는 저장소 암호 사용의 선택을 해제합니다. 선택되지 않은 경우:
        • 모든 암호화 키 관리를 Oracle에 그대로 두려면 Oracle 관리 암호화 키 사용을 선택합니다.
        • 고객 관리 암호화 키 사용을 선택하여 OCI 저장소에 저장된 특정 암호화 키를 선택하여 접속 인증서를 암호화합니다.
    • 네트워크 접속
      • 공유 끝점 - 지정된 배치와 끝점을 공유합니다. 배포의 수신 IP에서 연결을 허용해야 합니다.
      • 전용 엔드포인트 - VCN의 지정된 서브넷에 있는 전용 엔드포인트를 통한 네트워크 트래픽용입니다. 이 접속의 수신 IP에서 접속을 허용해야 합니다.

        주:

        • 전용 연결이 7일 동안 할당되지 않은 상태로 유지되면 서비스가 해당 연결을 공유 연결로 변환합니다.
        • Oracle GoldenGate 연결에 대해 자세히 알아보십시오.
    • 설정: Kafka 복제에서 Snappy 압축을 사용하려면 생산자 속성을 끌어 놓거나 선택하고 Compression OCI GoldenGate (Confluent) Kafka Replication 사용에 설명된 대로 복제 설정을 변경합니다.
    • 보안 속성: 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를 실행하는 경우 server.properties 및 Kafka 접속에서 내부 FQDN을 부트스트랩 서버로 사용하는지 확인하십시오.
  • 프라이빗 끝점을 사용하여 Confluent Cloud에 연결하는 경우:
    • DNS 영역 및 DNS 레코드가 OCI와 대상 타사 클라우드 모두에서 올바르게 구성되었는지 확인합니다.
    • OCI와 대상 클라우드 간의 네트워크 연결이 제대로 작동하는지 확인합니다.
    • 타사 클라우드에 연결된 동일한 서브넷에서 실행되는 OCI VM에서 OpenSSL(openssl s_client -connect <bootstrap>)을 사용하여 대상 Confluent Cloud에 연결할 수 있는지 테스트합니다.
    • 타사 클라우드에 연결된 동일한 서브넷 내에서 OCI에서 실행되는 Kafka 클라이언트의 메시지를 게시하거나 소비할 수 있는지 테스트합니다. 오류가 발생하면 OCI와 타사 클라우드 모두에서 네트워크 설정을 확인하십시오.