すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:オープンソースコンポーネントの Web UI にアクセスするための SSH トンネルの作成

最終更新日:Feb 22, 2025

E-MapReduce (EMR) コンソールで提供されているリンクを使用して、オープンソースコンポーネントの Web UI にアクセスできます。また、SSH トンネルを作成して、オープンソースコンポーネントの Web UI にアクセスすることもできます。SSH トンネルと SOCKS プロキシサーバーを使用すると、クラスタの内部ネットワーク構造を公開することなく、オープンソースコンポーネントの Web UI にアクセスできます。

説明

オープンソースコンポーネントの Web UI にアクセスするために使用できるメソッドについては、「オープンソースコンポーネントの Web UI へのアクセス」をご参照ください。

前提条件

  • EMR クラスタが作成されていること。詳細については、「クラスタの作成」をご参照ください。

  • 使用するクライアントが、目的の EMR クラスタのマスターノードに接続されていること。詳細については、「EIP を ECS インスタンスに関連付ける」をご参照ください。

ローカルポートフォワーディングを有効にするための SSH トンネルの作成

重要

この方法を使用してオープンソースコンポーネントの Web UI にアクセスする場合、ジョブ詳細ページに移動することはできません。

ローカルポートフォワーディング方式を使用して、マスターノードのポート上のデータをローカルポートに転送し、マスターノードで実行されている Web アプリケーションインターフェイスにアクセスできます。

1. SSH トンネルの作成

オンプレミスマシンで CLI を開き、SSH モードで目的の EMR クラスタのマスターノードに接続します。EMR クラスタの作成時に構成したパスワードまたはキーを使用して、マスターノードに接続できます。

キーを使用してマスターノードに接続する

ssh -i <キーファイルのパス> -N -L <ローカルポート>:<マスターノードの名前>:<コンポーネントポート> root@<マスターノードのパブリック IP アドレス>

パラメータの説明:

  • -i:身元認証に使用される秘密鍵ファイルのパス。

  • -N:ポートフォワーディングを有効にし、コマンドを実行せずに SSH トンネルを作成するためにのみ使用されます。

  • -L:ローカルポートフォワーディングが有効になります。ローカルポートを指定して、オンプレミスの Web サーバーのマスターノードでホストされているリモートポートにデータを転送できます。

  • <キーファイルのパス>:キーファイルが保存されているパス。詳細については、「SSH キーペアの管理」をご参照ください。

  • <ローカルポート>:オンプレミスサーバーの空いているポートを使用できます。例:8156

  • <マスターノードの名前>:マスターノードの [名前][ノード] タブで名前を確認できます。例:master-1-1。詳細については、「ノードのパブリック IP アドレスと名前を取得する」をご参照ください。

  • <コンポーネントポート>:オープンソースコンポーネントのポート。コンポーネントポートの詳細については、「オープンソースコンポーネントの共通ポート」をご参照ください。例:8088

  • <マスターノードのパブリック IP アドレス>:マスターノードの [パブリック IP アドレス]。クラスタの [ノード] タブでアドレスを確認できます。詳細については、「ノードのパブリック IP アドレスと名前を取得する」をご参照ください。

ユーザー名とパスワードを使用してマスターノードに接続する

ssh -N -L <ローカルポート>:<マスターノードの名前>:<コンポーネントポート> root@<マスターノードのパブリック IP アドレス>

パラメータの説明:

  • -N:ポートフォワーディングを有効にし、コマンドを実行せずに SSH トンネルを作成するためにのみ使用されます。

  • -L:ローカルポートフォワーディングが有効になります。ローカルポートを指定して、オンプレミスの Web サーバーのマスターノードでホストされているリモートポートにデータを転送できます。

  • <ローカルポート>:オンプレミスサーバーの空いているポートを使用できます。例:8156

  • <マスターノードの名前>:マスターノードの [名前]。クラスタの [ノード] タブで名前を確認できます。例:master-1-1。詳細については、「ノードのパブリック IP アドレスと名前を取得する」をご参照ください。

  • <コンポーネントポート>:オープンソースコンポーネントのポート。コンポーネントポートの詳細については、「オープンソースコンポーネントの共通ポート」をご参照ください。例:8088

  • <マスターノードのパブリック IP アドレス>:マスターノードの [パブリック IP アドレス]。クラスタの [ノード] タブでアドレスを確認できます。詳細については、「ノードのパブリック IP アドレスと名前を取得する」をご参照ください。

重要

SSH トンネルを作成した後、オンプレミスサーバーを実行したままにしてください。応答は返されません。

2. オープンソースコンポーネントの Web UI へのアクセス

ブラウザのアドレスバーに http://localhost:<ローカルポート> と入力し、Enter キーを押して特定の Web UI にアクセスします。<ローカルポート> は、手順 1 で構成したローカルポートです。たとえば、YARN の Web UI にアクセスするには、http://localhost:8156 と入力します。

説明

複数のオープンソースコンポーネントの Web UI に同時にアクセスする場合は、上記の手順を繰り返して、転送用の別のローカルポートを有効にする必要があります。

ダイナミックポートフォワーディングを有効にするための SSH トンネルの作成

オンプレミスサーバーのポートと EMR クラスタのマスターノード間の通信を許可する SSH トンネルを作成した後、ポートでリッスンする SOCKS プロキシサーバーを使用して、ポートデータを EMR クラスタのマスターノードに転送できます。その後、オンプレミスサーバーから EMR クラスタのマスターノードにあるオープンソースコンポーネントの Web UI にアクセスできます。

1. SSH トンネルの作成

