옵션 2, 파트 2: Amazon EMR 클러스터 프라이머리 노드에 호스팅된 웹 사이트를 표시하도록 프록시 설정 구성
동적 포트 전달과 함께 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 이름과 일치합니다.
-
10.* 패턴은 Hadoop에서 JobTracker 로그 파일에 대한 액세스를 제공합니다. 네트워크 액세스 계획과 충돌하는 경우 이 필터를 변경하십시오.
-
각각
us-east-1
리전 및 기타 모든 리전에 있는 클러스터의 프라이빗(내부) DNS 이름과 일치하는 *.ec2.internal* 및 *.compute.internal* 패턴.
-
예제: Firefox용 FoxyProxy 구성
다음 예제는 Mozilla Firefox의 FoxyProxy 표준(버전 7.5.1) 구성을 보여줍니다.
FoxyProxy는 일련의 프록시 관리 도구를 제공합니다. 이를 통해 Amazon EMR 클러스터의 Amazon EC2 인스턴스에서 사용하는 도메인에 해당하는 패턴과 일치하는 URL용 프록시 서버를 사용할 수 있습니다.
Mozilla Firefox를 사용하여 FoxyProxy를 설치 및 구성하는 방법
-
Firefox에서 https://addons.mozilla.org/
로 이동하여 FoxyProxy Standard를 검색하고 지침에 따라 Firefox에 FoxyProxy를 추가합니다. -
텍스트 편집기를 사용하여 다음 예제 구성에서 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" } -
Firefox Manage Your Extensions 페이지를 엽니다(about:addons으로 이동하고 Extensions 선택).
-
FoxyProxy Standard를 선택하고 추가 옵션 버튼(줄임표 모양의 버튼)을 선택합니다.
-
드롭다운에서 옵션을 선택합니다.
-
왼쪽 메뉴에서 설정 가져오기를 선택합니다.
-
Import Settings 페이지에서 Import Settings from FoxyProxy 6.0+ 아래에서 Import Settings를 선택하고 생성한
foxyproxy-settings.json
파일 위치를 찾아 파일을 선택한 후 Open을 선택합니다. -
기존 설정을 덮어쓰고 새 구성을 저장하라는 메시지가 표시되면 OK를 선택합니다.
예제: Chrome용 SwitchyOmega 구성
다음 예제에서는 Google 크롬용 SwitchyOmega 확장 프로그램을 설정하는 방법을 보여줍니다. SwitchyOmega를 사용하면 여러 프록시를 구성 및 관리하고 프록시 간에 전환할 수 있습니다.
Google Chrome을 사용하여 SwitchyOmega를 설치 및 구성하는 방법
-
https://chrome.google.com/webstore/category/extensions
로 이동하고 Proxy SwitchyOmega를 검색하여 Chrome에 추가합니다. -
New profile을 선택하고 프로파일 이름으로
emr-socks-proxy
를 입력합니다. -
PAC profile을 선택하고 Create를 선택합니다. Proxy Auto-Configuration(PAC)
파일을 사용하면 웹 프록시 서버로 전달해야 하는 브라우저 요청에 대한 허용 목록을 정의할 수 있습니다. -
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'; } -
Actions에 Apply changes를 선택하고 프록시 설정을 저장합니다.
-
Chrome 도구 모음에서 SwitchyOmega를 선택하고
emr-socks-proxy
프로파일을 선택합니다.
브라우저에서 웹 인터페이스에 액세스
웹 인터페이스를 열려면 브라우저 주소 표시줄에 프라이머리 또는 코어 노드의 퍼블릭 DNS 이름을 입력한 다음 선택한 인터페이스의 포트 번호를 입력합니다. 다음 예제에서는 Spark HistoryServer에 연결하기 위해 입력하는 URL을 보여줍니다.
http://
master-public-dns-name
:18080/
노드의 퍼블릭 DNS 이름을 검색하는 방법에 대한 지침은 프라이머리 노드의 퍼블릭 DNS 이름 검색 섹션을 참조하세요. 웹 인터페이스 URL의 전체 목록은 Amazon EMR 클러스터에 호스팅된 웹 인터페이스 보기 섹션을 참조하세요.