옵션 2, 파트 2: 프라이머리 노드에 호스팅된 웹 사이트를 표시하도록 프록시 설정 구성 - Amazon EMR

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

옵션 2, 파트 2: 프라이머리 노드에 호스팅된 웹 사이트를 표시하도록 프록시 설정 구성

동적 포트 전달과 함께 SSH 터널을 사용하는 경우 SOCKS 프록시 관리 추가 기능을 사용하여 브라우저의 프록시 설정을 제어해야 합니다. SOCKS 프록시 관리 도구를 사용하면 텍스트 패턴을 기반으로 URL을 자동으로 필터링하고 프록시 설정을 프라이머리 노드의 퍼블릭 DNS 이름 형식과 일치하는 도메인으로 제한할 수 있습니다. 브라우저 추가 기능은 프라이머리 노드에서 호스팅되는 웹 사이트와 인터넷상의 웹 사이트 보기를 전환할 때 프록시를 켜고 끄는 작업을 자동으로 처리합니다. 프록시 설정을 관리하려면 FoxyProxy 또는 SwitchyOmega 와 같은 추가 기능을 사용하도록 브라우저를 구성하십시오.

SSH 터널 생성에 대한 자세한 내용은 옵션 2, 파트 1: 동적 포트 전달을 사용하여 프라이머리 노드에 SSH 터널 설정 단원을 참조하십시오. 사용 가능한 웹 인터페이스에 대한 자세한 내용은 Amazon EMR 클러스터에 호스팅된 웹 인터페이스 보기를 참조하십시오.

프록시 추가 기능을 설정할 때 다음 설정을 포함합니다.

  • localhost를 호스트 주소로 사용합니다.

  • 옵션 2, 파트 1: 동적 포트 전달을 사용하여 프라이머리 노드에 SSH 터널 설정에서 프라이머리 노드를 포함하는 SSH 터널을 설정할 때 선택한 것과 동일한 로컬 포트 번호를 사용합니다. 예를 들어 포트 8157과 같습니다. 또한 이 포트는 PuTTY에서 사용하는 포트 번호 또는 연결하는 데 사용하는 다른 터미널 에뮬레이터와 일치해야 합니다.

  • SOCKS v5 프로토콜을 지정합니다. SOCKS v5에서는 사용자 권한 부여를 선택적으로 설정할 수 있습니다.

  • URL 패턴

    다음 URL 패턴은 허용 목록에 등록되며, 와일드카드 패턴 유형을 사용하여 지정됩니다.

    • 미국 리전에서 클러스터의 퍼블릭 DNS 이름과 일치하는 *ec2*.*compute*.amazonaws.com**10*.amazonaws.com* 패턴.

    • *ec2*.compute**10*.compute* 패턴은 기타 모든 리전에서 클러스터의 퍼블릭 DNS 이름과 일치합니다.

    • A 10. * 패턴은 하둡의 JobTracker 로그 파일에 대한 액세스를 제공합니다. 네트워크 액세스 계획과 충돌하는 경우 이 필터를 변경하십시오.

    • 각각 us-east-1 리전 및 기타 모든 리전에 있는 클러스터의 프라이빗(내부) DNS 이름과 일치하는 *.ec2.internal**.compute.internal* 패턴.

예: Firefox용으로 구성 FoxyProxy

다음 예제는 모질라 파이어폭스의 FoxyProxy 표준 (버전 7.5.1) 구성을 보여줍니다.

FoxyProxy 프록시 관리 도구 세트를 제공합니다. 이를 통해 Amazon EMR 클러스터의 Amazon EC2 인스턴스에서 사용하는 도메인에 해당하는 패턴과 일치하는 URL용 프록시 서버를 사용할 수 있습니다.

