SSH を使用して AWS Glue 開発エンドポイントに接続できないのはなぜですか?

最終更新日: 2021 年 8 月 3 日

SHH を使用して AWS Glue 開発エンドポイントに接続できません。

-または-

AWS Glue 開発エンドポイントに接続するために SSH ポートフォワーディングを使用できません。

解決方法

SSH を使用して開発エンドポイントに接続する

  • 開発エンドポイントのキーペアファイルの許可が変更されていることを確認してください。次のコマンドを実行して、ファイルを表示できるのは自分だけであることを確認します。
$ chmod 400 my-key-pair.pem
  • 以下を確認します。
    • プライベートキーへのパスは正しいです。
    • プライベート拡張子は .pem で、二重引用符で囲みます。
  • Telnet や Netcat などのツールを使用して、ポート 22 の開発エンドポイントへのネットワーク接続を確認してください。
  • セキュリティグループがポート 22 の IP アドレスからのトラフィックを許可していることを確認してください。アウトバウンドトラフィックのルールが正しいかどうかを確認します。アウトバウンドトラフィックのルールは、アウトバウンドトラフィックがすべてのポートに対して開いていることを確認する必要があります。または、ルールは次のパラメータを持つ自己参照ルールである必要があります。[Type (タイプ)] は ALL TCP、[Protocol (プロトコル)] は TCP、[Port Range (ポート範囲)] にはすべてが含まれ、[Source (ソース)] は [Group ID (グループ ID)] と同じセキュリティグループ名であるというルール。詳細については、「開発エンドポイントのネットワークのセットアップ」を参照してください。
  • AWS Glue 開発エンドポイントに使用される Virtual Private Cloud (VPC) で [DNS ホスト名の編集] 設定がオンになっていることを確認します。また、Amazon Simple Storage Service (Amazon S3) エンドポイントが、開発エンドポイントに使用される VPC サブネットにアタッチされていることを確認します。
  • SSH クライアントとして PuTTY を使用している場合は、PuttyGen ツールを使用してプライベート .pem ファイルを .ppk ファイルに変換してください。

SSH ポートフォワーディングを使用して開発エンドポイントに接続する

SSH ポートフォワーディングでは、開発エンドポイントに接続するためにパブリック DNS アドレスが必要です。開発エンドポイントにパブリック DNS アドレスを追加するには、次の手順を実行します。

1.    VPC で開発エンドポイントを作成します

2.    AWS Glue コンソールで、[開発エンドポイント] を選択します。開発エンドポイントのプライベートアドレスをメモします。このアドレスは次のステップで使用します。

3.    Amazon Elastic Compute Cloud (Amazon EC2) コンソールで、ナビゲーションペインから [Network & Security] (ネットワークとセキュリティ) を選択します。次に、[ネットワークインターフェイス] を選択します。[ネットワークインターフェイス] ページで、開発エンドポイントの [プライベートアドレス] フィールドに対応するプライベート IPv4 DNS アドレスを検索します。

4.    次の手順にしたがって Elastic IP アドレスを割り当てそのアドレスを Elastic Network Interface に関連付けます
[Resource type] (リソースタイプ) で、[Network interface] (ネットワークインターフェイス) を選択します。
[Network interface] (ネットワークインターフェイス) で、前のステップでメモした Elastic Network Interface を選択します。
[Private IP address] (プライベート IP アドレス) フィールドのアドレスがエンドポイントの IP アドレスと同じであることを確認します。

5.    セットアップを検証するには、次のようなコマンドを使用して、SSH を使用して開発エンドポイントに接続できるかどうかを確認します。

ssh -i dev-endpoint-private-key.pem glue@elastic-ip

6.    このコマンドを使用して正常に接続できる場合は、実際のコマンドで同じ Elastic IP アドレスを使用します。

ssh -i private-key-file-path -NTL 9007:169.254.76.1:9007 glue@elastic_ip

詳細については、「開発エンドポイントへのアクセス」を参照してください。

注: Jupyter ノートブックを開発エンドポイントに接続しようとしていて、ポートフォワーディングトンネルを作成できない場合は、ssh コマンドでポートを確認します。コマンドで使用されるポートが 9007 ではなく 8998 であることを確認してください。

詳細については、「 チュートリアル: JupyterLab で Jupyter ノートブックをセットアップして ETL スクリプトをテストおよびデバッグする」を参照してください。

この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?