를 사용하여 Amazon EMR 클러스터 기본 노드에 연결 SSH - Amazon EMR

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

를 사용하여 Amazon EMR 클러스터 기본 노드에 연결 SSH

Secure Shell(SSH)은 원격 컴퓨터에 대한 보안 연결을 생성하는 데 사용할 수 있는 네트워크 프로토콜입니다. 연결을 하면 로컬 컴퓨터의 터미널이 마치 원격 컴퓨터에서 실행 중인 것처럼 작동합니다. 로컬로 실행하는 명령은 원격 컴퓨터에서 실행되고 원격 컴퓨터의 명령 출력은 터미널 창에 나타납니다.

SSH 와 함께 를 사용하면 클라우드에서 실행되는 가상 서버인 EC2 인스턴스에 AWS연결됩니다. Amazon 에서 작업SSH할 때 EMR의 가장 일반적인 용도는 클러스터의 기본 노드 역할을 하는 EC2 인스턴스에 연결하는 것입니다.

SSH 를 사용하여 기본 노드에 연결하면 클러스터를 모니터링하고 상호 작용할 수 있습니다. 프라이머리 노드에 Linux 명령을 사용하고 Hive 및 Pig 같은 애플리케이션을 대화형으로 실행하며 디렉터리를 검색하고 로그 파일을 읽을 수 있습니다. SSH 연결에서 터널을 생성하여 기본 노드에서 호스팅되는 웹 인터페이스를 볼 수도 있습니다. 자세한 내용은 Amazon EMR 클러스터에서 호스팅되는 웹 인터페이스 보기 단원을 참조하십시오.

를 사용하여 기본 노드에 연결하려면 기본 노드의 퍼블릭 DNS 이름이 SSH필요합니다. 또한 기본 노드와 연결된 보안 그룹에는 SSH 연결이 시작된 클라이언트를 포함하는 소스의 SSH (TCP 포트 22) 트래픽을 허용하는 인바운드 규칙이 있어야 합니다. 클라이언트에서 SSH 연결을 허용하려면 규칙을 추가해야 할 수 있습니다. 보안 그룹 규칙 수정에 대한 자세한 내용은 Amazon EC2 사용 설명서Amazon EMR 클러스터의 보안 그룹으로 네트워크 트래픽 제어보안 그룹에 규칙 추가를 참조하세요.

기본 노드의 퍼블릭 DNS 이름 검색

Amazon EMR 콘솔과 를 사용하여 기본 퍼블릭 DNS 이름을 검색할 수 있습니다 AWS CLI.

Console
새 콘솔을 사용하여 기본 노드의 퍼블릭 DNS 이름을 검색하려면
  1. 에 로그인 AWS Management Console하고 https://console.aws.amazon.com/emr에서 Amazon EMR 콘솔을 엽니다.

  2. 왼쪽 탐색 창의 EMR 에서 EC2 클러스터 를 선택한 다음 퍼블릭 DNS 이름을 검색할 클러스터를 선택합니다.

  3. 클러스터 세부 정보 페이지의 요약 섹션에 기본 노드 퍼블릭 DNS 값을 기록해 둡니다.

