SSH を使用してマスターノードConnect する - Amazon EMR

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

SSH を使用してマスターノードConnect する

セキュアシェル(SSH)とは、リモートコンピュータとの安全な接続を確立するために使用できるネットワークプロトコルです。接続後、ローカルコンピュータ上のターミナルは、リモートコンピュータで実行されているかのように動作します。ローカルで発行したコマンドがリモートコンピュータで実行され、リモートコンピュータからのコマンドの出力はターミナルウィンドウに表示されます。

SSHをAWSに、クラウドで実行される仮想サーバーである EC2 インスタンスに接続します。Amazon EMR を使用する場合、SSH の最も一般的な使い方は、クラスターのマスターノードとして動作する EC2 インスタンスに接続するというものです。

SSH を使用してマスターノードに接続すると、クラスターを監視し、操作できます。たとえば、マスターノードで Linux コマンドを発行したり、Hive や Pig などのアプリケーションをインタラクティブに実行したりできます。また、ディレクトリのブラウズやログファイルの読み取りなども可能です。SSH 接続にトンネルを作成して、マスターノードでホストされるウェブインターフェイスを表示することもできます。詳細については、「Amazon EMR クラスターでホストされるウェブインターフェイスの表示」を参照してください。

SSH を使用してマスターノードに接続するには、マスターノードのパブリック DNS 名が必要です。また、マスターノードに関連付けられるセキュリティグループには、SSH 接続元のクライアントを含むソースからの SSH (TCP ポート 22) トラフィックを許可するインバウンドルールがある必要があります。クライアントからの SSH 接続を許可するルールの追加が必要になる場合があります。セキュリティグループのルールの変更方法については、「」を参照してください。セキュリティグループによるネットワークトラフィックの制御およびセキュリティグループへのルールの追加()Linux インスタンス用 Amazon EC2 ユーザーガイド

マスターノードのパブリック DNS 名を取得します。

マスターパブリック DNS 名は、Amazon EMR コンソールとAWS CLI。

Console