모질라 FoxyProxy 파이어폭스를 사용하여 설치하고 구성하려면
  1. 파이어폭스에서는 https://addons.mozilla.org/ 으로 이동하여 FoxyProxy 스탠다드를 검색하고 지침에 따라 파이어폭스에 FoxyProxy 추가하세요.

  2. 텍스트 편집기를 사용하여 다음 예제 구성에서 JSON 파일 foxyproxy-settings.json을 생성합니다.

    { "k20d21508277536715": { "active": true, "address": "localhost", "port": 8157, "username": "", "password": "", "type": 3, "proxyDNS": true, "title": "emr-socks-proxy", "color": "#0055E5", "index": 9007199254740991, "whitePatterns": [ { "title": "*ec2*.*compute*.amazonaws.com*", "active": true, "pattern": "*ec2*.*compute*.amazonaws.com*", "importedPattern": "*ec2*.*compute*.amazonaws.com*", "type": 1, "protocols": 1 }, { "title": "*ec2*.compute*", "active": true, "pattern": "*ec2*.compute*", "importedPattern": "*ec2*.compute*", "type": 1, "protocols": 1 }, { "title": "10.*", "active": true, "pattern": "10.*", "importedPattern": "http://10.*", "type": 1, "protocols": 2 }, { "title": "*10*.amazonaws.com*", "active": true, "pattern": "*10*.amazonaws.com*", "importedPattern": "*10*.amazonaws.com*", "type": 1, "protocols": 1 }, { "title": "*10*.compute*", "active": true, "pattern": "*10*.compute*", "importedPattern": "*10*.compute*", "type": 1, "protocols": 1 }, { "title": "*.compute.internal*", "active": true, "pattern": "*.compute.internal*", "importedPattern": "*.compute.internal*", "type": 1, "protocols": 1 }, { "title": "*.ec2.internal* ", "active": true, "pattern": "*.ec2.internal*", "importedPattern": "*.ec2.internal*", "type": 1, "protocols": 1 } ], "blackPatterns": [] }, "logging": { "size": 100, "active": false }, "mode": "patterns", "browserVersion": "68.12.0", "foxyProxyVersion": "7.5.1", "foxyProxyEdition": "standard" }
  3. Firefox Manage Your Extensions 페이지를 엽니다(about:addons으로 이동하고 Extensions 선택).

  4. FoxyProxy 표준을 선택한 다음 추가 옵션 버튼 (줄임표 모양의 버튼) 을 선택합니다.

  5. 드롭다운에서 옵션을 선택합니다.

  6. 왼쪽 메뉴에서 설정 가져오기를 선택합니다.

  7. [가져오기 설정] 페이지의 [ FoxyProxy 6.0 이상에서 가져오기 설정] 에서 [설정 가져오기] 를 선택하고, 만든 파일의 위치를 찾아 foxyproxy-settings.json 파일을 선택한 다음 [열기] 를 선택합니다.

  8. 기존 설정을 덮어쓰고 새 구성을 저장하라는 메시지가 표시되면 OK를 선택합니다.

예: Chrome용으로 구성 SwitchyOmega

다음 예시는 Google Chrome용 SwitchyOmega 확장 프로그램을 설정하는 방법을 보여줍니다. SwitchyOmega 여러 프록시를 구성, 관리하고, 전환할 수 있습니다.

Google 크롬을 SwitchyOmega 사용하여 설치 및 구성하려면
  1. https://chrome.google.com/webstore/category/extensions 으로 이동하여 프록시를 SwitchyOmega 검색한 다음 크롬에 추가하세요.

  2. New profile을 선택하고 프로파일 이름으로 emr-socks-proxy를 입력합니다.

  3. PAC profile을 선택하고 Create를 선택합니다. Proxy Auto-Configuration(PAC) 파일을 사용하면 웹 프록시 서버로 전달해야 하는 브라우저 요청에 대한 허용 목록을 정의할 수 있습니다.

  4. PAC Script 필드의 내용을 웹 프록시 서버를 통해 전달해야 하는 URL을 정의하는 다음 스크립트로 바꿉니다. SSH 터널을 설정할 때 다른 포트 번호를 지정한 경우 8157을 포트 번호로 바꿉니다.

    function FindProxyForURL(url, host) { if (shExpMatch(url, "*ec2*.*compute*.amazonaws.com*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*ec2*.compute*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "http://10.*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*10*.compute*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*10*.amazonaws.com*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*.compute.internal*")) return 'SOCKS5 localhost:8157'; if (shExpMatch(url, "*ec2.internal*")) return 'SOCKS5 localhost:8157'; return 'DIRECT'; }
  5. ActionsApply changes를 선택하고 프록시 설정을 저장합니다.

  6. Chrome 툴바에서 emr-socks-proxy 프로필을 SwitchyOmega 선택하고 선택합니다.

브라우저에서 웹 인터페이스에 액세스

웹 인터페이스를 열려면 브라우저 주소 표시줄에 프라이머리 또는 코어 노드의 퍼블릭 DNS 이름을 입력한 다음 선택한 인터페이스의 포트 번호를 입력합니다. 다음 예시는 HistoryServer Spark에 연결하기 위해 입력하는 URL을 보여줍니다.

http://master-public-dns-name:18080/

노드의 퍼블릭 DNS 이름을 검색하는 방법에 대한 지침은 프라이머리 노드의 퍼블릭 DNS 이름 검색 섹션을 참조하세요. 웹 인터페이스 URL의 전체 목록은 Amazon EMR 클러스터에 호스팅된 웹 인터페이스 보기 섹션을 참조하세요.