CLI
를 사용하여 기본 노드의 퍼블릭 DNS 이름을 검색하려면 AWS CLI
  1. 클러스터 식별자를 검색하려면 다음 명령을 입력합니다.

    aws emr list-clusters

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

    "Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "My cluster"
  2. 클러스터의 퍼블릭 DNS 이름을 포함하여 클러스터 인스턴스를 나열하려면 다음 명령 중 하나를 입력합니다. Replace j-2AL4XXXXXX5T9 이전 명령에서 반환된 클러스터 ID.

    aws emr list-instances --cluster-id j-2AL4XXXXXX5T9

    또는 다음과 같습니다.

    aws emr describe-cluster --cluster-id j-2AL4XXXXXX5T9

    출력에는 DNS 이름 및 IP 주소를 포함한 클러스터 인스턴스가 나열됩니다. PublicDnsName의 값을 기록해 둡니다.

    "Status": { "Timeline": { "ReadyDateTime": 1408040779.263, "CreationDateTime": 1408040515.535 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-e89b45e7", "PublicDnsName": "ec2-###-##-##-###.us-west-2.compute.amazonaws.com" "PrivateDnsName": "ip-###-##-##-###.us-west-2.compute.internal", "PublicIpAddress": "##.###.###.##", "Id": "ci-12XXXXXXXXFMH", "PrivateIpAddress": "###.##.#.###"

자세한 내용은 의 Amazon EMR 명령을 참조하세요 AWS CLI.

Linux, Unix 및 Mac OS X에서 SSH 및 Amazon EC2 프라이빗 키를 사용하여 기본 노드에 연결

프라이빗 키 파일로 인증된 SSH 연결을 생성하려면 클러스터를 시작할 때 Amazon EC2 키 페어 프라이빗 키를 지정해야 합니다. 키 페어 액세스에 대한 자세한 내용은 Amazon 사용 설명서의 Amazon EC2 키 페어를 참조하세요. EC2

Linux 컴퓨터에는 기본적으로 SSH 클라이언트가 포함되어 있을 가능성이 높습니다. 예를 들어 OpenSSH은 대부분의 Linux, Unix 및 macOS 운영 체제에 설치됩니다. 명령줄ssh에 를 입력하여 SSH 클라이언트를 확인할 수 있습니다. 컴퓨터가 명령을 인식하지 못하는 경우 SSH 클라이언트를 설치하여 기본 노드에 연결합니다. OpenSSH 프로젝트는 전체 SSH 도구 세트를 무료로 구현합니다. 자세한 내용은 웹 사이트 열기SSH를 참조하세요.

다음 지침은 Linux, Unix 및 Mac OS X에서 Amazon EMR 기본 노드에 대한 SSH 연결을 여는 방법을 보여줍니다.

키 페어 프라이빗 키 파일 권한을 구성하려면

Amazon EC2 키 페어 프라이빗 키를 사용하여 SSH 연결을 생성하려면 먼저 .pem 키 소유자만 파일에 액세스할 수 있는 권한을 갖도록 파일에 대한 권한을 설정해야 합니다. 이는 터미널 또는 를 사용하여 SSH 연결을 생성하는 데 필요합니다 AWS CLI.

  1. 인바운드 SSH 트래픽을 허용했는지 확인합니다. 지침은 Amazon에 연결하기 전에EMR: 인바운드 트래픽 승인 단원을 참조하십시오.

  2. .pem 파일을 찾습니다. 이 지침에서는 파일 이름이 mykeypair.pem이고 현재 사용자의 홈 디렉터리에 저장되어 있다고 가정합니다.

  3. 다음 명령을 입력하여 권한을 설정합니다. Replace ~/mykeypair.pem 키 페어 프라이빗 키 파일의 전체 경로 및 파일 이름을 사용합니다. 예: C:/Users/<username>/.ssh/mykeypair.pem.

    chmod 400 ~/mykeypair.pem

    .pem 파일에 대한 권한을 설정하지 않으면 키 파일이 보호되지 않고 키가 거부된다는 오류가 표시됩니다. 연결하려면 키 페어 프라이빗 키 파일을 처음 사용할 때만 해당 파일에 대한 권한을 설정하면 됩니다.

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

  2. 프라이머리 노드에 대한 연결을 설정하려면 다음 명령을 입력합니다. Replace ec2-###-##-##-###.compute-1.amazonaws.com 클러스터의 기본 퍼블릭 DNS 이름으로 바꾸기 ~/mykeypair.pem 파일의 전체 경로와 .pem 파일 이름이 표시됩니다. 예: C:/Users/<username>/.ssh/mykeypair.pem.

    ssh hadoop@ec2-###-##-##-###.compute-1.amazonaws.com -i ~/mykeypair.pem
    중요

    Amazon EMR 기본 노드에 연결할 hadoop 때 로그인 이름을 사용해야 합니다. 그렇지 않으면 와 유사한 오류가 발생할 수 있습니다Server refused our key.

  3. 경고에 연결 중인 호스트의 신뢰성은 확인할 수 없다고 표시됩니다. yes를 입력하여 계속 진행합니다.

  4. 기본 노드 작업을 완료했으면 다음 명령을 입력하여 SSH 연결을 닫습니다.

    exit

를 사용하여 기본 노드에 연결하는 SSH 데 문제가 있는 경우 인스턴스에 연결하는 문제 해결을 참조하세요.

Windows에서 를 사용하여 기본 노드SSH에 연결

Windows 사용자는 PuTTY와 같은 SSH 클라이언트를 사용하여 기본 노드에 연결할 수 있습니다. Amazon EMR 기본 노드에 연결하기 전에 PuTTY 및 P 를 다운로드하고 설치해야 합니다uTTYgen. PuTTY 다운로드 페이지에서 이러한 도구를 다운로드할 수 있습니다.

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

키 변환에 대한 자세한 내용은 Amazon EC2 사용 설명서P를 사용하여 프라이빗 키 변환uTTYgen을 참조하세요.

Pu를 사용하여 기본 노드에 연결하려면TTY
  1. 인바운드 SSH 트래픽을 허용했는지 확인합니다. 지침은 Amazon에 연결하기 전에EMR: 인바운드 트래픽 승인 단원을 참조하십시오.

  2. putty.exe를 엽니다. Windows 프로그램 목록에서 PuTTY를 시작할 수도 있습니다.

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

  4. 호스트 이름(또는 IP 주소)에 다음을 입력합니다. hadoop@ MasterPublicDNS. 예: hadoop@ec2-###-##-##-###.compute-1.amazonaws.com.

  5. 범주 목록에서 연결 > SSH, 인증을 선택합니다.

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

  7. 열기를 선택한 다음 예를 선택하여 PuTTY 보안 알림을 해제합니다.

    중요

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

  8. 기본 노드 작업을 완료하면 Pu 를 닫아 SSH 연결을 닫을 수 있습니다TTY.

    참고

    SSH 연결 시간 초과를 방지하려면 범주 목록에서 연결을 선택하고 TCP_keepalives 활성화 옵션을 선택합니다. Pu 에 활성 SSH 세션이 있는 경우 PuTTY 제목 표시줄의 컨텍스트(마우스 오른쪽 버튼 클릭)를 열고 설정 변경을 선택하여 설정을 변경할 TTY수 있습니다.

를 사용하여 기본 노드에 연결하는 SSH 데 문제가 있는 경우 인스턴스에 연결하는 문제 해결을 참조하세요.

AWS CLI를 사용하여 프라이머리 노드에 연결

AWS CLI Windows 및 Linux, Unix 및 Mac OS X에서 를 사용하여 기본 노드와의 SSH 연결을 생성할 수 있습니다. 플랫폼에 관계없이 기본 노드의 퍼블릭 DNS 이름과 Amazon EC2 키 페어 프라이빗 키가 필요합니다. Linux, Unix 또는 Mac OS X AWS CLI 에서 를 사용하는 경우 와 같이 프라이빗 키(.pem 또는 .ppk) 파일에 대한 권한도 설정해야 합니다키 페어 프라이빗 키 파일 권한을 구성하려면.

를 사용하여 기본 노드에 연결하려면 AWS CLI
  1. 인바운드 SSH 트래픽을 허용했는지 확인합니다. 지침은 Amazon에 연결하기 전에EMR: 인바운드 트래픽 승인 단원을 참조하십시오.

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

    aws emr list-clusters

    출력에는 클러스터를 포함한 클러스터가 나열됩니다IDs. 연결할 클러스터의 클러스터 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"
  3. 다음 명령을 입력하여 기본 노드에 대한 SSH 연결을 엽니다. 다음 예에서는 를 바꿉니다.j-2AL4XXXXXX5T9 클러스터 ID로 바꾸기 ~/mykeypair.key .pem 파일(Linux, Unix 및 Mac OS X의 경우) 또는 파일(Windows의 경우)의 전체 경로 및 .ppk 파일 이름을 포함합니다. 예: C:\Users\<username>\.ssh\mykeypair.pem.

    aws emr ssh --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key
  4. 기본 노드 작업을 마치면 AWS CLI 창을 닫습니다.

    자세한 내용은 의 Amazon EMR 명령을 참조하세요 AWS CLI. 를 사용하여 기본 노드에 연결하는 SSH 데 문제가 있는 경우 인스턴스에 연결하는 문제 해결을 참조하세요.