

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

# 옵션 2, 파트 1: 동적 포트 전달을 사용하여 프라이머리 노드에 SSH 터널 설정
<a name="emr-ssh-tunnel"></a>

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

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

시작하기 전에 프라이머리 노드의 퍼블릭 DNS 이름과 키 페어 프라이빗 키 파일이 필요합니다. 프라이머리 퍼블릭 DNS 이름을 찾는 방법에 대한 자세한 내용은 [프라이머리 노드의 퍼블릭 DNS 이름 검색](emr-connect-master-node-ssh.md#emr-connect-master-dns) 섹션을 참조하세요. 키 페어 액세스에 대한 자세한 내용은 **Amazon EC2 사용 설명서에서 [Amazon EC2 키 페어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)를 참조하세요. 프라이머리 노드에서 볼 수 있는 사이트에 대한 자세한 내용은 [Amazon EMR 클러스터에 호스팅된 웹 인터페이스 보기](emr-web-interfaces.md) 섹션을 참조하세요.

## OpenSSH에서 동적 포트 전달을 사용하여 프라이머리 노드에 대해 SSH 터널 설정
<a name="emr-ssh-tunnel-linux"></a><a name="emr-ssh-tunnel-unix"></a>

**OpenSSH에서 동적 포트 전달을 사용하여 SSH 터널을 설정하는 방법**

1. 인바운드 SSH 트래픽을 허용했는지 확인합니다. 지침은 [Amazon EMR에 연결하기 전: 인바운드 트래픽 권한 부여](emr-connect-ssh-prereqs.md) 섹션을 참조하세요.

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

1. 다음 명령을 입력하여 로컬 시스템에서 SSH 터널을 엽니다. *\$1/mykeypair.pem*을 `.pem` 파일의 위치 및 파일 이름으로 바꾸고, *8157*을 사용하지 않은 로컬 포트 번호로 바꾸며, *c2-\$1\$1\$1-\$1\$1-\$1\$1-\$1\$1\$1.compute-1.amazonaws.com*을 클러스터의 프라이머리 퍼블릭 DNS 이름으로 바꿉니다.

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

   이 명령을 실행한 후 터미널은 그대로 열려 있으며 응답을 반환하지 않습니다.
**참고**  
`-D`는 동적 포트 전달을 사용하여 프라이머리 노드의 로컬 웹 서버에 있는 모든 원격 포트로 데이터를 전달하는 데 사용되는 로컬 포트를 지정할 수 있게 합니다. 동적 포트 전달은 명령에 지정된 포트에서 수신하는 로컬 SOCKS 프록시를 생성합니다.

1. 터널이 활성화된 후 브라우저에 대한 SOCKS 프록시를 구성합니다. 자세한 내용은 [옵션 2, 파트 2: Amazon EMR 클러스터 프라이머리 노드에 호스팅된 웹 사이트를 표시하도록 프록시 설정 구성](emr-connect-master-node-proxy.md) 단원을 참조하십시오.

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

## 를 사용하여 동적 포트 전달을 사용하여 SSH 터널 설정 AWS CLI
<a name="emr-ssh-tunnel-cli"></a>

 AWS CLI Windows 및 Linux, Unix 및 Mac OS X에서를 사용하여 프라이머리 노드와의 SSH 연결을 생성할 수 있습니다. Linux, Unix 또는 Mac OS X AWS CLI 에서를 사용하는 경우에 표시된 대로 `.pem` 파일에 대한 권한을 설정해야 합니다[키 페어 프라이빗 키 파일 권한을 구성하려면](emr-connect-master-node-ssh.md#emr-keypair-file-permission-config). Windows AWS CLI 에서를 사용하는 경우 경로 환경 변수에 PuTTY가 나타나야 합니다. 그렇지 않으면 OpenSSH 또는 PuTTY를 사용할 수 없음과 같은 오류가 발생할 수 있습니다.<a name="ssh-tunnel-cli"></a>

**를 사용하여 동적 포트 전달을 사용하여 SSH 터널을 설정하려면 AWS CLI**

1. 인바운드 SSH 트래픽을 허용했는지 확인합니다. 지침은 [Amazon EMR에 연결하기 전: 인바운드 트래픽 권한 부여](emr-connect-ssh-prereqs.md) 섹션을 참조하세요.

1. [를 사용하여 프라이머리 노드에 연결 AWS CLI](emr-connect-master-node-ssh.md#emr-connect-cli)에 표시된 것처럼 프라이머리 노드와 SSH 연결을 생성합니다.

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

   ```
   1. 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"
   ```

1. 동적 포트 전달을 사용하여 프라이머리 노드에 SSH 터널을 열려면 다음 명령을 입력합니다. 다음 예제에서 *j-2AL4XXXXXX5T9*를 클러스터 ID로 바꾸고 *\$1/mykeypair.key*를 `.pem` 파일(Linux, Unix 및 Mac OS X의 경우) 또는 `.ppk` 파일(Windows의 경우)의 위치 및 파일 이름으로 바꿉니다.

   ```
   aws emr socks --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key						
   ```
**참고**  
socks 명령은 로컬 포트 8157에서 동적 포트 전달을 자동으로 구성합니다. 현재 이 설정은 수정할 수 없습니다.

1. 터널이 활성화된 후 브라우저에 대한 SOCKS 프록시를 구성합니다. 자세한 내용은 [옵션 2, 파트 2: Amazon EMR 클러스터 프라이머리 노드에 호스팅된 웹 사이트를 표시하도록 프록시 설정 구성](emr-connect-master-node-proxy.md) 단원을 참조하십시오.

1. 프라이머리 노드에서 웹 인터페이스 작업을 마치면 AWS CLI 창을 닫습니다.

   에서 Amazon EMR 명령을 사용하는 방법에 대한 자세한 내용은 섹션을 AWS CLI참조하세요[https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr).

## PuTTY를 사용하여 프라이머리 노드에 SSH 터널 설정
<a name="emr-ssh-tunnel-win"></a>

Windows 사용자는 PuTTY와 같은 SSH 클라이언트를 사용하여 프라이머리 노드에 대한 SSH 터널을 생성할 수 있습니다. Amazon EMR 프라이머리 노드에 연결하기 전에 PuTTY 및 PuTTYgen을 다운로드하여 설치해야 합니다. [PuTTY 다운로드 페이지](http://www.chiark.greenend.org.uk/~sgtatham/putty/)에서 이러한 도구를 다운로드할 수 있습니다.

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

키 변환에 대한 자세한 내용은 [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html)Amazon EC2 사용 설명서에서 *PuTTYgen을 사용하여 프라이빗 키 변환*을 참조하세요.<a name="emr-ssh-tunnel-putty"></a>

**PuTTY를 사용하여 동적 포트 전달로 SSH 터널을 설정하는 방법**

1. 인바운드 SSH 트래픽을 허용했는지 확인합니다. 지침은 [Amazon EMR에 연결하기 전: 인바운드 트래픽 권한 부여](emr-connect-ssh-prereqs.md) 섹션을 참조하세요.

1. `putty.exe`를 두 번 클릭하여 PuTTY를 시작합니다. Windows 프로그램 목록에서도 PuTTY를 시작할 수 있습니다.
**참고**  
프라이머리 노드와의 활성 SSH 세션이 이미 있는 경우 PuTTY 제목 표시줄을 마우스 오른쪽 버튼으로 클릭하고 **설정 변경**을 선택하여 터널을 추가할 수 있습니다.

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

1. **Host Name(호스트 이름)** 필드에 **hadoop@***MasterPublicDNS*를 입력합니다. 예: **hadoop@***ec2-\$1\$1\$1-\$1\$1-\$1\$1-\$1\$1\$1.compute-1.amazonaws.com*.

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

1. **Private key file for authentication(인증을 위한 프라이빗 키 파일)**에서 **Browse(찾아보기)**를 선택하고 생성한 `.ppk` 파일을 선택합니다.
**참고**  
PuTTY에서는 기본적으로 Amazon EC2에서 생성된 키 페어 프라이빗 키 파일 형식(`.pem`)을 지원하지 않습니다. PuTTYgen을 사용하여 키 파일을 필수 PuTTY 형식(`.ppk`)으로 변환합니다. PuTTY를 사용하여 프라이머리 노드에 연결하기 전에 키를 이 형식(`.ppk`)으로 변환해야 합니다.

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

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

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

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

1. **Open**을 선택합니다.

1. **Yes(예)**를 선택하여 PuTTY 보안 알림을 해제합니다.
**중요**  
프라이머리 노드에 로그인할 때 사용자 이름을 묻는 메시지가 표시되면 `hadoop`을 입력합니다.

1. 터널이 활성화된 후 브라우저에 대한 SOCKS 프록시를 구성합니다. 자세한 내용은 [옵션 2, 파트 2: Amazon EMR 클러스터 프라이머리 노드에 호스팅된 웹 사이트를 표시하도록 프록시 설정 구성](emr-connect-master-node-proxy.md) 단원을 참조하십시오.

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