[컴][웹] vscode remote debugger 를 remote node server 에 attach 하기

원격 서버에 붙이기 / 디버거 붙이기 노드서버에 붙이기 / agent forwarding

vscode remote debugger 를 remote node server 에 attach

ssh tunneling

ref. 1 에서 추천하는 방법인데, remote server 에서 debugging 을 위해 모든 ip address 로 부터의 접근을 허락하는 것은 위험하니, remote server 는 9229 만 debugging 용으로 열어놓고, 접근하는 쪽에서 ssh tunneling 을 열어서 debugging 을 하라는 이야기다.

하지만 여전히 debugging port 를 열어놓는 것은 좋지 않은 행위이니, 실서버에서의 사용은 자제하는 것이 좋다.

server 에서 debugging mode 로 실행

$ node --inspect server.js
Debugger listening on ws://127.0.0.1:9229/3ee2ba78-e563-4f9a-9fa1-06e8b6bb8539
For help, see: https://nodejs.org/en/docs/inspector

ssh tunneling 실행

먼저 ssh tunneling 을 열어놓는다.

ssh -N -L 9221:localhost:9229 myhome@ec2-174-69-46-3.ap-northeast-.compute.amazonaws.com -i .\ec2-dev.pem

ssh <bastion_server_connect_info> -N -L <source_port>:<destination_ip>:<destination_port>

localhost:<source_port> 로 요청하면, ec2-174-69-46-3.ap-northeast-.compute.amazonaws.com:<destination_port> (ssh tunnel) 을 타고, <destination_server>:<destination_port> 로 가게 된다.

vscode

그리고 vscode 에서 source 를 열어놓고, 아래 debug option 을 선택해서 실행하면 된다.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        
        ...
        {
            "type": "node",
            "request": "attach",
            "name": "Attach to Remote",
            "address": "localhost",
            "port": 9221,
            "localRoot": "${workspaceFolder}",
            "remoteRoot": "/home/myhome/myserver"
        }
    ]
}


See Also

  1. ssh man page
  2. 쿠…sal: [컴] ssh tunneling

References

  1. Debugging - Getting Started | Node.js

댓글 없음:

댓글 쓰기