Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to SSH in AWS instances using any IDEs such PYCHARM?

I am stuck in a technical issue on a project and I think you the forum could help me out.

I have an EC2 Instance Type:p2.xlarge running on AWS, I cloned a repository in this instance which requires pytorch and cuda dependencies(this point has been taken care of).

Now, The issue is that I wanna work & run this code-base(which is is AWS instance now) somehow in my local pyCHARM IDE. In short, I didn't have proper resources on my laptop to run the repository, so I have to run in an AWS instance but for debugging purposes the local IDE would be a great option.

Is it possible to do that?. In other words, we can do SSH into AWS instance and run code, but all will be done through command line, if we could SSH through PYCHARM and can see the code in AWS here in local machine within PYCHARM and change, debug or run it as it was local but actually it gets executed in the instance.

Please suggest a solution to it. Thanks in advance.

EDIT-1:

After following, @Cromulent suggestion, I have arrived here Setting the remote:

enter image description here

Upload happening within the local & remote repo. enter image description here

I still didn't understand the requirement of syncing the local and remote folders, when I only want to open the remote folder in my PYCHARM IDE and work on it.

I think after this setup, I have to change the code in local copy and the PYCHARM will sync the code in remote copy. How will I be running(using resources-GPUs of the remote Instance, not my local machine.) the remote code in PYCHARM in this scenario, I am just syncing it, for running again I have to ssh through command line and run the script(This does not serve the purpose)?

EDIT-2: After @Cromulent suggestions.

Actually, it did work, but still, I am not able to run the remote code locally. I am getting the below error while running any remote script. If I run the same script using ssh in the terminal, the scripts run normally. I tried to fix the problem using this post on StackOverflow, but it didn't work too.

ssh://[email protected]:22/home/ubuntu/anaconda3/bin/python -u <08ad9807-3477-4916-96ce-ba6155e3ff4c>/home/ubuntu/InsightProject/scripts/download_flownet2.py
/home/ubuntu/anaconda3/bin/python: can't open file '<08ad9807-3477-4916-96ce-ba6155e3ff4c>/home/ubuntu/InsightProject/scripts/download_flownet2.py': [Errno 2] No such file or directory

The below is the screenshot for the above problem: enter image description here

like image 276
Anu Avatar asked Sep 15 '18 01:09

Anu


2 Answers

PyCharm Professional supports remote Python interpreters (either the globally installed Python interpreter or a virtualenv). It works by creating an SSH connection to the server and then running the code on the remote host. The results are then displayed locally in PyCharm Professional. You can also do remote debugging as well.

You MUST be using the professional version of PyCharm though. The free community version does not support this feature.

You can find the documentation here:

https://www.jetbrains.com/help/pycharm/configuring-remote-interpreters-via-ssh.html

like image 189
Cromulent Avatar answered Nov 12 '22 18:11

Cromulent


One more solution is to deploy a Jupyter Notebook on your remote server. Then you will be able to use it from PyCharm Professional Edition.

Don't forget to make rules for the jupyter ports (e.g. allow all 8888) in your AWS console and in your instance.

To configure a remote interpreter for your notebook do this (source):

  1. Open the Jupyter Notebook page of the Settings/Preferences dialog.

  2. On this page, select or clear the Markdown cells rendering enabled option, and specify the username and password. Note that for the single-user notebooks these fields are optional - leave them blank.

  3. Fill in the username (for JupyterHub) and password.

  4. Click the link Configure remote interpreter. You'll find yourself at the Project Interpreter page.

  5. Configure the remote interpreter, as described in the section Configuring Python Interpreter.

You will want to configure a remote interpreter.

like image 40
user10976002 Avatar answered Nov 12 '22 18:11

user10976002