ABOUT ME

-

Total
-
  • Hyper-V 가상 linux/ubuntu, Kafka 서버 외부에서 접속하기
    컴퓨터/Kafka 2020. 12. 17. 11:54
    728x90
    반응형

    왼쪽 = 클라이언트 (메인:9093), 오른쪽 = 호스트 (Hyper-V 가상)

     

    Ubuntu 기준

    자꾸 프로세스 사용 중 오류가 뜨고, confluent를 이용하기 위해 ubuntu로 서버를 만들었다.

     

    1. Hyper-V 가상 환경 랜 설정

    외부용과 내부용을 따로 만들어서 설정했다.

    Hyper-V 관리자 - 가상 스위치 관리자에서 새로 만들기로 외부/내부용을 만들어준다.

    (IP 알아서 잡아줌)

    가상 스위치 만들기

    외부
    내부 (이름 = NAT)

     

    Hyper-V 가상 환경 네트워크 변경

    Hyper-V로 가상 환경 만드는 법은 관리자에서 새로 만들기 하고 절차만 따라 하면 금방 만들어진다.

    가상 환경의 설정으로 들어가서 네트워크 어댑터를 바꿔준다.

    (ubuntu iso를 다운로드하여서 설치)

    내부용으로 만들어둔 스위치를 선택

     

    네트워크 공유

    외부 네트워크 - 우클릭 - 공유에서 내부로 설정한 NAT으로 공유해준다.

     

    2. 가상 환경에서 Apache Kafka 설정

    server.properties - 소켓 서버 설정

     

    외부에서 클라이언트로 카프카 서버에서 접속하기 위해서는 listener 설정을 바꿔줄 필요가 있다.

     

    INTERAL과 EXTERNAL 프로토콜 설정

    PLAINTEXT = listener가 비인증, 암호화 없는 상태

    (SSL로도 할 수 있으니, 다음 프로토콜 문서 확인: @링크)

    listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
    # 상호 브로커 통신으로 PLAINTEXT를 사용한다.
    inter.broker.listener.name=INTERNAL

     

    listeners와 advertised.listeners

    listerners 설정은 가상 환경 localhost 포트 9092와 0.0.0.0 포트 9093으로 설정

    (advertised.listeners은 말 그대로 외부에서 어떤 주소로 접속할 수 있는지 알려주는 설정)

    listeners=INTERNAL://localhost:9092,EXTERNAL://0.0.0.0:9093
    advertised.listeners=INTERNAL://localhost:9092,EXTERNAL://외부접속IP:9093

     

    이 글에선 Hyper-V 내부 IP로 외부에서 접속할 것이기 때문에, 외부 접속 IP에 아래 IP를 확인 후 적어준다.

    (192.168.137.232)

     

    9093 포트 열기

    sudo iptables -I INPUT 1 -p tcp --dport 9093 -j ACCEPT

     

    3. 결과

    왼쪽 = 메인 (윈도우10), 오른쪽 = 가상환경 (우분투 21)

    Config.VM_SERVER에 열어둔 ip:포트 입력 후, Hello라는 값이 잘 전달됐다.

     

    참고

    Cloud Dataflow를 사용하여 Kafka의 외부 호스팅 메시지 처리 @구글

    개인 Apache Kafka 공부 (Java, Python) @Github

    728x90

    댓글