터널링을 이용한 Ambari 웹 UI 접속

Cloud Hadoop 서비스의 클러스터 관리 중 터널링을 통해 Ambari 웹 UI 접속하는 방법에 대해 설명합니다.

기본적으로 클러스터 생성 시 입력한 클러스터 관리자 계정 및 패스워드를 통해 Ambari 웹 UI 접속이 가능합니다. 그렇지만 Ambari 일부 메뉴는 SSH 터널링을 통해서만 접속이 가능합니다.

다음 web UI에 접속하기 위해서는 SSH 터널링 설정 작업이 필요합니다.

  • JobHistory
  • NameNode
  • Thread Stacks
  • Oozie web UI
  • HBase Master and Logs UI

사전 작업

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

Step 1. 해당 클러스터 내에 공인 IP가 할당된 노드가 있어야 합니다.

Cloud Hadoop 경우 클러스터 생성 시 ambari server가 수행되는 마스터 노드에 공인 IP가 할당됩니다. 콘솔에서 클러스터 상세보기 화면에서 공인IP가 할당되어 있는지 확인이 가능합니다.

Step 2. 클러스터 ACG에 사용자의 공인 IP와 Ambari 연결에 필요한 port가 등록되어 있어야 합니다.

ACG 설정 변경은 클러스터 상세 정보 화면에서 ACG 메뉴를 통해 가능합니다.

Ambari 웹 UI의 하위 메뉴에 모두 접속하려면 아래 모든 규칙이 ACG에 설정되어 있어야 합니다.

프로토콜 접근소스 허용포트 비고
TCP 사용자 공인ip 8080 Ambari Web 콘솔 접속용
TCP 사용자 공인ip 8000 Hue Admin 접속용
TCP 사용자 공인ip 9995 Zepplin Notebook 접속용

터널을 만들기 위해서는 아래 두 가지 방법 중 사용자 환경에 따라 선택해서 진행할 수 있습니다.

[Case 1] SSH 명령을 사용하여 터널 만들기

sshTunneling

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

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

SSH 명령을 사용하여 SSH 터널을 만들려면 다음 명령을 사용합니다. Cloud Hadoop에서 생성한 클러스터의 SSH 사용자는 sshuser이며 변경할 수 없습니다.

아래 명령어에서 10.10.10.10을 해당 클러스터에 할당된 공인 IP 주소로 변경해서 접속합니다.

ssh -C2qTnNf -D 9876 sshuser@10.10.10.10

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

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

명령이 완료되면 로컬 컴퓨터에서 9876 포트로 전송되는 트래픽이 클러스터의 마스터 노드로 라우팅됩니다.

브라우저에서 터널 사용

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

localhost와 SOCKS v5 프록시 터널을 만들 때 사용한 포트를 사용하도록 브라우저를 구성합니다.

Firefox

usingSshFirefox
Case 1-1

설정 > 네트워크 프록시에서 다음과 같이 설정합니다.

macOS Chrome

usingSshMacChrome
Case 1-2

cmd에서 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy server="socks5://127.0.0.1:9876"을 실행합니다.

Windows Chrome

usingSshWindowsChrome
Case 1-3
  1. Chrome 아이콘을 마우스 오른쪽 버튼으로 클릭하여 속성을 선택합니다.

  2. 바로 가기 탭의 대상 마지막에 --proxy-server="socks5://127.0.0.1:9876"을 추가합니다.

Ambari 웹 UI를 통해 확인

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

주의 터널링 이후 Ambari 웹 UI에 접속할 때 기존 주소에서 공인 IP 주소를 공인 IP 주소가 할당된 노드의 사설 IP 주소로 수정 후 접속해야 합니다.

  1. 브라우저에서 새로운 주소로 접속해서 접속 정보에 클러스터 관리자 계정 및 패스워드를 입력합니다.
  2. Ambari 웹 UI 화면에서 터널링이 필요한 페이지에 접속해 해당 페이지가 잘 열리는지 확인합니다.

[Case 2] PuTTY를 사용하여 터널 만들기

puttyTunneling

PuTTY는 Windows용 그래픽 SSH 클라이언트입니다(참고: PuTTY Documentation Page).

  1. PuTTY를 열고 연결 정보 입력합니다.

  2. 대화 상자 왼쪽에 있는 Category 창에서 Connection > SSH > Tunnels를 선택합니다.

  3. Options controlling SSH port forwarding 양식에 다음 정보를 제공합니다.

    ① Source port: 전달하려는 클라이언트의 포트(예: 9876) ② Destination: 해당 클러스터의 공인 IP 주소 또는 Public 도메인 주소 ③ Dynamic: 동적 SOCKS 프록시 라우팅 활성화

  4. Add 클릭 후 Open을 클릭하여 서버에 로그인합니다.

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

브라우저에서 터널 사용

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

localhost와 SOCKS v5 프록시 터널을 만들 때 사용한 포트를 사용하도록 브라우저를 구성합니다.

Firefox

usingPuttyFirefox
Case 2-1

설정 > 네트워크 프록시에서 다음과 같이 설정합니다.

macOS Chrome

usingPuttyMacChrome
Case 2-2

cmd에서 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy server="socks5://127.0.0.1:9876"을 실행합니다.

Windows Chrome

usingPuttyWindowsChrome
Case 2-3
  1. Chrome 아이콘을 마우스 오른쪽 버튼으로 클릭하여 속성을 선택합니다.

  2. 바로 가기 탭의 대상 마지막에 --proxy-server="socks5://127.0.0.1:9876"을 추가합니다.

Ambari 웹 UI를 통해 확인

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

주의 터널링 이후 Ambari 웹 UI에 접속할 때 기존 주소에서 공인 IP 주소를 공인 IP 주소가 할당된 노드의 사설 IP 주소로 수정 후 접속해야 합니다.

  1. 브라우저에서 새로운 주소로 접속해서 접속 정보에 클러스터 관리자 계정 및 패스워드를 입력합니다.
  2. Ambari 웹 UI 화면에서 터널링이 필요한 페이지에 접속해 해당 페이지가 잘 열리는지 확인합니다.

연관 정보 바로가기

Hadoop 클러스터 생성, 관리 및 사용 관련하여 아래 사용 가이드를 참고하실 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...