반응형
엣지컴퓨팅, 클라우드 연결되다
다양한 장소에 설치된 엣지디바이스의 상태를 모니터링, 소프트웨어 업데이트 등을 해야할 경우가 있다. 엣지디바이스와 서버 사이의 SSH 채널을 생성하는 방법을 Jetson 의 사례로 소개한다.
NVIDIA Jetson 리버스 터널링
Jetson 과 lightsail 의 연결
Jetson 과 같은 엣지디바이스의 상태를 모니터링, 소프트웨어 업데이트를 위한 서버 연결 구조를 설명한다. 다음 그림은 사설네트워크의 Jetson 과 인터넷의 Lightsail 의 연결을 보여준다.
- SSH reverse turnneling 을 통해 Jetson 은 클라우드 Server에 접속할 수 있다.
- 사용자는 클라우드 Server 를 통해 Jetson 에 접속 할 수 있다.
테스트환경
- AWS Lightsail (Ubuntu 18.04)
- NVIDIA Jetson NX (Jetpack 4.6)
STEP1. AWS Lightsail 설정하기
Lightsail 서버에 접속하여 /etc/ssh/sshd_config 를 열고 GatewayPorts 를 yes 로 변경한다.
$ cat /etc/ssh/sshd_config | grep GatewayPorts
GatewayPorts yes
Lightsail 서버에 변경된 설정이 반영되기 위해 ssh server 를 다시 실행한다.
$ sudo service ssh reload
Lightsail 서버의 7777 포트 방화벽을 해제한다.
$ sudo ufw allow 7777
Web browser 에서 Lightsail 서버의 설정을 수정한다. IPv4 Firewall 설정에서 Add rule 을 통해 TCP 7777 포트 규칙을 추가한다.
STEP2. Jetson 에서 AWS Lightsail 에 연결하기
Jetson 에서 다음 명령어로 Lightsail 서버로 연결한다.
$ ssh -i ./server.pem -fNR 7777:localhost:22 ubuntu@15.x.x.x
- server.pem 파일은 서버의 키이다. Web browser 에서 Lightsail 서버 설정에서 다운로드 할 수 있다.
- ssh 의 f 옵션은 인증과 전송이 설정된 후에 백그라운드에서 ssh를 설정하는 것을 가능하게 한다.
- ssh 의 N 옵션은 remote 명령이 실행되지 않도록 한다. 단지 포워딩만 하겠다는 의미이다.
- ssh 의 R 옵션은 Reverse tunnel 을 열도록 한다.
- 7777(연결포트번호):로컬주소:22(내부포트번호)
- ubuntu@15.x.x.x 는 접속될 서버의 아이디와 주소이다. (Lightsail 서버)
STEP3. 연결 테스트
제 3의 Host 에서 연결 테스트를 한다. ssh 명을 통해서 서버의 7777 포트에 접속한다. 이때 서버가 아닌 Jetson 으로 접속됨을 확인한다.
$ ssh -i .\server.pem ubuntu@15.X.X.X -p 7777
참고자료
엣지단말을 매번 연결해줘야 하는 불편함이 있다. 재부팅 후에도 연결을 유지하고 싶다면 autossh 를 찾아보자.
반응형
'NVIDIA Jeston > Jetson BSP' 카테고리의 다른 글
메시지브로커를 통한 jetson-stats 퍼블리싱 (0) | 2022.12.03 |
---|---|
젯슨 부팅 과정에서 Power Model 고정하기 (1) | 2022.09.11 |
젯슨 NX Xavier NGC 컨테이너 개발환경 (0) | 2022.08.24 |
Jetson 로깅 시스템, Rsyslogd (0) | 2022.08.17 |
Jetson Nano 이미지 백업과 재사용 (0) | 2022.07.22 |
[Jetson] nvme ssd 를 루트파일시스템으로 사용하기 (0) | 2022.07.09 |
[Jetson] JTOP 시스템 프로파일러 도구 (0) | 2022.07.03 |
[Jetson] Xavier NX 방열팬 제어 (0) | 2022.06.30 |