옵션 2, 파트 1: 동적 포트 전달을 사용하여 프라이머리 노드에 SSH 터널 설정 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

옵션 2, 파트 1: 동적 포트 전달을 사용하여 프라이머리 노드에 SSH 터널 설정

프라이머리 노드의 로컬 웹 서버에 연결하려면 컴퓨터와 프라이머리 노드 사이에 SSH 터널을 생성합니다. 이를 포트 전달이라고도 합니다. 동적 포트 전달을 사용하여 SSH 터널을 생성하면 지정된 미사용 로컬 포트로 라우팅된 모든 트래픽이 프라이머리 노드의 로컬 웹 서버로 전달됩니다. 이 경우 SOCKS 프록시가 생성됩니다. 그런 다음 다음과 같은 FoxyProxy 애드온을 사용하거나 SOCKS 프록시 설정을 SwitchyOmega 관리하도록 인터넷 브라우저를 구성할 수 있습니다.

프록시 관리 추가 기능을 사용하면 텍스트 패턴을 기반으로 URL을 자동으로 필터링하고 프록시 설정을 프라이머리 노드의 퍼블릭 DNS 이름 형식과 일치하는 도메인으로 제한할 수 있습니다. 브라우저 추가 기능은 프라이머리 노드에서 호스팅되는 웹 사이트와 인터넷상의 웹 사이트 보기를 전환할 때 프록시를 켜고 끄는 작업을 자동으로 처리합니다.

시작하기 전에 프라이머리 노드의 퍼블릭 DNS 이름과 키 페어 프라이빗 키 파일이 필요합니다. 프라이머리 퍼블릭 DNS 이름을 찾는 방법에 대한 자세한 내용은 이전 콘솔을 사용하여 프라이머리 노드의 퍼블릭 DNS 이름을 검색하는 방법 섹션을 참조하세요. 키 페어에 액세스하는 방법에 대한 자세한 내용은 Amazon EC2 사용 설명서의 Amazon EC2 키 페어를 참조하십시오. 프라이머리 노드에서 볼 수 있는 사이트에 대한 자세한 내용은 Amazon EMR 클러스터에 호스팅된 웹 인터페이스 보기 섹션을 참조하세요.

OpenSSH에서 동적 포트 전달을 사용하여 프라이머리 노드에 대해 SSH 터널 설정

OpenSSH에서 동적 포트 전달을 사용하여 SSH 터널을 설정하는 방법
  1. 인바운드 SSH 트래픽을 허용했는지 확인합니다. 자세한 내용은 연결 전: 인바운드 트래픽 승인 섹션을 참조하세요.

  2. 터미널 창을 엽니다. Mac OS X에서 애플리케이션 > 유틸리티 > 터미널을 선택합니다. 다른 Linux 배포에서는 일반적으로 Applications > Accessories > Terminal(애플리케이션 > 보조프로그램 > 터미널)에서 터미널을 찾을 수 있습니다.

  3. 다음 명령을 입력하여 로컬 시스템에서 SSH 터널을 엽니다. ~/mykeypair.pem을 파일 위치 및 파일 이름으로 바꾸고, 8157은 사용하지 않는 로컬 포트 번호로 바꾸고, ec2-###-#-#-#########.compute-1.amazonaws.com을 클러스터의 기본 퍼블릭 DNS 이름으로 바꾸십시오.pem.

    ssh -i ~/mykeypair.pem -N -D 8157 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

    이 명령을 실행한 후 터미널은 그대로 열려 있으며 응답을 반환하지 않습니다.

    참고

    -D는 동적 포트 전달을 사용하여 프라이머리 노드의 로컬 웹 서버에 있는 모든 원격 포트로 데이터를 전달하는 데 사용되는 로컬 포트를 지정할 수 있게 합니다. 동적 포트 전달은 명령에 지정된 포트에서 수신하는 로컬 SOCKS 프록시를 생성합니다.

  4. 터널이 활성화된 후 브라우저에 대한 SOCKS 프록시를 구성합니다. 자세한 정보는 옵션 2, 파트 2: 프라이머리 노드에 호스팅된 웹 사이트를 표시하도록 프록시 설정 구성을 참조하세요.

  5. 프라이머리 노드에서 웹 인터페이스 작업을 마쳤으면 터미널 창을 닫습니다.

다음과 같은 동적 포트 포워딩을 사용하여 SSH 터널을 설정합니다. AWS CLI

Windows 및 Linux, Unix 및 Mac OS AWS CLI X에서 를 사용하여 기본 노드와의 SSH 연결을 생성할 수 있습니다. Linux, Unix 또는 Mac OS AWS CLI X에서 를 사용하는 경우 다음과 같이 파일에 대한 권한을 설정해야 합니다. .pem 키 페어 프라이빗 키 파일 권한을 구성하려면 AWS CLI Windows에서 를 사용하는 경우 경로 환경 변수에 PuTTY가 나타나야 합니다. 그렇지 않으면 OpenSSH 또는 PuTTY를 사용할 수 없음과 같은 오류가 발생할 수 있습니다.

