원격 서버에 붙이기 / 디버거 붙이기 노드서버에 붙이기 / 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"
}
]
}
댓글 없음:
댓글 쓰기