オンプレミスマシンで CLI を開き、SSH モードで目的の EMR クラスタのマスターノードに接続します。EMR クラスタの作成時に構成したパスワードまたはキーを使用して、マスターノードに接続できます。

キーを使用してマスターノードに接続する

ssh -i <キーファイルのパス> -N -D <ポート> root@<マスターノードのパブリック IP アドレス>

パラメータの説明:

  • -i:身元認証に使用される秘密鍵ファイルのパス。

  • -N:ポートフォワーディングを有効にし、コマンドを実行せずに SSH トンネルを作成するためにのみ使用されます。

  • -D:ダイナミックポートフォワーディングが有効になります。SOCKS プロキシプロセスを起動して、ポートでリッスンします。

  • <キーファイルのパス>:キーファイルが保存されているパス。詳細については、「SSH キーペアの管理」をご参照ください。

  • <ローカルポート>:オンプレミスサーバーの空いているポートを使用できます。例:8157

  • <マスターノードのパブリック IP アドレス>:マスターノードの [パブリック IP アドレス]。クラスタの [ノード] タブでアドレスを確認できます。詳細については、「ノードのパブリック IP アドレスと名前を取得する」をご参照ください。

ユーザー名とパスワードを使用してマスターノードに接続する

ssh -N -D <ポート> root@<マスターノードのパブリック IP アドレス>

パラメータの説明:

  • -N:ポートフォワーディングを有効にし、コマンドを実行せずに SSH トンネルを作成するためにのみ使用されます。

  • -D:ダイナミックポートフォワーディングが有効になります。SOCKS プロキシプロセスを起動して、ポートでリッスンします。

  • <ローカルポート>:オンプレミスサーバーの空いているポートを使用できます。例:8157

  • <マスターノードのパブリック IP アドレス>:マスターノードの [パブリック IP アドレス]。クラスタの [ノード] タブでアドレスを確認できます。詳細については、「ノードのパブリック IP アドレスと名前を取得する」をご参照ください。

重要

SSH トンネルを作成した後、オンプレミスサーバーを実行したままにしてください。応答は返されません。

2. Google Chrome ブラウザの構成

ダイナミックポートフォワーディングを有効にした後、次のいずれかの方法を使用してブラウザプロキシを構成できます。

CLI を使用する

  1. オンプレミスマシンで CLI を開き、Google Chrome ブラウザクライアントのインストールディレクトリに移動します。

    オペレーティングシステム

    Google Chrome のデフォルトのインストールディレクトリ

    macOS X

    /Applications/Google\ Chrome.app/Contents/macOS

    Linux

    /usr/bin/google-chrome

    Windows

    64 ビットシステムと 32 ビットシステムの Google Chrome のデフォルトのインストールディレクトリ:

    • C:\Program Files\Google\Chrome\Application\

    • C:\Program Files (x86)\Google\Chrome\Application\

    説明

    Google Chrome のデフォルトのインストールディレクトリは、オペレーティングシステムによって異なります。

  2. 手順 1 で SSH トンネルを作成したときに有効にしたポートを使用して、ローカル SOCKS プロキシを使用するように Google Chrome を構成し、Google Chrome ブラウザを起動します。

    説明

    この例では、ポート 8157 を使用しています。

    macOS X
    ./Google\ Chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/
    Linux
    chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/
    Windows
    chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=c:\\tmppath\\

Google Chrome 拡張機能を使用する

拡張機能を使用すると、Web ブラウザでプロキシを簡単に管理および使用できます。拡張機能を使用して Web ページを閲覧し、同時に Web UI にアクセスできます。

  1. Google Chrome 拡張機能 SwitchyOmega を追加します。

  2. SwitchyOmega ページで、左側のナビゲーションウィンドウの [新しいプロファイル] をクリックします。[新しいプロファイル] ダイアログボックスで、[プロファイル名] フィールドに SSH トンネルなどのプロファイル名を入力し、[PAC プロファイル] を選択して、[作成] をクリックします。

  3. [PAC スクリプト] エディターに次の内容を入力します。

    説明

    この例では、ポート 8157 を使用しています。

    function regExpMatch(url, pattern) {
      try {
        return new RegExp(pattern).test(url);
      } catch (ex) {
        return false;
      }
    }
    
    function FindProxyForURL(url, host) {
      if (shExpMatch(url, "*localhost*")) return "SOCKS5 localhost:8157";
      if (shExpMatch(url, "*emr-header*")) return "SOCKS5 localhost:8157";
      if (shExpMatch(url, "*emr-worker*")) return "SOCKS5 localhost:8157";
      if (shExpMatch(url, "*master*")) return "SOCKS5 localhost:8157";
      if (shExpMatch(url, "*core*")) return "SOCKS5 localhost:8157";
      return 'DIRECT';
    }
  4. 左側の [ナビゲーションウィンドウ] で、[変更を適用] をクリックして構成を完了します。

  5. ブラウザの右上隅で、作成した SSH トンネル を選択します。

3. オープンソースコンポーネントの Web UI へのアクセス

ブラウザのアドレスバーに http://<マスターノードの名前>:<ポート> と入力し、Enter キーを押して特定の Web UI にアクセスします。たとえば、YARN の Web UI にアクセスするには、http://master-1-1:8088 と入力します。

パラメータの説明:

  • <マスターノードの名前>:マスターノードの [名前]。クラスタの [ノード] タブで名前を確認できます。例:master-1-1。詳細については、「ノードのパブリック IP アドレスと名前を取得する」をご参照ください。

  • <ポート>:手順 1 で構成したローカルポート。

説明

複数のオープンソースコンポーネントの Web UI に同時にアクセスする場合は、ポート番号を変更します。

参照