Data Science Workshop (DSW) が提供する ProxyClient ツールを使用すると、VSCode やターミナルなどのローカルツールから DSW インスタンスにリモート接続して、機械学習開発を行うことができます。このツールを使用すると、VPC や NAT Gateway を設定することなく、SSH (Secure Shell) プロトコル経由で DSW インスタンスに接続できます。
手順
ステップ 1: DSW ProxyClient のダウンロードとインストール
DSW ProxyClient ツールをダウンロードし、ユーザーのホームディレクトリに保存します。
必要なディレクトリは、オペレーティングシステムによって異なります:
Windows: C:\Users\<username> などのユーザープロファイルフォルダに保存します。
Linux: root ユーザーの場合は /root に、一般ユーザーの場合は /home/<username> に保存します。
macOS: /Users/<username> に保存します。
<username> をご利用のユーザー名に置き換えます。
各バージョンのダウンロードリンクは以下のとおりです。
コマンドラインから、ダウンロードしたクライアントファイルを実行可能にします。Windows (x86-64) バージョンをダウンロードした場合は、このステップをスキップできます。
chmod 755 <proxyclient><proxyclient> をダウンロードしたクライアントファイルの名前に置き換えます。
構成ファイルを生成します。
設定コマンドを入力します。
# macOS、Linux ./proxyclient config # Windows proxyclient.exe config重要macOS で初めて
./proxyclientコマンドを実行すると、「"proxyclient"は開発元を確認できないため開けません」というエラーメッセージが表示されることがあります。これを解決するには、[システム環境設定] > [セキュリティとプライバシー] に移動し、ProxyClient の実行を許可します。プロンプトに従って、構成ファイルのパスを設定します。
構成ファイルの名前を入力します。パスを含めることもできます。
説明Enter キーを押すと、デフォルトのパスとファイル名
~/.proxyclientconfigが使用されます。カスタムパスとファイル名を指定することもできます。たとえば、Windows (x86-64) の場合:
C:/Users/<username>/xxx/.proxyclientconfig。カスタムパスを設定した場合は、ステップ 3 で
./proxyclient addコマンドを実行する際に、-cまたは--config-fileフラグを使用して指定する必要があります。
プロンプトに従って、RegionId、AccessKey ID、AccessKey Secret、およびセキュリティトークンサービス (STS) トークンのパラメーターを設定します。
次の表にパラメーターを示します。
パラメーター
説明
RegionId
リージョンの ID です。たとえば、中国 (上海) の場合は cn-shanghai です。リージョン ID の完全なリストについては、「リージョンとゾーン」をご参照ください。
重要ここで構成するリージョン ID は、DSW インスタンスのリージョンと一致している必要があります。
AccessKey ID
ご利用のアカウントの AccessKey を入力します。Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret を取得する方法については、「AccessKey ペアの作成」をご参照ください。
AccessKey Secret
STSToken
Alibaba Cloud アカウントまたは RAM ユーザーを使用している場合は、これを空のままにします。
RAM ロールとしてログインする場合は、一時的なセキュリティトークンサービス (STS) トークンを提供する必要があります。STS トークンを生成する方法については、「STS トークンの取得」をご参照ください。
重要STS トークンの有効期限が切れていないことを確認してください。
ステップ 2:SSH 認証方式の設定
SSH キーペアまたはユーザー名とパスワードのいずれかを使用して、DSW インスタンスに接続できます。
専用リソースグループ内の DSW インスタンスの場合、認証を設定した後、インスタンスの Save Image 列にある Actions をクリックします。この操作により、公開鍵またはパスワードがインスタンスイメージに永続化され、再起動後も有効な状態が維持されます。
方法 1:パスワードなしのログイン設定 (推奨)
キーペアを生成します。
ローカルのコマンドラインで次のコマンドを実行して、パスワードなしのログイン用のキーペアを生成します。デフォルトでは、このコマンドは RSA キーペアを作成します。
ssh-keygenキーペアを保存するファイルを指定します。
(推奨) ファイル名を指定せずに Enter キーを押します。デフォルトのキーペアファイルは、
~/.ssh/id_rsa(秘密鍵) と~/.ssh/id_rsa.pub(公開鍵) です。(オプション) キーペアに example_id_rsa などのカスタムファイル名を指定します。
説明カスタムファイル名を指定した場合は、ステップ 3:DSW インスタンスプロキシの追加 で生成される
~/.ssh/configファイル内の IdentityFile ディレクティブを使用して、秘密鍵ファイルのパスを宣言する必要があります。
プロンプトに従って パスフレーズ を設定し、ローカルに保存します。このパスフレーズは、DSW インスタンスに接続する際に使用します。
接続先の DSW インスタンスでターミナルを開き、次のコマンドを実行します。setup_ssh.sh ツールは、SSH サーバーを自動的にダウンロードしてインストールします。
wget https://dsw-resource.oss-cn-beijing.aliyuncs.com/tools/setup_ssh.sh bash setup_ssh.shプロンプトに従って SSH 公開鍵を設定し、SSH サーバーを起動します。
方法 2:ユーザー名とパスワードによるログイン設定
接続先の DSW インスタンスでターミナルを開きます。
次のコマンドを実行して、root ユーザーのパスワードを設定します。
passwd rootSSH 設定ファイルを変更し、ルートユーザーが公開鍵認証でログインできるようにします。
SSH 構成ファイルを開きます。
vi /etc/ssh/sshd_config#PermitRootLogin prohibit-passwordの行をPermitRootLogin yesに変更し、ファイルを保存します。
SSH サーバーサービスを再起動して変更を適用します。
service ssh stop service ssh start
ステップ 3: DSW インスタンスプロキシの追加
インスタンスリストページで、接続するインスタンスを見つけ、次の図に示すようにインスタンス ID をコピーします。

