0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure DatabricksのドライバーノードへのSSH接続

Last updated at Posted at 2024-08-21

ドライバーノードのシェルにアクセスするには、こちらに紹介されているWebターミナルを使うのが簡単ですが、ローカルマシンからSSH接続したいというケースもあるかと思います。

今回初めてやってみたら意外に難しかったのでまとめます。以下の前提をクリアしなくてはなりません。

  • ワークスペースのデプロイでVNetインジェクションが使用されている
  • ワークスペースのデプロイでSecure Cluster Connectivityを使ってはいけない(パブリックIPが必要)
  • 接続元マシンからクラスターへのポート2200での通信が許可されている

手順はこちらにあるので、これに沿って設定していきます。

いつもはデフォルト設定でワークスペースを作成していましたが、SSH接続をする際には設定を変えなくてはなりません。マニュアルにあるように、SSH接続を有効にするには、ワークスペースが独自の Azure 仮想ネットワークにデプロイされている場合にのみ有効にできます。すなわち、VNetインジェクションを用いてワークスペースをデプロイしなくてはなりません。知りませんでした。

作成時のネットワーク設定に関してはこちらが詳しかったです。ありがとうございます。

VNetの作成

上の記事とこちらを参考に仮想ネットワークを作成します。

リソースグループ、リージョン、名前をつけて、IPアドレスを設定します。CIDRは10.0.0.0/24の最小構成にします。defaultサブネットは削除します。
Screenshot 2024-08-21 at 14.01.52.JPG

Azure Databricksワークスペースのデプロイ

名前とリソースグループ、リージョンを設定した後にネットワークの設定を行いますが、ここで自分の仮想ネットワーク(VNet)にAzure Databricksワークスペースをデプロイしますはいに変更します。これでVNetインジェクションを用いたデプロイメントを選択したことになります。一方で、Secure Cluster Connectivity による Azure Databricks ワークスペースのデプロイ (パブリック IP なし)はいいえのままとします。そうしないと、パブリックIPがクラスターに割り振られないので、ローカルマシンからSSH接続できません。

Screenshot 2024-08-21 at 14.21.01.JPG

上のステップで作成したVirtual Networkを選択し、パブリックサブネットとプライベートサブネットの名前とCIDRを指定します。VNetのCIDRを2分割します。アドレス空間と作成できるクラスターのノード数の関係はこちらをご覧ください。

SSHの設定

ネットワークセキュリティグループの設定

デフォルトでは、クラスターへのSSH接続に用いるポート2200への通信が許可されていませんので、こちらの手順に従ってネットワークセキュリティグループで許可します。

  1. 作成したVNetにアクセスし、サブネットを開きます。
    Screenshot 2024-08-21 at 15.01.07.JPG
  2. パブリックサブネットを選択し、ネットワークセキュリティグループの名前をメモしておきます。
  3. Azure Portalからネットワークセキュリティグループにアクセスし、上でメモしたネットワークセキュリティグループにアクセスします。
  4. 設定 > 受信セキュリティ規則にアクセスし、ポート2200の通信を許可する規則を追加します。
    Screenshot 2024-08-21 at 14.44.45.JPG
    Screenshot 2024-08-21 at 14.45.00.JPG

SSHキーペアの作成

SSHでアクセスするローカルマシンで、ターミナルから以下を実行します。パスフレーズは設定していません。

ssh-keygen -t rsa -b 4096 -C "コメント(メールアドレスなど)"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yayoi/.ssh/id_rsa): 
Your identification has been saved in /Users/yayoi/.ssh/id_rsa
Your public key has been saved in /Users/yayoi/.ssh/id_rsa.pub

クラスターに公開キーを設定

  1. アクセスするクラスターの高度なオプション > SSHにアクセスします。なお、VNetインジェクションを使っていることと、Secure Cluster Connectivityを使っていないという2つの条件を満たさない限り、こちらのSSHタブは表示されません。
  2. 上で作成した公開キー(public key)をボックスに貼り付けます。
    Screenshot 2024-08-21 at 15.07.51.JPG
  3. 上に表示されているドライバーのホスト名をコピーしておきます。

SSH接続

ローカルマシンのターミナルで以下を実行します。

ssh ubuntu@<ドライバーのホスト名> -p 2200 -i <秘密キーのファイルへのパス>

私の場合は以下のようになりました。

ssh ubuntu@48.218.72.175 -p 2200 -i /Users/yayoi/.ssh/id_rsa

うまくいけば以下のようになり、ドライバーノードのシェルにアクセスできます。
Screenshot 2024-08-21 at 14.45.52.JPG

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?