

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# オプション 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 ユーザーガイド](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)」の「*Amazon EC2 のキーペア*」を参照してください。プライマリノード上で表示するサイトの詳細については、「[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 で、**[Applications] > [Utilities] > [Terminal]** を選択します。他の Linux ディストリビューションでは、ターミナルは通常、**[Applications] > [Accessories] > [Terminal]** にあります。

1. ローカルコンピュータで SSH トンネルを開くには、次のコマンドを入力します。{{\~/mykeypair.pem}} を `.pem` ファイルの場所とファイル名に、{{8157}} を未使用のローカルポート番号に、{{ec2-\#\#\#-\#\#-\#\#-\#\#\#.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 に、{{\~/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`) に変換する必要があります。

キーの変換について詳しくは、「*Amazon EC2 ユーザーガイド*」の「[Converting your private key using PuTTYgen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html)」を参照してください。<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 のタイトルバーを右クリックし、**[Change Settings]** を選択することでトンネルを追加できます。

1. 必要に応じて、[**Category**] リストで、[**Session**] を選択します。

1. [**Host Name (ホスト名)**] フィールドに「**hadoop@**{{MasterPublicDNS}}」と入力します。たとえば、**hadoop@**{{ec2-\#\#\#-\#\#-\#\#-\#\#\#.compute-1.amazonaws.com}} です。

1. [**Category**] リストで、[**Connection]、[SSH**] の順に展開し、[**Auth**] を選択します。

1. [**Private key file for authentication**] では、[**Browse**] をクリックし、以前に生成した `.ppk` ファイルを選択します。
**注記**  
PuTTY は、Amazon EC2 によって生成されるキーペアのプライベートキーファイルの形式 (`.pem`) をネイティブでサポートしていません。PuTTYgen を使用して、キーファイルを必要な PuTTY 形式 (`.ppk`) に変換します。PuTTY を使用してプライマリノードへの接続を試みる前に、キーをこの形式 (`.ppk`) に変換する必要があります。

1. [**Category**] リストで、[**Connection]、[SSH**] の順に展開し、[**Tunnels**] を選択します。

1. **[Source port]** フィールドに `8157` (未使用のローカルポート) を入力し、**[Add]** を選択します。

1. [**Destination**] フィールドは空白のままにしておきます。

1. [**Dynamic**] オプションと [**Auto**] オプションを選択します。

1. **開く** をクリックします。

1. [**Yes**] を選択して、PuTTY セキュリティ警告を閉じます。
**重要**  
プライマリノードにログインするときに、ユーザー名の入力を求められた場合は、「`hadoop`」と入力します。

1. トンネルがアクティブになった後、ブラウザの SOCKS プロキシを設定します。詳細については、「[オプション 2、パート 2: Amazon EMR クラスタープライマリノードでホストされるウェブサイトを表示するようにプロキシを設定する](emr-connect-master-node-proxy.md)」を参照してください。

1. プライマリノードのウェブインターフェイスに対する操作が終了したら、PuTTY ウィンドウを閉じます。