ローカルのコマンドラインで、次のコマンドを実行して DSW インスタンスを SSH ターゲットホストとして追加します。
<instance ID> を前のステップでコピーしたインスタンス ID に置き換えます。
# macOS、Linux ./proxyclient add -i=<instance ID> # Windows proxyclient.exe add -i=<instance ID>.ssh/configファイルの内容を表示して、プロキシ設定が適用されていることを確認します。# macOS、Linux cat .ssh/config # Windows。ローカルのコマンドラインで、ユーザーのホームディレクトリに移動し、次のコマンドを使用して設定ファイルの内容を表示します。設定ファイルをダブルクリックして開くこともできます。 explorer .ssh\configオプション: キーペアに example_id_rsa などのカスタムファイル名を使用した場合は、
~/.ssh/configファイルを変更する必要があります。次の例に示すように、IdentityFileディレクティブを使用して秘密鍵ファイルのパスを指定します。Host dsw-b7a2765b267e**** HostName dsw-b7a2765b267e**** User root ProxyCommand ~/proxyclient connect --region-id=cn-hangzhou --instance-id=dsw-b7a2765b267e**** --config-file=*** ServerAliveInterval 30 IdentityFile ~/.ssh/example_id_rsa
ステップ 4:DSW インスタンスへのリモート接続
ターミナルを使用した接続
ローカルのコマンドラインなどのターミナルツールを開き、次のコマンドを実行してリモートインスタンスにログインします。
<instance ID> をご利用の DSW インスタンスの ID に置き換えます。
ssh <instance ID>scp コマンドを使用して、ローカルホストとリモートインスタンス間でファイルやディレクトリをコピーすることもできます。
# ローカルファイルをリモートインスタンスにコピーします。
scp local_file_path root@<DSW instance ID>:<remote_file_path>
# ローカルディレクトリをリモートインスタンスにコピーします。
scp -r local_dir root@<DSW instance ID>:<remote_dir>
# リモートインスタンスからローカルマシンにファイルをコピーします。
scp root@<DSW instance ID>:<remote_file_path> <local_file_path>
# リモートインスタンスからローカルマシンにディレクトリをコピーします。
scp -r root@<DSW instance ID>:<remote_dir> <local_dir>VSCode を使用した接続
手順は VSCode のバージョンによって異なる場合があります。詳細については、「Visual Studio Code」をご参照ください。
ローカルマシンで VSCode を開き、次の図に示すように Remote Connection 拡張機能をインストールします。

