터널링을 이용한 Web UI 접속
  • PDF

터널링을 이용한 Web UI 접속

  • PDF

VPC 환경에서 이용 가능합니다.

기본적으로 클러스터 생성 시 입력한 클러스터 관리자 계정 및 패스워드를 통해 Ambari Web UI에 접속할 수 있습니다. 그렇지만 HDFS NameNode UI 등 아래의 Web UI는 SSH 터널링을 통해서만 접속할 수 있습니다.

  • HDFS NameNode UI
  • YARN Resource Manager UI
  • Spark JobHistory UI
  • Oozie web UI
  • HBase Master UI

사전 작업

SSH 터널링 연결을 하기 위해서는 다음과 같은 사전 작업이 필요합니다.

항목 설명 가이드
ACG 설정 해당 클러스터의 ACG 설정에 접속하려는 장비의 IP 및 22번 포트 추가
  • 접근 소스: 사용자의 고정IP ([my ip] 버튼을 클릭해 입력 가능)
  • 방화벽 설정(ACG)
    인증키 해당 클러스터 접속에 필요한 프라이빗 키(.pem) 클러스터 직접 접속 인증키 관리
    도메인 확인 해당 클러스터 노드 접속에 필요한 도메인 주소 클러스터 상세 정보 확인

    터널 생성

    터널은 사용자 환경에 따라 두 가지 방법 중 하나를 선택해서 진행할 수 있습니다. 터널링이 완료되면 로컬 컴퓨터에서 9876 포트로 전송되는 트래픽이 클러스터의 마스터 노드로 라우팅됩니다.

    방법1: SSH 명령을 사용한 터널 생성
    방법2: PuTTY를 사용한 터널 생성

    방법1: SSH 명령을 사용한 터널 생성

    SSH(Secure Shell) 터널링은 로컬 컴퓨터의 포트를 Cloud Hadoop 클러스터의 이전에 공인 IP 주소 할당 및 포트가 허용된 마스터 노드에 연결합니다.

    로컬 포트로 전송된 트래픽은 SSH 연결을 통해 해당 마스터 노드로 라우팅됩니다. 마치 마스터 노드에서 시작된 것처럼 보이고 응답은 터널을 통해 다시 라우팅됩니다.

    다음 예시의 SSH 명령문 참조하여 SSH 터널을 생성해 주십시오.

    • Cloud Hadoop에서 생성한 클러스터의 SSH 사용자는 sshuser이며 변경할 수 없습니다.
    • <PEM-FILE-PATH><PUBLIC_IP>사전 작업한 인증키와 공인IP 정보를 각각 입력해 주십시오.
    # ssh -i <PEM-FILE-PATH> -C2qTnNf -D 9876 sshuser@<PUBLIC_IP>
    ssh -i ~/Download/sample-key.pem -C2qTnNf -D 9876 sshuser@10.10.10.10
    

    위 명령은 로컬 포트 9876에서 SSH를 통해 클러스터에 트래픽을 라우팅하는 연결을 만듭니다. 옵션은 다음과 같습니다.

    PORT 설명
    D 9876 터널을 통해 트래픽을 라우팅하는 로컬 포트
    C 웹 트래픽은 대부분 텍스트이므로 모든 데이터 압축
    2 SSH가 프로토콜 버전 2만 시도하도록 강요
    q 자동 모드
    T 포트 전달 후 허위 tty 할당 비활성화
    n 포트 전달 후 STDIN 읽지 않음
    N 포트 전달 후 원격 명령 실행 안 함
    f 백그라운드에서 실행

    방법2: PuTTY를 사용한 터널 생성

    PuTTY를 사용한 터널 생성 방법은 다음과 같습니다.

    1. PuTTY를 실행해 주십시오. (PuTTY 다운로드)
    2. Category 창에서 Session을 선택한 후 각 설정 항목에 아래와 같이 입력하십시오.
      • HostName (or IP address): sshuser@DNS (sshuser@DNSDNS에는 해당 클러스터의 공인 IP를 입력)
      • Port: 22
    3. Category 창에서 Connection > SSH > Tunnels 항목을 클릭해 주십시오.
    4. Options controlling SSH port forwarding 양식에 다음 정보를 입력한 후 [Add] 버튼을 클릭해 주십시오.
    • Source port: 전달하려는 클라이언트의 포트(예: 9876)
    • Destination: 해당 클러스터의 공인 IP 주소 또는 Public 도메인 주소
    • Dynamic: 동적 SOCKS 프록시 라우팅 활성화
    1. Category 창에서 Connection > SSH를 선택해 확장한 후 Auth 항목을 클릭해 주십시오.
    2. [Browse] 버튼을 클릭해 pem 파일을 변환하여 생성한 ppk 파일을 선택한 후 [Open] 버튼을 클릭해 주십시오.
    참고

    한 번 만들어진 터널은 PuTTY에서 해당 세션을 저장해 두고 필요할 때 로드하여 접속할 수 있습니다.

    • 세션을 저장하려면 Load, save or delete a stored sessionSaved Sessions 입력란에 세션명을 입력한 후 **[Save]**을 클릭해 주십시오.
    • 세션을 실행하려면 Saved Sessions 목록에 있는 해당 세션을 선택한 후 [Open] 버튼을 클릭해 주십시오.

    브라우저에서 터널 설정

    이 단계에서는 모든 플랫폼에서 동일한 프록시 설정을 제공하는 Mozilla Firefox 브라우저 사용을 권장합니다. Google Chrome 등의 다른 최신 브라우저에는 터널에서 작동하기 위해 FoxyProxy 등의 확장이 필요할 수 있습니다.

    이 가이드에서는 localhost와 SOCKS v5 프록시 터널을 만들 때 허용 포트(예: 9876)를 사용하도록 브라우저를 구성하는 방법에 대해 설명합니다.

    Firefox 사용 시

    Firefox 브라우저에서 터널을 설정하는 방법은 다음과 같습니다.

    1. Firefox 브라우저에서 설정 > 일반을 클릭한 후 네트워크 설정[설정] 버튼을 클릭해 주십시오.
    2. 연결 설정 팝업창에서 아래 화면과 같이 설정한 후 [확인] 버튼을 클릭해 주십시오.

    hadoop-chadoop-3-6_proxy_ko

    macOS Chrome

    macOS 환경 Chrome 브라우저에서 터널을 설정하는 방법은 다음과 같습니다.

    1. cmd를 실행해 주십시오.
    2. 다음 명령어를 입력해 실행해 주십시오.
    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy server="socks5://127.0.0.1:9876"
    

    Windows Chrome

    Windows 환경 Chrome 브라우저에서 터널을 설정하는 방법은 다음과 같습니다.

    1. Chrome 아이콘을 마우스 오른쪽 버튼으로 클릭한 후 속성을 선택해 주십시오.
    2. 바로 가기 탭의 대상 마지막에 --proxy-server="socks5://127.0.0.1:9876"을 입력한 후 [확인] 버튼을 클릭해 주십시오.

    chadoop-2-1-106_ko.png

    브라우저에서 Web UI접속

    터널링을 설정하기 전에는 Ambari Quick Links에 있는 페이지에 접속되지 않으나 브라우저를 설정을 한 후에는 Web UI에 접속되는 것을 확인할 수 있습니다. 예를 들어, Active ResourceManager 컴포넌트가 호스트 m-002-cluster-test-hd에 있다면 http://m-002-cluster-test-hd:8088/cluster에서 Resource Manager UI에 접근할 수 있습니다.

    기존에 터널링 없이 접속됐던 Web UI의 경우, 터널링 작업 후에는 기존 주소에서 공인 IP 주소 부분을 공인 IP 주소가 할당된 노드의 사설 IP 주소 또는 호스트 네임을 수정한 후 접속해야 합니다.
    예를들어, 원래 터널링 없이 Ambari UI에 http://pub-adqs.hadoop.gov-ntruss.com:8080/#/login와 같은 주소로 접근했다면, 터널링 작업을 한 후에는 http://m-001-cluster-test-hd:8080/#/login에서 접근할 수 있습니다.

    주의

    proxy-server를 설정한 후 해당 웹 브라우저를 모두 다시 실행해야 정상 동작합니다.


    이 글이 도움이 되었나요?