Amazon EMR コンソールを使用してマスターノードのパブリック DNS 名を取得するには

  1. Amazon EMR コンソール (https://console.aws.amazon.com/elasticmapreduce/) を開きます。

  2. [Cluster List] ページで、クラスターのリンクを選択します。

  3. 注意マスターパブリック DNSウィンドウに表示される概要の セクションクラスターの詳細ページで.

    注記

    マスターパブリック DNS 名の横にある [SSH] リンクを選択して、マスターノードへの SSH 接続を作成する手順を表示することもできます。

CLI

AWS CLI を使用して、マスターノードのパブリック DNS 名を取得するには

  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": "My cluster"
  2. クラスターのマスターパブリック DNS 名を含むクラスターインスタンスのリストを表示するには、次のいずれかのコマンドを入力します。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 プライベートキーを使用してマスターノードConnect する

プライベートキーファイルで認証された SSH 接続を作成するには、クラスター起動時に Amazon EC2 key pair プライベートキーを指定する必要があります。コンソールからクラスターを起動する場合、Amazon EC2 key pair プライベートキーは、セキュリティとアクセスのセクションクラスターの作成ページで. key pair へのアクセスの詳細については、「」を参照してください。Amazon EC2 のキーペア()Linux インスタンス用 Amazon EC2 ユーザーガイド

Linux コンピュータには、ほとんどの場合、デフォルトで SSH クライアントが含まれています。たとえば、ほとんどの Linux、Unix、および Mac OS オペレーティングシステムには OpenSSH がインストールされています。SSH クライアントがあるかどうかを確認するには、コマンドラインで ssh と入力します。ご使用のコンピュータでこのコマンドが認識されない場合、マスターノードに接続するために SSH クライアントをインストールします。OpenSSH プロジェクトが、SSH ツールの完全なスイートの無料実装を提供しています。詳細については、OpenSSH のウェブサイトを参照してください。

以下の手順では、Linux、Unix、および Mac OS X で Amazon EMR マスターノードへの SSH 接続を開く方法を示します。

キーペアのプライベートキーのファイルアクセス許可を設定するには

Amazon EC2 key pair プライベートキーを使用して SSH 接続を作成する前に、.pemファイルを更新して、キーの所有者のみがファイルにアクセスできるようにします。これは、ターミナルまたは AWS CLI を使用して SSH 接続を作成するために必要です。

  1. インバウンド SSH トラフィックが許可されていることを確認します。手順については、「接続する前に、次の操作を行います。インバウンドトラフィックの承認」を参照してください。

  2. .pem ファイルを見つけます。この手順では、ファイル名が mykeypair.pem であり、現在のユーザーのホームディレクトリに保存されていることを想定しています。

  3. 次のコマンドを入力してアクセス許可を設定します。置換~/mykeypair.pemをキーペアのプライベートキーファイルのフルパスとファイル名に置き換えてください。例 C:\Users\<username>\.ssh\mykeypair.pem.

    chmod 400 ~/mykeypair.pem

    .pem ファイルに対するアクセス許可を設定していない場合、キーファイルが保護されておらず、キーが拒否されることを示すエラーが表示されます。接続するためにキーペアのプライベートキーファイルに対するアクセス許可を設定する必要があるのは、このファイルを最初に使用するときだけです。

ターミナルを使用してマスターノードに接続するには

  1. ターミナルウィンドウを開きます。Mac OS X で、[Applications] > [Utilities] > [Terminal] を選択します。他の Linux ディストリビューションでは、ターミナルは通常、[Applications] > [Accessories] > [Terminal] にあります。

  2. マスターノードへの接続を確立するには、次のコマンドを入力します。置換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
    重要

    ログイン名を使用する必要がありますhadoopAmazon EMR マスターノードに接続するときに、この接続を行わないと、次のようなエラーが表示されることがあります。Server refused our key

  3. 警告は、接続先ホストの正当性を検証できないことを示しています。yes を入力して、操作を続けます。

  4. マスターノードに対する操作が終了したら、次のコマンドを入力して SSH 接続を閉じます。

    exit

Windows で SSH を使用してマスターノードConnect する

Windows ユーザーの場合は、PuTTY などの SSH クライアントを使用して、マスターノードに接続できます。Amazon EMR マスターノードに接続する前に、PuTTY および PPuTTYgen をダウンロードしてインストールする必要があります。これらのツールはPuTTY のダウンロードページ

PuTTY はキーペアのプライベートキーファイルの形式 () をネイティブでサポートしていません (.pemAmazon EC2 で作成される)。PuTTYgen を使用して、キーファイルを必要な PuTTY 形式 () に変換します。.ppk). キーをこの形式 (.ppkPuTTY を使用してマスターノードへの接続を試みる前に

キーの変換の詳細については、「」を参照してください。PuTTYgen を使用してプライベートキーを変換する()Linux インスタンス用 Amazon EC2 ユーザーガイド

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

  1. インバウンド SSH トラフィックが許可されていることを確認します。手順については、「接続する前に、次の操作を行います。インバウンドトラフィックの承認」を参照してください。

  2. putty.exe を開く。Windows のプログラムの一覧から PuTTY を起動することもできます。

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

  4. [Host Name (or IP address)] に、「hadoop@MasterPublicDNS」と入力します。例:hadoop@ec2-###-###.compute-1.amazonaws.com

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

  6. [Private key file for authentication] では、[Browse] をクリックし、以前に生成した .ppk ファイルを選択します。

  7. 選択オープンし、はいPuTTY セキュリティ警告を閉じます。

    重要

    マスターノードにログインするときに、ユーザー名の入力を求められた場合は、「hadoop」と入力します。

  8. マスターノードに対する操作が終了したら、PuTTY を閉じることによって SSH 接続を閉じることができます。

    注記

    SSH 接続のタイムアウト防止には、[Category] リストで [Connection] をクリックし、[Enable TCP_keepalives] オプションを選択します。PuTTY でアクティブな SSH セッションがある場合は、PuTTY のタイトルバーのコンテキストを開いて (右クリックして)、設定を変更する

を使用してマスターノードConnect するにはAWS CLI

マスターノードへの SSH 接続を作成するにはAWS CLIWindows、Linux、Unix、および Mac OS X では、プラットフォームに関係なく、マスターノードのパブリック DNS 名と Amazon EC2 key pair プライベートキーが必要です。Linux、Unix、Mac OS X などで AWS CLI を使用している場合は、「キーペアのプライベートキーのファイルアクセス許可を設定するには」に示されているように、プライベートキー (.pem または .ppk) ファイルに対するアクセス権限も設定する必要があります。

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

  1. インバウンド SSH トラフィックが許可されていることを確認します。手順については、「接続する前に、次の操作を行います。インバウンドトラフィックの承認」を参照してください。

  2. クラスター識別子を取得するには、次のように入力します。

    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"
  3. マスターノードへの SSH 接続を開くには、次のコマンドを入力します。次の例では、J-2AL4XX5T9をクラスター ID に置き換え、~/mykeypair.keyのフルパスとファイル名で.pemファイル (Linux、Unix、Mac OS X 用) または.ppkファイル (Windows の場合)。例 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