ngrok - DB를 tunnel로 service

Henry Cho·2021년 12월 17일

TL;DR

  • 이슈: postgresql DB 서버 자체를 서비스하고 싶으나 내 IP는 가리고 싶다
  • 해결:
    nohup ngrok tcp 5432 > logfile 2>&1 &

이슈

  • 스터디 그룹의 SQL 실습 지원을 위해 공용 DB를 사용할 요건이 생김
  • 아무리 중요하지 않은 Cloud의 VM이여도 다양한 토이 프로젝트가 모여있는 소듕한 서버라 DNS을 쓰고싶음
  • postgresql을 oracle vm에서 기동하였으나 free tier는 처음 한 달 이내에 DNS 설정을 하지 않으면 나중에는 불가능함(유료)

시도

localtunnel

  • node를 사랑하는 나는 익숙한 localtunnel을 시도해 보았다
  • 무료이고 subdomain 설정도 가능하니 좋긴만한 줄 알았는데 DB 연결 시 ssh 인증 에러 계속 발생
    - 알고보니 http(s) 만 지원했다

해결

ngrok

  • free 1 plan으로는 한 개의 process만 지원
  • free의 경우 subdomain불가, port 랜덤
  • http(s), tcp tls를 지원
  1. postgres 기동
pg_ctl start
  1. install ngrok + auth
    https://ngrok.com/download
 ngrok authtoken <token>
  1. ngrok을 nohup으로 수행
  nohup ngrok tcp 5432 > logfile 2>&1 &
  
  1. ngrok url, 포트확인
curl localhost:4040/api/tunnels
  1. 원격지에서 psql, postico 등의 클라이언트로 접속 확인
profile
Full stack tech visionary

0개의 댓글