동적 포트 포워딩을 사용하여 SSH 터널을 설정하려면 AWS CLI
  1. 인바운드 SSH 트래픽을 허용했는지 확인합니다. 자세한 내용은 연결 전: 인바운드 트래픽 승인 섹션을 참조하세요.

  2. AWS CLI를 사용하여 프라이머리 노드에 연결에 표시된 것처럼 프라이머리 노드와 SSH 연결을 생성합니다.

  3. 클러스터 식별자를 검색하려면 다음을 입력합니다.

    aws emr list-clusters

    출력에는 클러스터 ID를 포함하여 클러스터가 나열됩니다. 연결할 클러스터의 클러스터 ID를 기록해 둡니다.

    "Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "AWS CLI cluster"
  4. 동적 포트 전달을 사용하여 프라이머리 노드에 SSH 터널을 열려면 다음 명령을 입력합니다. 다음 예제에서 j-2AL4XXXXXX5T9를 클러스터 ID로 바꾸고 ~/mykeypair.key.pem 파일(Linux, Unix 및 Mac OS X의 경우) 또는 .ppk 파일(Windows의 경우)의 위치 및 파일 이름으로 바꿉니다.

    aws emr socks --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key
    참고

    socks 명령은 로컬 포트 8157에서 동적 포트 전달을 자동으로 구성합니다. 현재 이 설정은 수정할 수 없습니다.

  5. 터널이 활성화된 후 브라우저에 대한 SOCKS 프록시를 구성합니다. 자세한 정보는 옵션 2, 파트 2: 프라이머리 노드에 호스팅된 웹 사이트를 표시하도록 프록시 설정 구성을 참조하세요.

  6. 기본 노드의 웹 인터페이스 작업을 마치면 창을 닫습니다. AWS CLI

    에서 Amazon EMR 명령을 사용하는 방법에 대한 자세한 내용은 을 AWS CLI참조하십시오. https://docs.aws.amazon.com/cli/latest/reference/emr

PuTTY를 사용하여 프라이머리 노드에 SSH 터널 설정

Windows 사용자는 PuTTY와 같은 SSH 클라이언트를 사용하여 프라이머리 노드에 대한 SSH 터널을 생성할 수 있습니다. Amazon EMR 프라이머리 노드에 연결하기 전에 PuTTY 및 PuTTYgen을 다운로드하여 설치해야 합니다. PuTTY 다운로드 페이지에서 이러한 도구를 다운로드할 수 있습니다.

PuTTY에서는 기본적으로 Amazon EC2에서 생성된 키 페어 프라이빗 키 파일 형식(.pem)을 지원하지 않습니다. PuTTYgen을 사용하여 키 파일을 필수 PuTTY 형식(.ppk)으로 변환합니다. PuTTY를 사용하여 프라이머리 노드에 연결하기 전에 키를 이 형식(.ppk)으로 변환해야 합니다.

키 변환에 대한 자세한 내용은 Amazon EC2 사용 설명서의 PuttyGen을 사용한 프라이빗 키 변환을 참조하십시오.

PuTTY를 사용하여 동적 포트 전달로 SSH 터널을 설정하는 방법
  1. 인바운드 SSH 트래픽을 허용했는지 확인합니다. 자세한 내용은 연결 전: 인바운드 트래픽 승인 섹션을 참조하세요.

  2. putty.exe를 두 번 클릭하여 PuTTY를 시작합니다. Windows 프로그램 목록에서도 PuTTY를 시작할 수 있습니다.

    참고

    프라이머리 노드와의 활성 SSH 세션이 이미 있는 경우 PuTTY 제목 표시줄을 마우스 오른쪽 버튼으로 클릭하고 설정 변경을 선택하여 터널을 추가할 수 있습니다.

  3. 필요한 경우 Category(범주) 목록에서 Session(세션)을 선택합니다.

  4. 호스트 이름 필드에 DNS를 입력합니다. hadoop@ MasterPublic 예: hadoop@ec2-###-##-##-###.compute-1.amazonaws.com.

  5. Category(범주) 목록에서 Connection > SSH(연결 > SSH)를 확장한 후 Auth(인증)를 선택합니다.

  6. Private key file for authentication(인증을 위한 프라이빗 키 파일)에서 Browse(찾아보기)를 선택하고 생성한 .ppk 파일을 선택합니다.

    참고

    PuTTY에서는 기본적으로 Amazon EC2에서 생성된 키 페어 프라이빗 키 파일 형식(.pem)을 지원하지 않습니다. PuTTYgen을 사용하여 키 파일을 필수 PuTTY 형식(.ppk)으로 변환합니다. PuTTY를 사용하여 프라이머리 노드에 연결하기 전에 키를 이 형식(.ppk)으로 변환해야 합니다.

  7. Category(범주) 목록에서 Connection > SSH(연결 > SSH)를 확장한 후 Tunnels(터널)를 선택합니다.

  8. 소스 포트 필드에 8157(미사용 로컬 포트)을 입력하고 추가를 선택합니다.

  9. Destination(대상) 필드는 비워둡니다.

  10. Dynamic(동적)Auto(자동) 옵션을 선택합니다.

  11. Open을 선택합니다.

  12. Yes(예)를 선택하여 PuTTY 보안 알림을 해제합니다.

    중요

    프라이머리 노드에 로그인할 때 사용자 이름을 묻는 메시지가 표시되면 hadoop을 입력합니다.

  13. 터널이 활성화된 후 브라우저에 대한 SOCKS 프록시를 구성합니다. 자세한 정보는 옵션 2, 파트 2: 프라이머리 노드에 호스팅된 웹 사이트를 표시하도록 프록시 설정 구성을 참조하세요.

  14. 프라이머리 노드에서 웹 인터페이스 작업을 마쳤으면 PuTTY 창을 닫습니다.