VSCode の左側のナビゲーションウィンドウで、
をクリックします。
インスタンスへのリモート接続を追加します。
Remote Connection の横にある
アイコンをクリックして、新しい接続を追加します。 表示されるテキストボックスに DSW インスタンス ID を入力し、Enter キーを押します。
更新する設定ファイルをクリックして選択します。

VSCode の右下隅に表示される [ホストが追加されました] ダイアログボックスで、[接続] をクリックします。

[Linux] をクリックして、DSW インスタンスのオペレーティングシステムを選択します。

テキストボックスに、ステップ 3 のパスフレーズを入力し、Enter キーを押します。

VSCode がようこそページを開くと、接続は成功です。これで、VSCode でリモートフォルダを開いて開発を開始できます。

この DSW インスタンスへのその後の接続では、ターゲットインスタンスを右クリックし、接続方法を選択して、プロンプトに従います。

よくある質問
Q:直接 SSH 接続と ProxyClient プロキシ方式の違いは何ですか。
方法 A: Direct SSH 接続 (推奨) | 方法 B: ProxyClient プロキシ | |
機能 | この方法では、VPC や NAT Gateway などのネットワークコンポーネントが必要です。接続はより高速で安定しています。 | この方法では、他のネットワークコンポーネントは必要ありません。ただし、接続速度と安定性が低い場合があります。 |
サポートされるインスタンス |
| すべてのインスタンスタイプ。 |
認証方法 | この方法では、SSH 公開鍵または秘密鍵を認証に使用します。 |
|
アクセスパス |
| パブリックネットワークアクセス。 |
構成方法 | ||
仕組み | PAI は NAT Gateway 上に DNAT ルールを自動的に作成し、パブリック SSH リクエストを DSW インスタンスに転送します。 | すべてのトラフィックは PAI プロキシサーバーを介してリレーされます。 |
課金に関する注意 | パブリックネットワークアクセスが必要な場合、NAT Gateway と EIP は、DSW インスタンスが停止していても存在する限り料金が発生します。不要になった場合は、速やかに削除してください。 | この設定では追加費用は発生しません。 |
Q:RAM ユーザーで接続に失敗するのはなぜですか。
RAM ユーザーの AccessKey を使用して ProxyClient 経由で接続する場合、ルートアカウントが RAM ユーザーに paidsw:GetToken 権限を付与している必要があります。そうでない場合、認証は失敗します。権限を付与するには、次の手順を実行します。
Q:接続タイムアウトやアクセスエラーが発生するのはなぜですか。
proxyclient.exe によって生成された設定ファイルを確認してください。RegionId パラメーターが、ご利用の DSW インスタンスのリージョンと完全に一致していることを確認してください。
Q:DSW インスタンスは、個別の SSH ログイン用に複数のユーザーを作成することをサポートしていますか。
デフォルトでは、DSW インスタンスは SSH ログイン用に root ユーザーのみを提供します。DSW は、複数の独立したユーザーを作成し、それぞれに分離された SSH ログインを設定することをネイティブではサポートしていません。インスタンス内で手動で新しいユーザーを作成することは可能ですが、これは公式にサポートされている方法ではありません。
Q:VSCode や PyCharm などのローカル IDE から DSW インスタンスに接続した際、作業ディレクトリのファイルが表示されません。どうすればよいですか。
SSH でログインすると、デフォルトのディレクトリは root ユーザーのホームディレクトリ (/root) になります。プロジェクトファイルは通常、/mnt/workspace などのマウントされたデータディスクパスにあります。VSCode などの IDE で、このフォルダを手動で開く必要があります。[ファイル] > [フォルダを開く] に移動し、/mnt/workspace パスを入力します。すると、ファイルエクスプローラーにプロジェクトファイルが表示されます。
関連トピック
ProxyClient ツールは、頻繁な再接続や速度低下などの問題を引き起こす可能性があります。より良いエクスペリエンスを得るためには、リモート接続:直接 SSH 方式を使用することを推奨します。